root/trunk/announcements.txt

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