Timeline
Nov 8, 2017:
- 8:47 AM Changeset [1707:07fb900b689c] by
- Add "Best regards" line
- 8:43 AM Changeset [1706:04919ae88997] by
- Change "register" to "upload" New packages should meanwhile be uploaded to PyPI, not just be registered.
- 8:42 AM Documentation edited by
- (diff)
- 8:39 AM Milestone 3.4 completed
- 8:37 AM Download edited by
- Add table row for ftputil 3.4 (diff)
- 8:33 AM Changeset [1705:c8b54de02a4d] by
- Added tag release3_4 for changeset 97e1e1d0456c
- 8:31 AM Changeset [1704:97e1e1d0456c] by
- Add `locally-disabled` to checks to exclude These messages clutter the output.
- 8:28 AM Changeset [1703:dbb73e1fa806] by
- Add `bad-continuation` to checks to exclude Pylint is far to picky here and rejects continuations that are allowed by PEP 8.
- 8:24 AM Changeset [1702:9d55cee384ec] by
- Increase year in copyright note
- 8:18 AM Changeset [1701:b2458e829006] by
- Change dependency `register` to `upload` The target `register` no longer exists in the Makefile. Tarballs are no longer merely "registered", but also uploaded to PyPI.
- 8:16 AM Changeset [1700:c2d1df5941ab] by
- Point out we make a distribution tarball (not just preparing it)
- 8:09 AM Changeset [1699:906d7eda1e0b] by
- Add remark on "missing" ftp.microsoft.com
- 7:54 AM Changeset [1698:97f5bfb96c1a] by
- Patch version and release date
- 7:53 AM Changeset [1697:3fdafd40c78a] by
- Be explicit about the kind of users We're talking about the users of the library, not the end users that will use the library without knowing about it.
Nov 5, 2017:
- 9:02 PM Ticket #116 (Deal with Pylint messages) created by
- At the moment, there are lots of messages from Pylint. I usually only …
- 8:22 PM Changeset [1696:f6f15214652a] by
- Mention explicit make command (`make tox_test`)
- 8:21 PM Changeset [1695:b73b38281645] by
- Change `py34` to `py35` The default Python on my current Linux machine is Python 3.5, not Python 3.4. Hence, `py35` avoids that I have to jump through hoops to run the tests on Python 3.4.
- 7:05 PM Changeset [1694:fbc3763b574f] by
- Add email addresses to `README.release` Avoid unnecessary searches for the email addresses of the ftputil and the python-announce mailing lists.
- 6:59 PM Changeset [1693:3e8f94e0ba63] by
- Update README file Mention bug fixes in ftputil 3.4 as well as the upcoming incompatibilities in ftputil 4.0.0.
- 6:58 PM Changeset [1692:ef338e57de47] by
- Remove note on Python programming language By now everyone knows what Python is (unlike 15 years ago, when ftputil 1.0 was released). ;-)
- 6:52 PM Changeset [1691:0296a2f3d118] by
- Increase version to 3.4
- 6:48 PM Changeset [1690:107aeb7e9ca4] by
- Add announcement for ftputil 3.4
- 6:19 PM Changeset [1689:19c512e280ca] by
- Change "dropped" to "removed" Use a more explicit word for this important change in ftputil 4.x.x. Especially non-native speakers won't miss "removed" as easily "dropped".
Oct 29, 2017:
- 1:13 PM Download edited by
- Describe how to install ftputil with pip (diff)
- 10:18 AM WikiStart edited by
- Remove comment part on binary mode (diff)
- 12:35 AM Changeset [1688:93401904f9bc] by
- Add deprecation warning about `use_list_a_option` Tell other developers that the default of `use_list_a_option` will change in future ftputil versions. As this is a backward-incompatible change, it can only be changed in a new major version, i. e. ftputil 4.0.0. See ticket #110 for the reason of the change.
- 12:15 AM Ticket #115 (Use TLS on website) created by
- It's high time to move to TLS, i. e. turn …
Oct 28, 2017:
- 11:54 PM Ticket #111 (Add deprecation warnings on dropping Python 2 support) closed by
- fixed: Fixed in [c48d3e1a3e8a]. This change issues a deprecation warning …
- 11:53 PM Changeset [1687:c48d3e1a3e8a] by
- Emit deprecation warning when used under Python 2 If Python is run with deprecation warnings enabled (say, with the `-Wd` option), an import of `ftputil` will show a deprecation warning under Python 2. ftputil 4.0.0 (to be released this or next year) will drop Python 2 support. See also http://lists.sschwarzer.net/pipermail/ftputil/2017q3/000465.html ticket: 111
- 11:28 PM Ticket #109 (LICENSE missing from sdist) closed by
- fixed
- 11:27 PM Changeset [1686:c0463bfcfccb] by
- Add `LICENSE` file ticket: 109
- 11:26 PM Changeset [1685:966520910602] by
- Use `-exec` instead of `xargs` Instead of piping the `find` output into `xargs`, use the `-exec` option of `find` to remove files and directories. Using `xargs` causes problems if nothing is found; in this case we get a message like rm: missing operand and the make target (`clean`) fails.
- 11:15 PM Changeset [1684:a0a8365cdb12] by
- Extract method `_is_file_system_entity` Extract `_is_file_system_entity` as the common code of `ftputil.path._Path.isdir` and `ftputil.path._Path.isfile`. For this change, I'm a bit torn between increasing the complexity by another indirection vs. removing almost all redundancy between the two methods. For now, favor the redundancy removal.
- 10:55 PM Changeset [1683:6f9cfd296288] by
- Put `isdir` before `isfile` Sort `isdir`, `isfile` and `islink` alphabetically. This is the same order in that they're tested in the unit tests.
- 10:51 PM Ticket #107 (untrapped exception) closed by
- fixed: Fixed in [ec059f9d9dc8]. FTPHost.path.isdir and …
- 10:49 PM Changeset [1682:ec059f9d9dc8] by
- Handle infinite link chains in `isdir` and `isfile` If `FTPHost.path.isdir` and `FTPHost.path.isfile` run into an infinite link chain, return `False`, as the corresponding functions in `os.path` do. Before, `isdir` and `isfile` would raise a `PermanentError` with the information that a recursive link chain was detected. This behavior, in turn, led to a failure in `FTPHost.walk` (see ticket #107). ticket: 107
- 8:47 PM Changeset [1681:7cfac974784c] by
- Add comment on `set_pasv` call When I looked at the code, I thought for a moment it was buggy because `set_pasv` was called even if `use_passive_mode` was `False`. As it turns out, according to the documentation `set_pasv` can either be called with `True` (=use passive mode) or `False` (=use active mode).
- 7:41 PM Changeset [1680:65a09765b238] by
- Add comment on `getcwd` call Mention that `normpath` has already been applied to the `getcwd` result, so the reader doesn't have to wonder whether there should also be calls to `normpath` on the `getcwd` results. ticket: 113
- 7:38 PM Ticket #113 (isdir fails because of trailing forward slash) closed by
- fixed: Fixed in commits [b4c9b089b6b8] and [4027740cdd2d].
- 7:33 PM Changeset [1679:80aa676d81b5] by
- Add TODO comment We can't add the comment in [4027740cdd2d] because this would change the hash. It's impossible to refer to a commit hash in the same commit's commit message. ticket: 113
- 7:23 PM Changeset [1678:4027740cdd2d] by
- Apply `normpath` before comparing paths In both `isfile` and `isdir` of `ftputil.path._Path`, there's a workaround in case we can't go to a parent directory of the current directory. Call `normpath` on the `isfile`/`isdir` path argument before comparing with `self._host.getcwd()`. This makes sure that we compare correctly if the paths aren't strictly equal but only semantically equal, i. e. referring to the same actual file system path. Don't use `samefile` here because this implicitly tries to call `stat`. This is exactly what we try to _avoid_ when applying the workaround. For now, don't create unit tests because these would be probably rather awkward. ticket: 113
- 7:17 PM Changeset [1677:b4c9b089b6b8] by
- Apply `normpath` when getting the working directory When getting the current working directory of the FTP session, apply `normpath`. This makes sure that an initial `FTPHost.getcwd` call returns the current working without a trailing slash (with the exception of the current directory being `/`). ticket: 113
- 6:38 PM Changeset [1676:441d337b2878] by
- Reorder caught exceptions in `_available_child` Change the order of caught exceptions in `FTPHost._available_child`. Put the errors in the `ftplib` namespace first, but otherwise order the exception classes alphabetically by their names. In general, when reordering exceptions you have to watch out for inheritance relationships (catch subclasses before their base classes). However, there doesn't seem to be any inheritance issue with the given exceptions.
- 6:35 PM Changeset [1675:1ce0dd183c17] by
- Fix wording
- 6:26 PM Ticket #114 (Uncaught EOF error in host._avaliable_child) closed by
- fixed: Fixed in [b2e19844d663].
- 6:25 PM Changeset [1674:b2e19844d663] by
- Catch `EOFError` in `_available_child` If `host._session.pwd` raises an `EOFError`, catch it and don't consider the affected child host for a new file-like object.
- 5:51 PM Changeset [1673:2cb5fa8e9206] by
- Add tests for the `_available_child` call Make the `pwd` method of child sessions raise an exception to test if it's caught and a new child session created.
- 5:18 PM Changeset [1672:108c4eb98c66] by
- Add another comment on socket timeout Emphasize that a socket timeout (TCP/IP protocol level) is different from an FTP timeout (FTP level).
Oct 24, 2017:
- 9:12 PM Ticket #114 (Uncaught EOF error in host._avaliable_child) created by
- There is an uncaught ftplib EOF exception in _avaliable_child that …
Oct 8, 2017:
- 8:02 PM Ticket #112 (Erratic `OSError` exceptions in `readinto` in some unit tests) closed by
- fixed: Fixed in [2a3350ab9374].
- 8:00 PM Changeset [1671:2a3350ab9374] by
- Handle socket read timeout in `_available_child` When `FTPFile.close` causes a socket read timeout, the _next_ read on the socket will raise an `OSError`. Hence, the `OSError` can happen in the `host._session.pwd` call in `FTPHost._available_child`. Catch this `OSError`. Although the fix in `ftputil.host.FTPHost._available_child` will make the child session handling work, socket read errors could result in child sessions being returned in a non-reproducible way. To make the identity checks in the tests reproducible, use the small `CONTENTS` file instead of the larger `debian-keyring.tar.gz` file. Investigation of ticket #112 showed that socket read errors would rather occur with larger files. This change in the tests is slightly hackish, but should be ok, unless it'll cause other problems later on. ticket: 112
- 7:47 PM Changeset [1670:57f54c874d4e] by
- Add `-e` option for `echo` invocation Add the `-e` option to evaluate `\n` sequences in the strings to echo.
- 7:46 PM Changeset [1669:7199091e3f2a] by
- Refactor test invocation Let the former `test` target run only fast tests for faster turnaround during development. To run all tests, including the slow tests, add a new target `all_tests`. For symmetry with `all_tests`, add a new target `tests`, which is an alias for the changed target `test`.
- 7:43 PM Changeset [1668:e6aab79e4df3] by
- Improve comment on `pytest` program
Sep 11, 2017:
- 11:22 PM Ticket #113 (isdir fails because of trailing forward slash) reopened by
- 11:19 PM Ticket #113 (isdir fails because of trailing forward slash) closed by
- invalid: "Apparently the error only appeared as a consequence of the LIST -a …
- 10:23 PM Ticket #113 (isdir fails because of trailing forward slash) created by
- I believe there is a bug in lines 134 and 155 of path.py. The lines …
Note: See TracTimeline
for information about the timeline view.