Skip to content

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 05 Aug 03:24
· 421 commits to main since this release

Added

  • symlink_to(..., force=True) — replace an existing entry at the link
    path instead of failing. SFTP has no atomic "replace symlink", so every
    consumer was re-implementing the unlink-then-symlink dance. Implemented at
    the Path layer over a new _symlink_to() backend primitive (the same
    wrapper/primitive split as _mkdir/mkdir), so all backends inherit it.
    Removes a non-directory entry only, and is documented as non-atomic.
  • chown(uid=None, gid=None) over a new _chown() backend primitive.
    chown was the one POSIX permission attribute stat() could read but
    nothing could write back. None means "leave unchanged"; the normalization
    lives on Path so each backend receives an already-canonical pair rather
    than re-deriving the mapping (os.chown wants -1, SFTP omits the field).
  • chmod() accepts a string octal mode ("0755"), normalized with an
    explicit base-8 parse. A mode string outside [0-7] raises rather than
    being coerced — int("0755") in decimal is a different mode, which is
    exactly the wrong-but-plausible failure this guards.

Changed

  • Adopted black, pinned to the 3.9 floor; src/ and tests/ reformatted.

Full Changelog: v0.9.0...v0.9.1