LSW: List Walker
LSW (List Walker) is a Python command-line utility inspired by ls that walks a directory and produces a browsable HTML tree, a plain-text tree, or structured exports. It can filter results by name patterns, regular expressions, directory scope, file extension, size, modification date, and traversal depth.
Public package: lsw-directory-walker on PyPI.
Documentation
This repository includes a Retype documentation site. Run retype start from the repository root to preview it, or retype build to generate static files in .retype/.
- CLI reference: installation, command syntax, options, and examples.
- Installation: install the public PyPI package and use the
lswcommand. - Graphical launcher: the Flet one-shot interface included with the package.
- Configuration and presets:
lsw-config.json, presets, and.lswignore. - Filtering guide: how filters combine and how directory traversal behaves.
- Output formats: HTML, TXT, CSV, JSON, JSONL, and Markdown details.
- HTML report guide: tree controls, search, grouping, analytics, and browser behavior.
- Developer reference: function map, execution flow, data contracts, and known implementation notes.
- Documentation deployment: publish the Retype site with GitHub Pages.
- Release guide: publish future versions to PyPI.
Documentation deployment is automated by .github/workflows/retype-pages.yml. Set the repository's GitHub Pages source to GitHub Actions.
Future releases can be prepared with .\scripts\release.ps1, which bumps the version, runs checks, builds the package, pushes the release commit, and creates the GitHub Release that triggers PyPI publishing.
Requirements
- Python 3.8 or newer is recommended.
- Installing the package installs Flet so the GUI is available immediately.
- On first run, LSW creates editable user defaults, presets, and
.lswignoreunder%APPDATA%\lswon Windows. - HTML analytics are rendered entirely by the generated report, with no external JavaScript dependency or network connection required.
Install as a command
Install the public package:
py -m pip install lsw-directory-walker
For development, install the current checkout with py -m pip install ..
After installation, use LSW from any directory:
lsw
lsw --gui
The command remains CLI-first. Running lsw does not open a window; use lsw --gui for the graphical launcher.
Quick start
From the directory containing lsw.py:
python lsw.py --path .
To open the modern desktop launcher:
lsw --gui
This writes tree_output.html and opens it in the default browser. To generate a text tree without opening a browser:
python lsw.py --path . --type txt --out tree.txt --no-browser
To export a filtered inventory:
python lsw.py --path . --type csv --ext .py,.json --ignore node_modules --out inventory.csv
Important behavior notes
- Hidden entries are skipped by the scan functions because names beginning with
.are filtered out. Theshow_hiddenconfig value is currently not consumed. --parallel,--no-parallel, and--workersare parsed, but the current execution path scans synchronously.- The
themeconfig value is loaded but the generated HTML starts in dark mode; the report's own theme button persists the user's browser choice inlocalStorage. .lswignorein the scanned directory takes precedence, followed by the current working directory, the file besidelsw.py, and finally the packaged default in the Python environment.- Existing files in
%APPDATA%\lsware never overwritten by first-run initialization. - CLI values override preset values only when the parsed CLI value is not
None; argparse defaults can therefore remain in place instead of being replaced by a preset.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lsw_directory_walker-0.1.1.tar.gz.
File metadata
- Download URL: lsw_directory_walker-0.1.1.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ded4ebcaccf0adad5f7faafb5a967c3766895d270aafe1d09897d70e1cf5f31
|
|
| MD5 |
0b5394f06594411f0400767998c7e62a
|
|
| BLAKE2b-256 |
7b234af7ba930195bfdc106423fbe32e72d72f39f298f073f12423e03104a8a1
|
Provenance
The following attestation bundles were made for lsw_directory_walker-0.1.1.tar.gz:
Publisher:
publish-pypi.yml on FinickySpider/lsw-directory-walker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lsw_directory_walker-0.1.1.tar.gz -
Subject digest:
0ded4ebcaccf0adad5f7faafb5a967c3766895d270aafe1d09897d70e1cf5f31 - Sigstore transparency entry: 2538067721
- Sigstore integration time:
-
Permalink:
FinickySpider/lsw-directory-walker@5210f3d2692ea90d443d21d844c92be86ebae582 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/FinickySpider
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@5210f3d2692ea90d443d21d844c92be86ebae582 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lsw_directory_walker-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lsw_directory_walker-0.1.1-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a3ae26493012d29fb86df89d26e46992b030af87c31eb4bec1bb5c61764ef52
|
|
| MD5 |
0b7d94169167b89570166259b08c712a
|
|
| BLAKE2b-256 |
7007c3ee55fbe7ef78a67ac64ca83213a6750e3106c6b9b20bd7a0b1cd030768
|
Provenance
The following attestation bundles were made for lsw_directory_walker-0.1.1-py3-none-any.whl:
Publisher:
publish-pypi.yml on FinickySpider/lsw-directory-walker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lsw_directory_walker-0.1.1-py3-none-any.whl -
Subject digest:
6a3ae26493012d29fb86df89d26e46992b030af87c31eb4bec1bb5c61764ef52 - Sigstore transparency entry: 2538068057
- Sigstore integration time:
-
Permalink:
FinickySpider/lsw-directory-walker@5210f3d2692ea90d443d21d844c92be86ebae582 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/FinickySpider
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@5210f3d2692ea90d443d21d844c92be86ebae582 -
Trigger Event:
release
-
Statement type: