| 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 |
---------------------------------------------------------------------- |
|---|