source: announcements.txt @ 770:da2f3a875b36

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