root/announcements.txt

Revision 832:dba35d241916, 21.3 kB (checked in by Stefan Schwarzer <sschwarzer@…>, 9 months ago)
"strongly" perhaps is too strong. ;-)
Line 
1ftputil 2.4.2 is now available from
2http://ftputil.sschwarzer.net/download .
3
4Changes since version 2.4.1
5---------------------------
6
7- Some FTP servers seem to have problems using *any* directory
8  argument which contains slashes. The new default for FTP commands
9  now is to change into the directory before actually invoking the
10  command on a relative path (report and fix suggestion by Nicola
11  Murino).
12
13- Calling the method ``FTPHost.stat_cache.resize`` with an argument 0
14  caused an exception. This has been fixed; a zero cache size now
15  of course doesn't cache anything but doesn't lead to a traceback
16  either.
17
18- The installation script ``setup.py`` didn't work with the ``--home``
19  option because it still tried to install the documentation in a
20  system directory (report by Albrecht M�chulte).
21
22  As a side effect, when using the *global* installation, the
23  documentation is no longer installed in the ftputil package
24  directory but in a subdirectory ``doc`` of a directory determined by
25  Distutils. For example, on my system (Ubuntu 9.04) the documentation
26  files are put into ``/usr/local/doc``.
27
28Upgrading is recommended.
29
30What is ftputil?
31----------------
32
33ftputil is a high-level FTP client library for the Python programming
34language. ftputil implements a virtual file system for accessing FTP
35servers, that is, it can generate file-like objects for remote files.
36The library supports many functions similar to those in the os,
37os.path and shutil modules. ftputil has convenience functions for
38conditional uploads and downloads, and handles FTP clients and servers
39in different timezones.
40
41Read the documentation at
42http://ftputil.sschwarzer.net/documentation .
43
44License
45-------
46
47ftputil is Open Source software, released under the revised BSD
48license (see http://www.opensource.org/licenses/bsd-license.php ).
49
50Stefan
51
52----------------------------------------------------------------------
53ftputil 2.4.1 is now available from
54http://ftputil.sschwarzer.net/download .
55
56Changes since version 2.4
57-------------------------
58
59Several bugs were fixed:
60
61- On Windows, some accesses to the stat cache caused it to become
62  inconsistent, which could also trigger exceptions (report and patch
63  by Peter Stirling).
64
65- In ftputil 2.4, the use of ``super`` in the exception base class
66  caused ftputil to fail on Python <2.5 (reported by Nicola Murino).
67  ftputil is supposed to run with Python 2.3+.
68
69- The conversion of 12-hour clock times to 24-hour clock in the MS
70  format parser was wrong for 12 AM and 12 PM.
71
72Upgrading is strongly recommended.
73
74What is ftputil?
75----------------
76
77ftputil is a high-level FTP client library for the Python programming
78language. ftputil implements a virtual file system for accessing FTP
79servers, that is, it can generate file-like objects for remote files.
80The library supports many functions similar to those in the os,
81os.path and shutil modules. ftputil has convenience functions for
82conditional uploads and downloads, and handles FTP clients and servers
83in different timezones.
84
85Read the documentation at
86http://ftputil.sschwarzer.net/documentation .
87
88License
89-------
90
91ftputil is Open Source software, released under the revised BSD
92license (see http://www.opensource.org/licenses/bsd-license.php ).
93
94Stefan
95
96----------------------------------------------------------------------
97ftputil 2.4 is now available from
98http://ftputil.sschwarzer.net/download .
99
100Changes since version 2.3
101-------------------------
102
103The ``FTPHost`` class got a new method ``chmod``, similar to
104``os.chmod``, to act on remote files. Thanks go to Tom Parker for
105the review.
106
107There's a new exception ``CommandNotImplementedError``, derived from
108``PermanentError``, to denote commands not implemented by the FTP
109server or disabled by its administrator.
110
111Using the ``xreadlines`` method of FTP file objects causes a warning
112through Python's warnings framework.
113
114Upgrading is recommended.
115
116Incompatibility notice
117----------------------
118
119The ``xreadlines`` method will be removed in ftputil *2.5* as well as
120the direct access of exception classes via the ftputil module (e. g.
121``ftputil.PermanentError``). However, the deprecated access causes no
122warning because that would be rather difficult to implement.
123
124The distribution contains a small tool find_deprecated_code.py to scan
125a directory tree for the deprecated uses. Invoke the program with the
126``--help`` option to see a description.
127
128What is ftputil?
129----------------
130
131ftputil is a high-level FTP client library for the Python programming
132language. ftputil implements a virtual file system for accessing FTP
133servers, that is, it can generate file-like objects for remote files.
134The library supports many functions similar to those in the os,
135os.path and shutil modules. ftputil has convenience functions for
136conditional uploads and downloads, and handles FTP clients and servers
137in different timezones.
138
139Read the documentation at
140http://ftputil.sschwarzer.net/documentation .
141
142License
143-------
144
145ftputil is Open Source software, released under the revised BSD
146license (see http://www.opensource.org/licenses/bsd-license.php ).
147
148Stefan
149
150----------------------------------------------------------------------
151ftputil 2.3 is now available from
152http://ftputil.sschwarzer.net/download .
153
154Changes since version 2.2.4
155---------------------------
156
157ftputil has got support for the ``with`` statement which was introduced
158by Python 2.5. You can now construct host and remote file objects in
159``with`` statements and have them closed automatically (contributed
160by Roger Demetrescu). See the documentation for examples.
161
162What is ftputil?
163----------------
164
165ftputil is a high-level FTP client library for the Python programming
166language. ftputil implements a virtual file system for accessing FTP
167servers, that is, it can generate file-like objects for remote files.
168The library supports many functions similar to those in the os,
169os.path and shutil modules. ftputil has convenience functions for
170conditional uploads and downloads, and handles FTP clients and servers
171in different timezones.
172
173Read the documentation at
174http://ftputil.sschwarzer.net/documentation .
175
176License
177-------
178
179ftputil is Open Source software, released under the revised BSD
180license (see http://www.opensource.org/licenses/bsd-license.php ).
181
182Stefan
183
184----------------------------------------------------------------------
185ftputil 2.2.4 is now available from
186http://ftputil.sschwarzer.net/download .
187
188Changes since version 2.2.3
189---------------------------
190
191This release fixes a bug in the ``makedirs`` call (report and fix by
192Richard Holden). Upgrading is recommended.
193
194What is ftputil?
195----------------
196
197ftputil is a high-level FTP client library for the Python programming
198language. ftputil implements a virtual file system for accessing FTP
199servers, that is, it can generate file-like objects for remote files.
200The library supports many functions similar to those in the os,
201os.path and shutil modules. ftputil has convenience functions for
202conditional uploads and downloads, and handles FTP clients and servers
203in different timezones.
204
205Read the documentation at
206http://ftputil.sschwarzer.net/documentation .
207
208License
209-------
210
211ftputil is Open Source software, released under the revised BSD
212license (see http://www.opensource.org/licenses/bsd-license.php ).
213
214Stefan
215
216----------------------------------------------------------------------
217ftputil 2.2.3 is now available from
218http://ftputil.sschwarzer.net/download .
219
220Changes since version 2.2.2
221---------------------------
222
223This release fixes a bug in the ``makedirs`` call (report and fix by
224Julian, whose last name I don't know ;-) ). Upgrading is recommended.
225
226What is ftputil?
227----------------
228
229ftputil is a high-level FTP client library for the Python programming
230language. ftputil implements a virtual file system for accessing FTP
231servers, that is, it can generate file-like objects for remote files.
232The library supports many functions similar to those in the os,
233os.path and shutil modules. ftputil has convenience functions for
234conditional uploads and downloads, and handles FTP clients and servers
235in different timezones.
236
237Read the documentation at
238http://ftputil.sschwarzer.net/documentation .
239
240License
241-------
242
243ftputil is Open Source software, released under the revised BSD
244license (see http://www.opensource.org/licenses/bsd-license.php ).
245
246Stefan
247
248----------------------------------------------------------------------
249ftputil 2.2.2 is now available from
250http://ftputil.sschwarzer.net/download .
251
252Changes since version 2.2.1
253---------------------------
254
255This bugfix release handles whitespace in path names more reliably
256(thanks to Johannes Str�rg). Upgrading is recommended.
257
258What is ftputil?
259----------------
260
261ftputil is a high-level FTP client library for the Python programming
262language. ftputil implements a virtual file system for accessing FTP
263servers, that is, it can generate file-like objects for remote files.
264The library supports many functions similar to those in the os,
265os.path and shutil modules. ftputil has convenience functions for
266conditional uploads and downloads, and handles FTP clients and servers
267in different timezones.
268
269Read the documentation at
270http://ftputil.sschwarzer.net/documentation .
271
272License
273-------
274
275ftputil is Open Source software, released under the revised BSD
276license (see http://www.opensource.org/licenses/bsd-license.php ).
277
278Stefan
279
280----------------------------------------------------------------------
281ftputil 2.2.1 is now available from
282http://ftputil.sschwarzer.net/download .
283
284Changes since version 2.2
285-------------------------
286
287This bugfix release checks (and ignores) status code 451 when FTPFiles
288are closed (thanks go to Alexander Holyapin). Upgrading is recommended.
289
290What is ftputil?
291----------------
292
293ftputil is a high-level FTP client library for the Python programming
294language. ftputil implements a virtual file system for accessing FTP
295servers, that is, it can generate file-like objects for remote files.
296The library supports many functions similar to those in the os,
297os.path and shutil modules. ftputil has convenience functions for
298conditional uploads and downloads, and handles FTP clients and servers
299in different timezones.
300
301Read the documentation at
302http://ftputil.sschwarzer.net/trac/wiki/Documentation .
303
304License
305-------
306
307ftputil is Open Source software, released under the revised BSD
308license (see http://www.opensource.org/licenses/bsd-license.php ).
309
310Stefan
311
312----------------------------------------------------------------------
313ftputil 2.2 is now available from
314http://ftputil.sschwarzer.net/download .
315
316Changes since version 2.1
317-------------------------
318
319- Results of stat calls (also indirect calls, i. e. listdir,
320  isdir/isfile/islink, exists, getmtime etc.) are now cached and
321  reused. This results in remarkable speedups for many use cases.
322  Thanks to Evan Prodromou for his permission to add his lrucache
323  module under ftputil's license.
324
325- The current directory is also locally cached, resulting in further
326  speedups.
327
328- It's now possible to write and plug in custom parsers for directory
329  formats which ftputil doesn't support natively.
330
331- File-like objects generated via ``FTPHost.file`` now support the
332  iterator protocol (for line in some_file: ...).
333
334- The documentation has been updated accordingly. Read it under
335  http://ftputil.sschwarzer.net/trac/wiki/Documentation .
336
337Possible incompatibilities:
338
339- This release requires at least Python 2.3. (Previous releases
340  worked with Python versions from 2.1 up.)
341
342- The method ``FTPHost.set_directory_format`` has been removed,
343  since the directory format (Unix or MS) is set automatically. (The
344  new method ``set_parser`` is a different animal since it takes
345  a parser object to parse "foreign" formats, not a string.)
346
347What is ftputil?
348----------------
349
350ftputil is a high-level FTP client library for the Python programming
351language. ftputil implements a virtual file system for accessing FTP
352servers, that is, it can generate file-like objects for remote files.
353The library supports many functions similar to those in the os,
354os.path and shutil modules. ftputil has convenience functions for
355conditional uploads and downloads, and handles FTP clients and servers
356in different timezones.
357
358License
359-------
360
361ftputil 2.2 is Open Source software, released under the revised BSD
362license (see http://www.opensource.org/licenses/bsd-license.php ).
363
364Stefan
365
366----------------------------------------------------------------------
367The second beta version of ftputil 2.2 is available. You can download
368it from http://ftputil.sschwarzer.net/download .
369
370With respect to the first beta release, it's now possible to write
371and plug in custom parsers for FTP directory formats that ftputil
372doesn't know natively. The documentation has been updated accordingly.
373
374The documentation for this release is online at
375http://ftputil.sschwarzer.net/trac/wiki/Documentation#Documentationforftputil2.2b2 ,
376so you can read about the extensions in more detail.
377
378Please download and test the release. Do you miss something which
379should be in this release? Are there any bugs?
380
381Stefan
382
383----------------------------------------------------------------------
384The first beta version of ftputil 2.2 is available. You can download
385it from http://ftputil.sschwarzer.net/download .
386
387With respect to the previous alpha release, the cache now uses the
388lrucache module by Evan Prodromou which is bundled with the ftputil
389distribution. (Evan also gave his permission to include the module
390under ftputil's modified BSD license instead of the Academic License.)
391The documentation for the cache and its control have been added to
392ftputil.txt / ftputil.html .
393
394File objects generated with FTPHost.file now support the iterator
395protocol (for line in some_file: ...).
396
397Please download and test the release. Do you miss something which
398should be in this release? Are there any bugs?
399
400Stefan
401
402----------------------------------------------------------------------
403Welcome to the first alpha release of ftputil 2.2, ftputil 2.2a1.
404Please download it from http://ftputil.sschwarzer.net/download .
405
406This version adds caching of stat results to ftputil. This also
407affects indirect calls via FTPHost.path, e. g. methods isfile,
408exists, getmtime, getsize. The test script at
409http://ftputil.sschwarzer.net/trac/browser/tags/release2_2a1/sandbox/list_dir_test.py
410runs about 20 times as fast as before adding caching! :-)
411
412As the "alpha" part implies, this release is not production-ready,
413it's even kind of experimental: The caching works but there's no
414cache entry expiration yet. (I plan to implement an LRU expiration
415strategy or something similar.) Apart from that, the release is
416tested as any production release. I suggest using the --prefix
417option for installing alpha releases.
418
419That said, it would be helpful if you tested this release and
420report your findings. When testing the code, please make sure
421that your code uses the ftputil version you intend (alpha vs.
422production version), e. g. by setting the PYTHONPATH environment
423variable. I'm very interested in the speedups - and any problems
424you encounter.
425
426Stefan
427
428----------------------------------------------------------------------
429ftputil 2.1.1 is now available from
430http://ftputil.sschwarzer.net/download .
431
432This release fixes a bug which happened when a client opened
433a large file on the server as a file-like object and read
434only a part of it. For details, see
435http://ftputil.sschwarzer.net/trac/ticket/17 .
436
437Stefan
438
439----------------------------------------------------------------------
440Changes since version 2.0
441-------------------------
442
443- Added new methods to the FTPHost class, namely makedirs, walk,
444  rmtree.
445
446- The FTP server directory format ("Unix" vs. "Windows") is now set
447  automatically (thanks to Andrew Ittner for testing it).
448
449- Border cases like inaccessible login directories and whitespace in
450  directory names, are now handled more gracefully (based on input
451  from Valeriy Pogrebitskiy, Tommy Sundstr�nd H. Y. Chu).
452
453- The documentation was updated.
454
455- A Russian translation of the documentation (currently slightly
456  behind) was contributed by Anton Stepanov. It's also on the website
457  at http://ftputil.sschwarzer.net/trac/wiki/RussianDocumentation .
458
459- New website, http://ftputil.sschwarzer.net/ with wiki, issue tracker
460  and Subversion repository (thanks to Trac!)
461
462  Please enter not only bugs but also enhancement request into
463  the issue tracker!
464
465Possible incompatibilities:
466
467- The exception hierarchy was changed slightly, which might break
468  client code. See http://ftputil.sschwarzer.net/trac/changeset/489
469  for the change details and the possibly necessary code changes.
470
471- FTPHost.rmdir no longer removes non-empty directories. Use the new
472  method FTPHost.rmtree for this.
473
474What is ftputil?
475----------------
476
477ftputil is a high-level FTP client library for the Python programming
478language. ftputil implements a virtual file system for accessing FTP
479servers, that is, it can generate file-like objects for remote files.
480The library supports many functions similar to those in the os,
481os.path and shutil modules. ftputil has convenience functions for
482conditional uploads and downloads, and handles FTP clients and servers
483in different timezones.
484
485License
486-------
487
488ftputil 2.1 is Open Source software, released under the revised BSD
489license (see http://www.opensource.org/licenses/bsd-license.php ).
490
491Stefan
492
493----------------------------------------------------------------------
494ftputil 2.0.3 is now available at
495http://www.sschwarzer.net/python/python_software.html#ftputil .
496
497This release fixes (for most cases) some problems when logging into an
498FTP server with an inaccessible login directory, i. e. `getcwd()`
499returns "/some/login/dir" but `chdir("/some/login/dir")` fails.
500
501Thanks go to Valeriy Pogrebitskiy for investigating and reporting
502these problems.
503
504Stefan
505
506----------------------------------------------------------------------
507Here's ftputil 2.0 !
508
509ftputil is a high-level alternative to Python's ftplib module. With
510ftputil, you can access directories and files on remote FTP servers
511almost as if they were in your local file system. This includes using
512file-like objects representing remote files.
513
514For future releases see
515http://www.sschwarzer.net/python/python_software.html
516or subscribe to the mailing list at
517http://codespeak.net/mailman/listinfo/ftputil
518
519What's new?
520-----------
521
522From version 1.1 to 2.0, the following has changed:
523
524- ftputil has been re-organized and is now a Python package (the
525  import statement is still the same)
526
527- installation via Python distutils
528
529- stat, upload_if_newer, download_if_newer etc. work correctly if the
530  server is in another time zone than the client running ftputil (with
531  help from Andrew Ittner); see section "Time zone correction" in the
532  documentation
533
534- it's possible to set the directory listing format "manually" (though
535  in most cases it's recognized automatically); see section "Stat'ing
536  files and directories"
537
538- added a workaround regarding whitespace in directory names (thanks
539  to Tommy Sundstr�nd H. Y. Chu)
540
541- extended documentation and converted it to HTML format (now
542  generated from reStructured Text)
543
544- several bugfixes
545
546- there's now a mailing list at http://codespeak.net/mailman/listinfo/ftputil
547  (thanks to Holger Krekel)
548
549Documentation
550-------------
551
552The documentation for ftputil can be found in the file ftputil.txt
553(reStructured Text format) or ftputil.html (recommended, generated
554from ftputil.txt).
555
556License
557-------
558
559ftputil is Open Source Software. It is distributed under a BSD-style
560license (see the top of ftputil.py).
561
562Stefan
563
564----------------------------------------------------------------------
565ftputil 1.1 is released. You can find it at
566http://www.ndh.net/home/sschwarzer/python/python_software.html .
567
568ftputil provides a higher-level interface for FTP sessions than the
569ftplib module. FTP servers can be accessed via an interface similar to
570os and os.path. Remote files are accessible as file-like objects.
571
572New since version 1.0:
573
574- ftputil now runs under Python 2.1+ (not only 2.2+).
575- documentation
576- conditional upload/download (depending on local and remote file
577  timestamps)
578- FTPHost.stat follows links
579- a session factory other than the default, ftplib.FTP, can be given
580  in the FTPHost constructor; this allows to use classes derived from
581  ftplib.FTP (like ftpslib.FTP_TLS from the M2Crypto package)
582- several bugfixes (mostly regarding byte count in text mode
583  transfers)
584- unit test
585
586Stefan
587----------------------------------------------------------------------
588Hello Pythoneers :)
589
590I would like to announce ftputil.py, a module which provides a
591more friendly interface for FTP sessions than the ftplib module.
592
593The FTPHost objects generated from it allow many operations similar
594to those of os and os.path. Examples:
595
596  # download some files from the login directory
597  import ftputil
598  host = ftputil.FTPHost('ftp.domain.com', 'user', 'secret')
599  names = host.listdir(host.curdir)
600  for name in names:
601      if host.path.isreg(name):
602          host.download(name, name, 'b')  # remote, local, binary mode
603
604  # make a new directory and copy a remote file into it
605  host.mkdir('newdir')
606  source = host.file('index.html', 'r')  # file-like object
607  target = host.file('newdir/index.html', 'w')  # file-like object
608  host.copyfileobj(source, target)  # mimics shutil.copyfileobj
609  source.close()
610  target.close()
611
612Even host.path.walk works. :-) But slow. ;-)
613
614ftputil.py can be downloaded from
615http://www.ndh.net/home/sschwarzer/download/ftputil.py
616
617I would like to get your suggestions and comments. :-)
618
619Stefan
620
621
622P.S.: Thanks to Pedro Rodriguez for his helpful answer to my question
623in comp.lang.python :-)
624----------------------------------------------------------------------
Note: See TracBrowser for help on using the browser.