Repository navigation
v0.9.1
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
thePathlayer 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.
chownwas the one POSIX permission attributestat()could read but
nothing could write back.Nonemeans "leave unchanged"; the normalization
lives onPathso each backend receives an already-canonical pair rather
than re-deriving the mapping (os.chownwants-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/andtests/reformatted.
Full Changelog: v0.9.0...v0.9.1