Timeline


and

2014-06-18:

11:46 Changeset [1567:3cf705ab8011] by Philippe Ombredanne
defaultFix for ticket #83 Catch errors from mktime and use the epoch and a year precision if mktime fails to handle times, typically for some OS (windows) and times before the epoch
10:14 Changeset [1565:a48f63e7ca64] by Philippe Ombredanne
defaultFixed minor typos

2014-06-17:

22:17 Changeset [1542:e9d24222f45e] by Stefan Schwarzer <sschwarzer@…>
defaultAdded test for parsing the unix mode "----------". This "always" worked, but ticket #83 prompted me to add a test for this.
22:15 Changeset [1541:fb5a46433c78] by Stefan Schwarzer <sschwarzer@…>
defaultRemoved empty line at end of file.
00:57 Ticket #83 (Crash on ibiblio.org) created by ftputiluser
Using pypi ftptil 3.1 on Win7, Python 2.6.6 in a virtualenv: […]

2014-06-16:

07:37 ftputil-3.1.tar.gz attached to Download by schwa
07:36 Changeset [1540:963488f28417] by Stefan Schwarzer <sschwarzer@…>
defaultUse `python2 setup.py sdist upload` for makefile `upload` target. I had gotten an error "error: no dist file created in earlier command" without the `sdist` argument (see also http://jamie.curle.io/blog/my-first-experience-adding-package-pypi/ ). Notice that this creates another package file, but if nothing had changed before, this should be fine. Nonetheless it's maybe better to use the same package file on the ftputil website and for uploading to PyPI.
07:26 Milestone 3.1 completed
07:24 Changeset [1539:2ca4990ba940] by Stefan Schwarzer <sschwarzer@…>
defaultAdded tag release3_1 for changeset f7022523f2f0
07:22 Download edited by schwa
(diff)
07:16 Documentation edited by schwa
(diff)
07:11 Changeset [1538:f7022523f2f0] by Stefan Schwarzer <sschwarzer@…>
defaultPatched for new version number and date.
07:10 Changeset [1537:abf013fcae1c] by Stefan Schwarzer <sschwarzer@…>
defaultDon't capitalize "open source software".
07:08 Changeset [1536:696006f3351d] by Stefan Schwarzer <sschwarzer@…>
defaultUpdated version number. Link to "real" documentation.

2014-06-10:

07:05 Ticket #79 (keep_alive() does not prevent 421 No transfer timeout) closed by schwa
wontfix: I wanted to mark this ticket as "invalid" since I can't do anything to …
07:00 Ticket #79 (keep_alive() does not prevent 421 No transfer timeout) reopened by schwa
06:58 Ticket #76 (Error message related to OS) closed by schwa
invalid: I change the resolution to "invalid" since in my opinion the "lacking" …
06:57 Ticket #76 (Error message related to OS) reopened by schwa
06:53 Download edited by schwa
Fixed followsymlinks -> followlinks. (diff)

2014-06-09:

17:25 Changeset [1535:d6788e481bf2] by Stefan Schwarzer <sschwarzer@…>
defaultRefer to page `PreReleaseDocumentation` instead of `Documentation`.
17:23 PreReleaseDocumentation edited by schwa
(diff)
17:21 Changeset [1534:65fa04ccd04d] by Stefan Schwarzer <sschwarzer@…>
defaultFixed URL references in announcement.
17:19 Changeset [1533:a540b8a9cccd] by Stefan Schwarzer <sschwarzer@…>
defaultAdded item release item "Update pre-release documentation".
17:12 Changeset [1532:f494d534e297] by Stefan Schwarzer <sschwarzer@…>
defaultAdded tag release3_1b for changeset 1f8037993f30
17:03 Ticket #82 (Fix "Internal Server Error"s) closed by schwa
fixed: Due to the entries in the traceback (see description) I instrumented …
16:48 Download edited by schwa
(diff)
10:50 Changeset [1531:1f8037993f30] by Stefan Schwarzer <sschwarzer@…>
defaultIncreased date with `make patch && make docs`.
00:18 Ticket #82 (Fix "Internal Server Error"s) created by schwa
Since a while, certain Trac operations cause an "Internal Server Error" …

2014-06-08:

23:58 Download edited by schwa
(diff)
23:55 Changeset [1530:d04d9045c9ad] by Stefan Schwarzer <sschwarzer@…>
defaultAdded tag release3_1b for changeset 46c35b1087c0
23:48 Ticket #80 (.makedirs() problem with unicode) closed by schwa
duplicate: This is a duplicate of #77.
23:39 Changeset [1529:46c35b1087c0] by Stefan Schwarzer <sschwarzer@…>
defaultRan `make patch && make docs`.
23:38 Changeset [1528:1f446103ade6] by Stefan Schwarzer <sschwarzer@…>
defaultIncreased version number to 3.1b.
23:38 Changeset [1527:7db0799716dc] by Stefan Schwarzer <sschwarzer@…>
defaultUpdated `README.txt` and `announcements.txt` for ftputil 3.1b.
23:33 Ticket #79 (keep_alive() does not prevent 421 No transfer timeout) closed by schwa
fixed: I decided not to change the keep_alive method, but I added a …
23:26 Changeset [1526:9218cbe591b0] by Stefan Schwarzer <sschwarzer@…>
defaultAdded a section on child sessions/connections. This should explain why calling `FTPHost.keep_alive` may not be enough if there are open remote files.
19:08 Changeset [1525:349506cfb444] by Stefan Schwarzer <sschwarzer@…>
defaultConsistently use `server` and `ftp_host` in example code. `server` now always means the host name and `ftp_host` an `FTPHost` instance. Previously, some examples even accidentally used `host` for both the server name and the created `FTPHost` object. Also converted some old code snippets to create `FTPHost` objects in a `with` statement.
18:47 Changeset [1524:75f09a84fa26] by Stefan Schwarzer <sschwarzer@…>
defaultUpdated FAQ to refer to new `session.session_factory` function.
18:23 Changeset [1523:c2a6894ec18d] by Stefan Schwarzer <sschwarzer@…>
defaultMerged "Support for the `with` statement" into "Basics" for `FTPFile` objects.
18:18 Changeset [1522:da2260917c85] by Stefan Schwarzer <sschwarzer@…>
defaultExtended documentation on `FTPHost.close`.
18:15 Changeset [1521:8b20fe2ccb3a] by Stefan Schwarzer <sschwarzer@…>
defaultMerged "Support for the `with` statement" into "Basics".
18:12 Changeset [1520:51b06db2c5f6] by Stefan Schwarzer <sschwarzer@…>
defaultMoved "Support for the `with` statement" before "Session factories".
18:08 Changeset [1519:50e394499e78] by Stefan Schwarzer <sschwarzer@…>
defaultFixed markup in documentation.
18:08 Changeset [1518:141eca2069c4] by Stefan Schwarzer <sschwarzer@…>
defaultDocumented `ftputil.session.session_factory`.
10:56 Changeset [1517:4d880f3271b2] by Stefan Schwarzer <sschwarzer@…>
defaultThe _original_ `lrucache` was written by Evan Prodromou.
10:51 Changeset [1516:5af5890055a3] by Stefan Schwarzer <sschwarzer@…>
defaultComment on function name `session_factory`.
10:47 Changeset [1515:2e15dc8b58d5] by Stefan Schwarzer <sschwarzer@…>
defaultComment why to use `base_class.__init__`.
10:45 Changeset [1514:ac09b6d5a745] by Stefan Schwarzer <sschwarzer@…>
defaultFixed typo in docstring.
10:41 Changeset [1513:62b40a241d29] by Stefan Schwarzer <sschwarzer@…>
defaultFixed broken links in source code comments.
10:35 Changeset [1512:f77c94a10b7b] by Stefan Schwarzer <sschwarzer@…>
defaultFixed broken links in documentation.

2014-06-07:

23:34 Ticket #81 (Round timezone differences to 15-minute units, not hours) closed by schwa
fixed: Fixed in [ce5c6ccebd47].
23:32 Changeset [1511:ce5c6ccebd47] by Stefan Schwarzer <sschwarzer@…>
defaultExpect time shift in 15-minute units, not hour units (ticket #81).
16:46 Ticket #81 (Round timezone differences to 15-minute units, not hours) created by schwa
The method FTPHost.synchronize_times writes a file on the server, reads …
10:32 Changeset [1510:d0f1e9066ef9] by Stefan Schwarzer <sschwarzer@…>
defaultAdded docstring with file system tree to `TestWalk`. This way it's easier to understand whether the tests contain the correct expected results.
10:26 Changeset [1509:a31eac83a28a] by Stefan Schwarzer <sschwarzer@…>
defaultUse comment characters to keep the code visually together.
10:14 Ticket #73 (Support `followlinks` argument in `FTPHost.walk`) closed by schwa
fixed: Support for followlinks was added in [f40b9f6738d0].
10:12 Changeset [1508:452a03a5b1ff] by Stefan Schwarzer <sschwarzer@…>
defaultUpdated documentation for `FTPHost.walk` (`followlinks` parameter).
10:11 Changeset [1507:fdb6f0b71ee1] by Stefan Schwarzer <sschwarzer@…>
defaultUpdated recipe with workaround for `M2Crypto.ftpslib.FTP_TLS`. It should get much easier with the new `session.py` though (see ticket #78).
10:06 Changeset [1506:f40b9f6738d0] by Stefan Schwarzer <sschwarzer@…>
defaultAdded support for `followlinks` in `FTPHost.walk` (ticket #73).
10:02 Changeset [1505:896e116fb447] by Stefan Schwarzer <sschwarzer@…>
defaultAdded `dir3/dir32` as a link to `../dir1/dir12/dir123`.
09:50 Changeset [1504:1e0a779febee] by Stefan Schwarzer <sschwarzer@…>
defaultRenamed real dir `dir33` to `dir31`.
09:47 Changeset [1503:9d08fbe3c750] by Stefan Schwarzer <sschwarzer@…>
defaultRefactored `walk` tests to avoid duplicated code.

2014-05-28:

23:23 Ticket #80 (.makedirs() problem with unicode) reopened by schwa
18:13 Ticket #80 (.makedirs() problem with unicode) closed by ftputiluser
invalid
17:47 Ticket #80 (.makedirs() problem with unicode) created by ftputiluser
First, let me thank you for this excellent module. It saved me a lot of …

2014-05-20:

10:02 Ticket #79 (keep_alive() does not prevent 421 No transfer timeout) created by ftputiluser
[…]

2014-04-23:

08:14 Changeset [1502:23f0bc574981] by Stefan Schwarzer <sschwarzer@…>
defaultRaise `TypeError` instead of `PicklingError`. See also https://mail.python.org/pipermail/python-list/2014-April/671002.html

2014-04-22:

05:02 Changeset [1501:cc42f6ab9d3e] by Stefan Schwarzer <sschwarzer@…>
defaultEncrypt data channel by default if a method `prot_p` exists. I think most users will want to secure the data channel, so rather be safe than sorry and turn the encryption on by default. If needed, the data channel encryption can be suppressed by passing `encrypt_data_channel=False`.

2014-04-21:

12:50 Changeset [1500:f430087c23c1] by Stefan Schwarzer <sschwarzer@…>
defaultIgnore coverage report files.
12:48 Changeset [1499:f8ac6ddfcc1c] by Stefan Schwarzer <sschwarzer@…>
defaultAdded `coverage` target.
12:24 Changeset [1498:25a5b264907c] by Stefan Schwarzer <sschwarzer@…>
defaultAdded `from __future__ import unicode_literals`.
12:15 Changeset [1497:a3fac26bf149] by Stefan Schwarzer <sschwarzer@…>
defaultFixed/updated `.PHONY` targets.
12:13 Changeset [1496:93300e42354f] by Stefan Schwarzer <sschwarzer@…>
defaultAdded new target `find_missing_unicode_literals` to find files in `ftputil` and `test` that don't have `from __future__ import unicode_literals`. Renamed target `tox-test` to `tox_test`.
12:06 Changeset [1495:b2b2297fba51] by Stefan Schwarzer <sschwarzer@…>
defaultFor the `py27` environment, install M2Crypto as additional requirement. The installation of M2Crypto from PyPI required me to install `swig` and `openssl-devel` on Fedora.
12:04 Changeset [1494:30df847fea39] by Stefan Schwarzer <sschwarzer@…>
defaultAdded unit tests for `session_factory` helper. Most tests are done with a mock class, but there's also a test in `test_real_ftp.py` that will use `M2Crypto.ftpslib.FTP_TLS` to check if the workaround in the `Session` class in `ftputil.session.session_factory` works. Note that since M2Crypto isn't available for Python 3, the real FTP test is skipped for Python 3. (This requires the `unittest2` module or here the `unittest` in Python 2.7 and 3.3.)
12:01 Changeset [1493:c92c1acc42c2] by Stefan Schwarzer <sschwarzer@…>
defaultAdded `from __future__ import unicode_literals`.
11:59 Changeset [1492:c9a1598aba17] by Stefan Schwarzer <sschwarzer@…>
defaultAdded `__all__`.
10:30 Changeset [1491:1fa8877022e1] by Stefan Schwarzer <sschwarzer@…>
defaultUpload package to PyPI, don't just register. Uploading has (at least) advantages: - People can get the package if the ftputil website has problems. - I get download statistics.
10:27 Changeset [1490:ca12f324b30b] by Stefan Schwarzer <sschwarzer@…>
defaultMoved `session.py` from `sandbox` to `ftputil`. I plan to include this in the next release.
10:20 Changeset [1489:0500f24778e2] by Stefan Schwarzer <sschwarzer@…>
defaultAdded Makefile target `tox-test`.

2014-04-20:

11:38 Changeset [1488:6feef85c45b2] by Stefan Schwarzer <sschwarzer@…>
defaultSupport debug level when creating session factories.
11:22 Changeset [1487:4a0098ea7ecb] by Stefan Schwarzer <sschwarzer@…>
defaultDocument the anticipated session base classes.
11:17 Changeset [1486:f70b18e91500] by Stefan Schwarzer <sschwarzer@…>
defaultAdded "universal" "session factory factory". The new module `session.py` defines a function `session_factory` to create a session factory (class) according to the keyword arguments passed to the function. Example: my_session_factory = session_factory( base_class=M2Crypto.ftpslib.FTP_TLS, use_passive_mode=True, encrypt_data_channel=True) with ftputil.FTPHost(host, user, password, session_factory=my_session_factory) as host:

2014-04-19:

23:54 Ticket #78 (Error when using ftputil with M2Crypto) closed by schwa
fixed: The attached m2crypto_session.py contains a session factory class as a …
23:47 Changeset [1485:20df4fdbedc9] by Stefan Schwarzer <sschwarzer@…>
defaultM2Crypto session factory as workaround for ticket #78.
23:47 Changeset [1484:a675c0a0157a] by Stefan Schwarzer <sschwarzer@…>
defaultMake it possible to import modules from the `sandbox` directory.
23:17 Ticket #77 (`UnicodeDecodeError` when server sends non-ASCII error messages) closed by schwa
fixed: Fixed in [0079a3a8be44].
23:16 Changeset [1483:0079a3a8be44] by Stefan Schwarzer <sschwarzer@…>
defaultAvoid `UnicodeDecodeError` for non-ASCII server messages. See ticket #77. The test simulates the server error by raising an `ftplib.error_perm` directly.
19:38 Ticket #74 (Implement `StatResult` as a named tuple) closed by schwa
worksforme
19:20 Ticket #75 (Add support for Pickle) closed by schwa
wontfix: Resolution "wontfix" makes more sense than "fixed" because I won't add …
19:16 Ticket #75 (Add support for Pickle) reopened by schwa
19:15 Ticket #75 (Add support for Pickle) closed by schwa
fixed: Changeset [600fb1c435a9] now deliberately refuses to pickle FTPHost and …
19:13 Changeset [1482:600fb1c435a9] by Stefan Schwarzer <sschwarzer@…>
defaultDeliberately don't support pickling for `FTPHost` and `FTPFile`. Problems with pickling (from ticket #75): - To re-connect from the pickle file, you'd need the username and password, and I would understand if someone was mad at me if I didn't just use their password in memory but also wrote it to a file. ;-) - The pickle file might be unpickled in a completely different environment. It might not be possible to connect to the host from there. - The state of the FTP server might have changed between pickling and unpickling. For example, your last current directory might no longer exist. Of course, this can also happen during a session, but the more time passes between two logins (before pickling and when unpickling), the more likely a change on the remote side is. - It gets much more complicated if there are open remote files when the FTPHost instance should be pickled.
18:38 Ticket #76 (Error message related to OS) closed by schwa
fixed
18:30 Changeset [1481:6e82349a3a14] by Stefan Schwarzer <sschwarzer@…>
defaultUse original exception message in `FTPError` (ticket #76). If we create an `FTPError` instance based on a previously raised `ftplib` or `socket` exception, take the string representation of this original exception as the string representation of the new `FTPError` exception. The `*args` passed to `FTPError` aren't necessarily enough to guarantee this. At least for some socket exceptions, `args` is a tuple of an integer and a string and using only `args[0]` to form the exception message keeps only the integer.
15:09 Changeset [1480:9d44889174f4] by Stefan Schwarzer <sschwarzer@…>
defaultUse `TestCase.fail()` instead of `TestCase.assertTrue(False)`.

2014-04-18:

13:44 Ticket #78 (Error when using ftputil with M2Crypto) created by schwa
[http://lists.sschwarzer.net/pipermail/ftputil/2014q2/000390.html Reported …
13:31 Ticket #77 (`UnicodeDecodeError` when server sends non-ASCII error messages) created by schwa
[http://lists.sschwarzer.net/pipermail/ftputil/2014q2/000396.html reported …

2014-04-16:

01:39 Ticket #76 (Error message related to OS) created by ftputiluser
[…] The following code worked on a different version of ubuntu […]

2014-04-09:

20:58 Ticket #75 (Add support for Pickle) created by ftputiluser
Attached to ticket find slight code revision to support pickling of the …

2014-03-30:

06:51 Download edited by schwa
Updated links to mailing list archive. (diff)
Note: See TracTimeline for information about the timeline view.