PyFilesystem2 v2.4.13 Release Notes

Release Date: 2021-03-27 // about 3 years ago
  • โž• Added

    • โž• Added FTP over TLS (FTPS) support to FTPFS. Closes #437, #449.
    • ๐Ÿ‘ป PathError now supports wrapping an exception using the exc argument. Closes #453.
    • ๐Ÿ‘ Better documentation of the writable parameter of fs.open_fs, and hint about using fs.wrap.read_only when a read-only filesystem is required. Closes #441.
    • ๐Ÿšš Copy and move operations now provide a parameter preserve_time that, when passed as True, makes sure the "mtime" of the destination file will be the same as that of the source file.

    ๐Ÿ”„ Changed

    • ๐Ÿ‘‰ Make FS.upload explicit about the expected error when the parent directory of the destination does not exist. Closes #445.
    • ๐Ÿ‘• Migrate continuous integration from Travis-CI to GitHub Actions and introduce several linters again in the build steps (#448). Closes #446.
    • ๐Ÿ’… Stop requiring pytest to run tests, allowing any test runner supporting unittest-style test suites.
    • ๐Ÿ— FSTestCases now builds the large data required for upload and download tests only once in order to reduce the total testing time.
    • ๐Ÿšš MemoryFS.move and MemoryFS.movedir will now avoid copying data. Closes #452.
    • ๐Ÿšš FS.removetree("/") behaviour has been standardized in all filesystems, and is expected to clear the contents of the root folder without deleting it. Closes #471.
    • ๐Ÿ—„ FS.getbasic is now deprecated, as it is redundant with FS.getinfo, and FS.getinfo is now explicitly expected to return the basic info namespace unconditionally. Closes #469.

    ๐Ÿ›  Fixed

    • ๐Ÿ“„ Make FTPFile, MemoryFile and RawWrapper accept array.array arguments for the write and writelines methods, as expected by their base class io.RawIOBase.
    • ๐Ÿ“š Various documentation issues, including MemoryFS docstring not rendering properly.
    • Avoid creating a new connection on every call of FTPFS.upload. Closes #455.
    • ๐Ÿšš WrapReadOnly.removetree not raising a ResourceReadOnly when called. Closes #468.
    • WrapCachedDir.isdir and WrapCachedDir.isfile raising a ResourceNotFound error on non-existing path (#470).
    • ๐Ÿง FTPFS not listing certain entries with sticky/SUID/SGID permissions set by Linux server (#473). Closes #451.
    • โš  scandir iterator not being closed explicitly in OSFS.scandir, occasionally causing a ResourceWarning to be thrown. Closes #311.
    • Incomplete type annotations for the temp_fs parameter of WriteTarFS and WriteZipFS. Closes #410.