Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed1a.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-announce@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'debug': 0.07; 'explicit': 0.07; 'skip:` 10': 0.07; 'socket': 0.07; 'subject:ANN': 0.07; 'subject:released': 0.07; 'broke': 0.09; 'high-level': 0.09; 'implements': 0.09; 'os.path': 0.09; 'parameter': 0.09; 'raises': 0.09; 'received:212.227.126': 0.09; 'shutil': 0.09; 'python': 0.11; 'url:download': 0.12; 'assume': 0.14; 'language.': 0.14; 'changes': 0.15; '-------': 0.16; '[5]': 0.16; '[8]': 0.16; 'backward': 0.16; 'before.': 0.16; 'bsd': 0.16; 'conditional': 0.16; 'factories': 0.16; 'factory': 0.16; 'file-like': 0.16; 'mode,': 0.16; 'modules.': 0.16; 'non-ascii': 0.16; 'non-default': 0.16; 'port,': 0.16; 'recipe': 0.16; 'timeout': 0.16; 'units.': 0.16; 'url:licenses': 0.16; 'usable': 0.16; 'exception': 0.16; 'files.': 0.16; ':-)': 0.16; 'library': 0.18; 'trying': 0.19; '3.0': 0.19; 'stefan': 0.19; 'subject:] ': 0.20; 'programming': 0.22; 'handles': 0.22; 'header:User-Agent:1': 0.23; 'error': 0.23; 'hours,': 0.24; 'skip:` 20': 0.24; 'source': 0.25; '(see': 0.26; 'handling': 0.26; '(for': 0.26; 'header:X-Complaints-To:1': 0.27; 'fixed': 0.29; '[1]': 0.29; '[2]': 0.30; 'characters': 0.30; 'errors': 0.30; 'easier': 0.31; 'software,': 0.31; 'url:wiki': 0.31; 'convenience': 0.31; 'os,': 0.31; 'pickle': 0.31; 'url:wikipedia': 0.31; 'workaround': 0.31; 'file': 0.32; 'class': 0.32; 'open': 0.33; 'running': 0.33; 'cases': 0.33; 'common': 0.35; 'objects': 0.35; 'but': 0.35; 'version': 0.36; 'accessing': 0.36; 'combination': 0.36; 'described': 0.36; 'method': 0.36; 'similar': 0.36; 'url:org': 0.36; 'example,': 0.37; 'virtual': 0.37; 'skip:- 20': 0.37; 'level': 0.37; 'clear': 0.37; 'being': 0.38; 'remote': 0.38; 'server': 0.38; 'connections': 0.38; 'generic': 0.38; 'skip:- 10': 0.38; 'rather': 0.38; 'subject:[': 0.39; 'according': 0.40; 'improved': 0.60; 'limited.': 0.61; 'full': 0.61; 'here:': 0.62; 'information': 0.63; 'different': 0.65; 'license': 0.66; 'url:0': 0.67; 'to:addr:comp-lang-python- announce': 0.70; 'received:130': 0.73; 'to:addr:moderators.isc.org': 0.77; 'details:': 0.80; 'received:130.133': 0.83; 'received:130.133.4': 0.83; 'received:130.133.4.7': 0.83; 'received:individual.net': 0.83; 'received:moderators.individual.net': 0.83; '2.8': 0.84; 'url:76': 0.84; 'url:77': 0.84; 'url:81': 0.84; 'url:ticket': 0.84; 'url:trac': 0.84; 'differences': 0.93; 'fun!': 0.93 To: comp-lang-python-announce@moderators.isc.org From: Stefan Schwarzer Newsgroups: comp.lang.python.announce Subject: [ANN] ftputil 3.1 released Date: Mon, 16 Jun 2014 07:30:49 +0200 Organization: 1&1 Internet AG Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 Sender: news X-Virus-Scanned: ClamAV@mvs-ha-bs X-Mailman-Approved-At: Mon, 16 Jun 2014 09:29:25 +0200 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: python-list@python.org List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Approved: python-announce-list@python.org Message-ID: Lines: 70 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1402903766 news.xs4all.nl 2910 [2001:888:2000:d::a6]:52986 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python.announce:1299 ftputil 3.1 is now available from http://ftputil.sschwarzer.net/download . Changes since version 3.0 ------------------------- - Added support for `followlinks` parameter in `FTPHost.walk`. [1] - Trying to pickle `FTPHost` and `FTPFile` objects now raises explicit `TypeError`s to make clear that not being able to pickle these objects is intentional. [2] - Improved exception messages for socket errors [3]. - Fixed handling of server error messages with non-ASCII characters when running under Python 2.x. [4] - Added a generic "session factory factory" to make creation of session factories easier for common use cases (encrypted connections, non-default port, active/passive mode, FTP session debug level and combination of these). [5] This includes a workaround for `M2Crypto.ftpslib.FTP_TLS`; this class won't be usable with ftputil 3.0 and up with _just_ the session factory recipe described in the documentation. [6] - Don't assume time zone differences to always be full hours, but rather 15-minute units. [7] For example, according to [8], Nepal's time zone is UTC+05:45. - Improved documentation on timeout handling. This includes information on internal creation of additional FTP connections (for remote files, including uploads and downloads). This may help understand better why the `keep_alive` method is limited. Note that ftputil 3.0 broke backward compatibility with ftputil 2.8 and before. The differences are described here: http://ftputil.sschwarzer.net/trac/wiki/WhatsNewInFtputil3.0 What is ftputil? ---------------- ftputil is a high-level FTP client library for the Python programming language. ftputil implements a virtual file system for accessing FTP servers, that is, it can generate file-like objects for remote files. The library supports many functions similar to those in the os, os.path and shutil modules. ftputil has convenience functions for conditional uploads and downloads, and handles FTP clients and servers in different timezones. See the documentation for details: http://ftputil.sschwarzer.net/trac/wiki/Documentation License ------- ftputil is open source software, released under the revised BSD license (see http://opensource.org/licenses/BSD-3-Clause ). [1] http://ftputil.sschwarzer.net/trac/ticket/73 [2] http://ftputil.sschwarzer.net/trac/ticket/75 [3] http://ftputil.sschwarzer.net/trac/ticket/76 [4] http://ftputil.sschwarzer.net/trac/ticket/77 [5] http://ftputil.sschwarzer.net/trac/ticket/78 [6] http://ftputil.sschwarzer.net/trac/wiki/Documentation#session-factories [7] http://ftputil.sschwarzer.net/trac/ticket/81 [8] http://en.wikipedia.org/wiki/Timezone#List_of_UTC_offsets Have fun! :-) Stefan