root/tags/release2_2/announcements.txt

Revision 675, 11.0 kB (checked in by schwa, 2 years ago)
Added announcement for ftputil 2.2 (final).
  • Property svn:mime-type set to text/plain
  • Property svn:eol-style set to native
Line 
1 ftputil 2.2 is now available from
2 http://ftputil.sschwarzer.net/download .
3
4 Changes since version 2.1
5 -------------------------
6
7 - Results of stat calls (also indirect calls, i. e. listdir,
8   isdir/isfile/islink, exists, getmtime etc.) are now cached and
9   reused. This results in remarkable speedups for many use cases.
10   Thanks to Evan Prodromou for his permission to add his lrucache
11   module under ftputil's license.
12
13 - The current directory is also locally cached, resulting in further
14   speedups.
15
16 - It's now possible to write and plug in custom parsers for directory
17   formats which ftputil doesn't support natively.
18
19 - File-like objects generated via ``FTPHost.file`` now support the
20   iterator protocol (for line in some_file: ...).
21
22 - The documentation has been updated accordingly. Read it under
23   http://ftputil.sschwarzer.net/trac/wiki/Documentation .
24
25 Possible incompatibilities:
26
27 - This release requires at least Python 2.3. (Previous releases
28   worked with Python versions from 2.1 up.)
29
30 - The method ``FTPHost.set_directory_format`` has been removed,
31   since the directory format (Unix or MS) is set automatically. (The
32   new method ``set_parser`` is a different animal since it takes
33   a parser object to parse "foreign" formats, not a string.)
34
35 What is ftputil?
36 ----------------
37
38 ftputil is a high-level FTP client library for the Python programming
39 language. ftputil implements a virtual file system for accessing FTP
40 servers, that is, it can generate file-like objects for remote files.
41 The library supports many functions similar to those in the os,
42 os.path and shutil modules. ftputil has convenience functions for
43 conditional uploads and downloads, and handles FTP clients and servers
44 in different timezones.
45
46 License
47 -------
48
49 ftputil 2.2 is Open Source software, released under the revised BSD
50 license (see http://www.opensource.org/licenses/bsd-license.php ).
51
52 Stefan
53
54 ----------------------------------------------------------------------
55 The second beta version of ftputil 2.2 is available. You can download
56 it from http://ftputil.sschwarzer.net/download .
57
58 With respect to the first beta release, it's now possible to write
59 and plug in custom parsers for FTP directory formats that ftputil
60 doesn't know natively. The documentation has been updated accordingly.
61
62 The documentation for this release is online at
63 http://ftputil.sschwarzer.net/trac/wiki/Documentation#Documentationforftputil2.2b2 ,
64 so you can read about the extensions in more detail.
65
66 Please download and test the release. Do you miss something which
67 should be in this release? Are there any bugs?
68
69 Stefan
70
71 ----------------------------------------------------------------------
72 The first beta version of ftputil 2.2 is available. You can download
73 it from http://ftputil.sschwarzer.net/download .
74
75 With respect to the previous alpha release, the cache now uses the
76 lrucache module by Evan Prodromou which is bundled with the ftputil
77 distribution. (Evan also gave his permission to include the module
78 under ftputil's modified BSD license instead of the Academic License.)
79 The documentation for the cache and its control have been added to
80 ftputil.txt / ftputil.html .
81
82 File objects generated with FTPHost.file now support the iterator
83 protocol (for line in some_file: ...).
84
85 Please download and test the release. Do you miss something which
86 should be in this release? Are there any bugs?
87
88 Stefan
89
90 ----------------------------------------------------------------------
91 Welcome to the first alpha release of ftputil 2.2, ftputil 2.2a1.
92 Please download it from http://ftputil.sschwarzer.net/download .
93
94 This version adds caching of stat results to ftputil. This also
95 affects indirect calls via FTPHost.path, e. g. methods isfile,
96 exists, getmtime, getsize. The test script at
97 http://ftputil.sschwarzer.net/trac/browser/tags/release2_2a1/sandbox/list_dir_test.py
98 runs about 20 times as fast as before adding caching! :-)
99
100 As the "alpha" part implies, this release is not production-ready,
101 it's even kind of experimental: The caching works but there's no
102 cache entry expiration yet. (I plan to implement an LRU expiration
103 strategy or something similar.) Apart from that, the release is
104 tested as any production release. I suggest using the --prefix
105 option for installing alpha releases.
106
107 That said, it would be helpful if you tested this release and
108 report your findings. When testing the code, please make sure
109 that your code uses the ftputil version you intend (alpha vs.
110 production version), e. g. by setting the PYTHONPATH environment
111 variable. I'm very interested in the speedups - and any problems
112 you encounter.
113
114 Stefan
115
116 ----------------------------------------------------------------------
117 ftputil 2.1.1 is now available from
118 http://ftputil.sschwarzer.net/download .
119
120 This release fixes a bug which happened when a client opened
121 a large file on the server as a file-like object and read
122 only a part of it. For details, see
123 http://ftputil.sschwarzer.net/trac/ticket/17 .
124
125 Stefan
126
127 ----------------------------------------------------------------------
128 Changes since version 2.0
129 -------------------------
130
131 - Added new methods to the FTPHost class, namely makedirs, walk,
132   rmtree.
133
134 - The FTP server directory format ("Unix" vs. "Windows") is now set
135   automatically (thanks to Andrew Ittner for testing it).
136
137 - Border cases like inaccessible login directories and whitespace in
138   directory names, are now handled more gracefully (based on input
139   from Valeriy Pogrebitskiy, Tommy Sundstr�nd H. Y. Chu).
140
141 - The documentation was updated.
142
143 - A Russian translation of the documentation (currently slightly
144   behind) was contributed by Anton Stepanov. It's also on the website
145   at http://ftputil.sschwarzer.net/trac/wiki/RussianDocumentation .
146
147 - New website, http://ftputil.sschwarzer.net/ with wiki, issue tracker
148   and Subversion repository (thanks to Trac!)
149
150   Please enter not only bugs but also enhancement request into
151   the issue tracker!
152
153 Possible incompatibilities:
154
155 - The exception hierarchy was changed slightly, which might break
156   client code. See http://ftputil.sschwarzer.net/trac/changeset/489
157   for the change details and the possibly necessary code changes.
158
159 - FTPHost.rmdir no longer removes non-empty directories. Use the new
160   method FTPHost.rmtree for this.
161
162 What is ftputil?
163 ----------------
164
165 ftputil is a high-level FTP client library for the Python programming
166 language. ftputil implements a virtual file system for accessing FTP
167 servers, that is, it can generate file-like objects for remote files.
168 The library supports many functions similar to those in the os,
169 os.path and shutil modules. ftputil has convenience functions for
170 conditional uploads and downloads, and handles FTP clients and servers
171 in different timezones.
172
173 License
174 -------
175
176 ftputil 2.1 is Open Source software, released under the revised BSD
177 license (see http://www.opensource.org/licenses/bsd-license.php ).
178
179 Stefan
180
181 ----------------------------------------------------------------------
182 ftputil 2.0.3 is now available at
183 http://www.sschwarzer.net/python/python_software.html#ftputil .
184
185 This release fixes (for most cases) some problems when logging into an
186 FTP server with an inaccessible login directory, i. e. `getcwd()`
187 returns "/some/login/dir" but `chdir("/some/login/dir")` fails.
188
189 Thanks go to Valeriy Pogrebitskiy for investigating and reporting
190 these problems.
191
192 Stefan
193
194 ----------------------------------------------------------------------
195 Here's ftputil 2.0 !
196
197 ftputil is a high-level alternative to Python's ftplib module. With
198 ftputil, you can access directories and files on remote FTP servers
199 almost as if they were in your local file system. This includes using
200 file-like objects representing remote files.
201
202 For future releases see
203 http://www.sschwarzer.net/python/python_software.html
204 or subscribe to the mailing list at
205 http://codespeak.net/mailman/listinfo/ftputil
206
207 What's new?
208 -----------
209
210 From version 1.1 to 2.0, the following has changed:
211
212 - ftputil has been re-organized and is now a Python package (the
213   import statement is still the same)
214
215 - installation via Python distutils
216
217 - stat, upload_if_newer, download_if_newer etc. work correctly if the
218   server is in another time zone than the client running ftputil (with
219   help from Andrew Ittner); see section "Time zone correction" in the
220   documentation
221
222 - it's possible to set the directory listing format "manually" (though
223   in most cases it's recognized automatically); see section "Stat'ing
224   files and directories"
225
226 - added a workaround regarding whitespace in directory names (thanks
227   to Tommy Sundstr�nd H. Y. Chu)
228
229 - extended documentation and converted it to HTML format (now
230   generated from reStructured Text)
231
232 - several bugfixes
233
234 - there's now a mailing list at http://codespeak.net/mailman/listinfo/ftputil
235   (thanks to Holger Krekel)
236
237 Documentation
238 -------------
239
240 The documentation for ftputil can be found in the file ftputil.txt
241 (reStructured Text format) or ftputil.html (recommended, generated
242 from ftputil.txt).
243
244 License
245 -------
246
247 ftputil is Open Source Software. It is distributed under a BSD-style
248 license (see the top of ftputil.py).
249
250 Stefan
251
252 ----------------------------------------------------------------------
253 ftputil 1.1 is released. You can find it at
254 http://www.ndh.net/home/sschwarzer/python/python_software.html .
255
256 ftputil provides a higher-level interface for FTP sessions than the
257 ftplib module. FTP servers can be accessed via an interface similar to
258 os and os.path. Remote files are accessible as file-like objects.
259
260 New since version 1.0:
261
262 - ftputil now runs under Python 2.1+ (not only 2.2+).
263 - documentation
264 - conditional upload/download (depending on local and remote file
265   timestamps)
266 - FTPHost.stat follows links
267 - a session factory other than the default, ftplib.FTP, can be given
268   in the FTPHost constructor; this allows to use classes derived from
269   ftplib.FTP (like ftpslib.FTP_TLS from the M2Crypto package)
270 - several bugfixes (mostly regarding byte count in text mode
271   transfers)
272 - unit test
273
274 Stefan
275 ----------------------------------------------------------------------
276 Hello Pythoneers :)
277
278 I would like to announce ftputil.py, a module which provides a
279 more friendly interface for FTP sessions than the ftplib module.
280
281 The FTPHost objects generated from it allow many operations similar
282 to those of os and os.path. Examples:
283
284   # download some files from the login directory
285   import ftputil
286   host = ftputil.FTPHost('ftp.domain.com', 'user', 'secret')
287   names = host.listdir(host.curdir)
288   for name in names:
289       if host.path.isreg(name):
290           host.download(name, name, 'b')  # remote, local, binary mode
291
292   # make a new directory and copy a remote file into it
293   host.mkdir('newdir')
294   source = host.file('index.html', 'r')  # file-like object
295   target = host.file('newdir/index.html', 'w')  # file-like object
296   host.copyfileobj(source, target)  # mimics shutil.copyfileobj
297   source.close()
298   target.close()
299
300 Even host.path.walk works. :-) But slow. ;-)
301
302 ftputil.py can be downloaded from
303 http://www.ndh.net/home/sschwarzer/download/ftputil.py
304
305 I would like to get your suggestions and comments. :-)
306
307 Stefan
308
309
310 P.S.: Thanks to Pedro Rodriguez for his helpful answer to my question
311 in comp.lang.python :-)
312 ----------------------------------------------------------------------
Note: See TracBrowser for help on using the browser.