Skip to content

v0.8.2

Choose a tag to compare

@github-actions github-actions released this 18 Jul 03:03
· 458 commits to main since this release

Fixed

  • SftpPath could not be imported or used with an asyncssh-only install
    (no paramiko).
    uri/schemes/sftp/__init__.py imported ._paramiko
    eagerly at module load, and _asyncssh.py imported the
    _DEFAULT_SSH_CONFIG sentinel from ._paramiko, so merely importing
    SftpPath (or the AsyncsshSftpBackend) required paramiko even when the
    caller only wanted the asyncssh backend from the sftp-async extra. The
    paramiko-free bits (the sentinel + config-path normalization) moved to a new
    _sshconfig module, and the paramiko SftpBackend is now imported lazily
    (via _probe_paramiko, mirroring _probe_asyncssh) only when actually
    selected. SftpBackend/_DEFAULT_SSH_CONFIG remain importable from the
    scheme package (PEP 562 __getattr__) for backward compatibility.
    PATHLIB_NEXT_SFTP_BACKEND=paramiko (or auto with neither library) now
    raises a clear ImportError naming the missing extra instead of a bare
    ModuleNotFoundError at import time. Regression test added
    (test_sftp_scheme_imports_and_resolves_without_paramiko, runs in a
    paramiko-masked subprocess).

Full Changelog: v0.8.1...v0.8.2