Repository navigation
Fix/ls cli - #42
Merged
Merged
Fix/ls cli#42
Conversation
Native S3/GCS/Azure listings now return (uri, is_dir, size, modified) rows parsed from the list response itself, replacing the separate *_is_dir_batch round-trips. A shared Rust Listing builder classifies children and lets common prefixes win over same-named objects. Python gains DirEntry and scandir(stat=...): each backend reports what its listing knows (os.scandir d_type/stat locally, SFTP attrs, FTP MLSD facts, Artifactory folder flags, cloud listing rows) and one shared step probes only the missing fields, concurrently. Cloud walk() classifies from the listing with no extra requests. `asanypath ls` uses scandir for every mode: compact columns by default, directories styled with a trailing "/", -l prints size and modified time without the CREATED column, -r keeps the tree, and subtrees are listed concurrently. On a 3,575-entry local directory, ls drops from 0.29s to 0.18s and ls -l from 0.74s to 0.21s. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PROTOCOL_MAP now imports a built-in backend on first lookup of its scheme instead of all at once, and registering a protocol before any lookup no longer hides the built-ins. The package exports load on attribute access, and the CLI defers rich.progress/live/table to the commands using them. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
FTPPath.walk() built children from server-supplied names with self / name, which decodes escapes such as %2E%2E, so a server could make walk() and rglob() leave the walked directory. walk() now uses _list_entries(), which keeps only direct children, and reports listing failures to on_error as NotADirectoryError like the other backends. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
hannabjorgvins
approved these changes
Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Align asanypath cli ls command with coreutils ls