A CLI tool to generate ASCII tree representation of a project structure.
Project description
Indastructa
Indastructa is a convenient CLI tool for quickly creating a clear ASCII tree of your project's file structure.
Perfect for documentation, technical reviews, architecture discussions, or blog posts.
Key Features
- Clear Output: Generates a beautiful and easy-to-read ASCII tree.
- Automatic Saving: The result is automatically saved to a
project_structure.txtfile in the project root. - Smart Exclusions: By default, it ignores unnecessary files and folders (such as
.git,venv,__pycache__,.idea, and others). - Integration with
.gitignore: Automatically reads rules from.gitignoreand.dockerignoreto exclude everything unrelated to source code. - Flexible Configuration: Allows specifying target folder, limiting scan depth, and adding custom exclusions via command-line arguments.
Installation
pip install indastructa
How to Use
Simple Run
cd /path/to/your/project
indastructa
Example
If your project structure looks like this:
my_project/
├── src/
│ ├── main.py
│ └── utils.py
├── tests/
│ └── test_main.py
├── .venv/
├── .gitignore
└── README.md
indastructa will generate:
my_project
├── src
│ ├── main.py
│ └── utils.py
├── tests
│ └── test_main.py
├── .gitignore
└── README.md
The project structure is saved to the file: `project_structure.txt`
Advanced Usage
- Specify a target folder:
indastructa ./src
- Limit scan depth (for example, to 2 levels):
indastructa --level 2
- Exclude files/folders by pattern:
indastructa --exclude "*.md,docs"
Exclusion Logic
indastructa uses a three-level filtering system:
- Built-in rules:
.git,venv,__pycache__,dist,build, etc. - Rules from
.gitignoreand.dockerignore: Automatically loaded. - User rules: Passed via
--excludeand have the highest priority.
Future Ideas
- Adding info badges (shields.io)
- Interactive mode for excluding files/folders
- Support for exporting structure to JSON/YAML
Have ideas or found a bug? Create an Issue on GitHub.
License
The project is distributed under the MIT License.
Project details
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 indastructa-0.0.1.tar.gz.
File metadata
- Download URL: indastructa-0.0.1.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd79525228f8d02daad5e282c38795a6b31aa98bbb156316eab08812acaf3c67
|
|
| MD5 |
ae4f624d03111dad0df1d6058e2335e7
|
|
| BLAKE2b-256 |
da880aa0c4b565c4e042a4fd6dc48456eb426cc2c8b05943766489967ce8ae7f
|
File details
Details for the file indastructa-0.0.1-py3-none-any.whl.
File metadata
- Download URL: indastructa-0.0.1-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1290ff37e9e73b8f12a15110f86d99ab5871fcdf7d744486ff423dd2fff74733
|
|
| MD5 |
b1dd942f293a0d6f29d6b1a4a55381f4
|
|
| BLAKE2b-256 |
ff4fc6529d4114679b9bcbfdcd7d0415fd52b5eaa9707ffc4796b8523420a71d
|