Changelog

Unreleased

  • Nothing yet

v0.5.2

  • Add JoinablePath.relative_to() and JoinablePath.is_relative_to().

v0.5.1

  • Make vfsopen() try to call open(), like it did before 0.5.0.

v0.5.0

  • Add vfspath(), which returns the virtual filesystem path as a string.

  • Replace JoinablePath.__str__() abstract method with __vfspath__().

  • Replace magic_open() with vfsopen(). The new function takes the same arguments.

  • Replace ReadablePath.__open_rb__() abstract method with __open_reader__(), and remove buffering argument.

  • Replace WritablePath.__open_wb__() abstract method with __open_writer__(), and remove buffering and add mode arguments.

v0.4.3

  • Set correct __name__ for ABCs and PathParser.

v0.4.2

  • Emit encoding warnings from magic_open(), ReadablePath.read_text(), and WritablePath.write_text() at the correct stack level.

v0.4.1

  • When magic_open() is called to open a path in binary mode, raise ValueError if any of the encoding, errors or newline arguments are given.

  • In ReadablePath.glob(), raise ValueError when given an empty pattern.

  • In ReadablePath.glob() and JoinablePath.full_match(), stop accepting JoinablePath objects as patterns. Only strings are allowed.

  • In ReadablePath.copy() and copy_into(), stop accepting strings as target paths. Only WritablePath objects are allowed.

v0.4.0

  • Several months worth of upstream refactoring:

    • Rename PurePathBase to JoinablePath.

    • Split PathBase into ReadablePath and WritablePath.

    • Replace stat() with info attribute and PathInfo protocol.

    • Remove many nonessential methods.

    • Add support for copying between path instances.

  • Drop support for Python 3.7 and 3.8.

v0.3.1

  • Add support for Python 3.7.

v0.3.0

  • Rename PathModuleBase to ParserBase, and PurePathBase.pathmod to PurePathBase.parser.

  • Add ParserBase.splitext().

  • Add PurePathBase.full_match().

  • Treat a single dot (”.”) as a valid file extension.

  • Revert match() back to 3.12 behaviour (no recursive wildcards).

  • Replace PathBase.glob(follow_symlinks=...) with recurse_symlinks=....

  • Suppress all OSError exceptions from PathBase.exists() and is_*() methods.

  • Disallow passing bytes to initialisers.

  • Improve walking and globbing performance.

  • Expand test coverage.

  • Clarify that we’re using the PSF license.

v0.2.0

  • Add PathModuleBase ABC to support path syntax customization.

  • Add CI. Thank you Edgar Ramírez Mondragón!

  • Return paths with trailing slashes if a glob pattern ends with a slash.

  • Return both files and directory paths if a glob pattern ends with **, rather than directories only.

  • Improve PathBase.resolve() performance by avoiding some path object allocations.

  • Remove PurePathBase.is_reserved().

  • Remove automatic path normalization. Specifically, the ABCs no longer convert alternate separators nor remove either dot or empty segments.

  • Remove caching of the path drive, root, tail, and string.

  • Remove deprecation warnings and audit events.

v0.1.1

  • Improve globbing performance by avoiding re-initialising path objects.

  • Add docs.

v0.1.0

  • Initial release.