Skip to main content

Generate folder structures from various input formats (tree, YAML, simple indentation)

Project description

treescaffold (foldertree)

PyPI codecov License: MIT

A Python tool to generate folder structures from tree-like format.

Features

  • Multiple Input Formats: Supports tree-like structures, YAML, and simple indentation
  • Auto-detection: Automatically detects input format
  • Comment Support: Adds comments to generated files based on file extensions
  • Python Package Detection: Automatically creates __init__.py files in Python packages
  • Smart Skipping: Skips common files like __pycache__, .git, node_modules, etc.
  • Dry Run Mode: Preview what will be created without actual file creation
  • Flexible Output: Specify custom output directories

Installation

Directly from PyPI:

pip install treescaffold

Or from GitHub:

git clone https://github.com/sree-sphere/foldertree.git
cd foldertree
pip install -e .

Usage

Command Line

# From a structure file
treescaffold -f structure.tree
# (alias: `foldertree -f structure.tree`)


# From stdin
echo "api/
  routes.py
core/
  classifier.py" | treescaffold
# (alias: `foldertree`)

# Specify output directory (recommended)
treescaffold -f structure.tree -o project_output
# (alias: `foldertree -f structure.tree -o project_output`)

# Dry run (preview only)
treescaffold -f structure.tree --dry-run
# (alias: `foldertree -f structure.tree --dry-run`)

# Force specific format
treescaffold -f structure.yaml --format yaml
# (alias: `foldertree -f structure.yaml --format yaml`)

Python

from foldertree import TreeParser, TreeGenerator

# Parse structure
parser = TreeParser()
tree = parser.parse("""
api/
  routes.py    # FastAPI endpoints
core/
  classifier.py  # ML model
""")

# Generate structure
generator = TreeGenerator("./output")
result = generator.generate(tree)
print(f"Created {len(result['created_files'])} files")

Input Formats

  • Tree Format (with symbols)
├── api/
│   ├── __init__.py
│   └── routes.py
├── core/
│   ├── __init__.py
│   └── classifier.py
├── data/
│   ├── chunks_head/
│   └── highlight.json
└── main.py
  • Simple Indentation
api/
  routes.py                  # FastAPI endpoints
core/
  classifier.py              # ML model
main.py
  • YAML Format
structure:
  api:
    - routes.py
    - __init__.py
  core:
    - classifier.py
    - __init__.py
  main.py: null

Comment Support

The tool automatically adds appropriate comments to files based on their extensions:

  • .py files: # Comment
  • .js/.ts files: // Comment
  • .css files: /* Comment */
  • .html/.xml files:
  • And many more...

Smart Features

Automatic __init__.py Creation

When directories contain .py files, __init__.py is automatically created to make them proper Python packages.

Intelligent Skipping

Automatically skips common files and directories:

  • __pycache__
  • .git
  • node_modules
  • .env
  • Build/dist directories
  • And more...

Options

  • -f, --file: Input file containing folder structure
  • -o, --output: Output directory (default: current directory)
  • --format: Force input format (tree, yaml, simple, auto)
  • --dry-run: Show what would be created without creating files
  • -v, --verbose: Verbose output
  • --version: Show version

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

treescaffold-1.4.3.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

treescaffold-1.4.3-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file treescaffold-1.4.3.tar.gz.

File metadata

  • Download URL: treescaffold-1.4.3.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for treescaffold-1.4.3.tar.gz
Algorithm Hash digest
SHA256 fd858807a9e85db4b3ad8eb6a99db6fcab61c78f1c1af9647a54f35ffba7cbc9
MD5 377bf6f080cbeede0f4b7c24b8eb0b3d
BLAKE2b-256 2bd0e0905ee91401cd4e122a54cfb4a89af7436a10e938569c54f85a398ead2c

See more details on using hashes here.

File details

Details for the file treescaffold-1.4.3-py3-none-any.whl.

File metadata

  • Download URL: treescaffold-1.4.3-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for treescaffold-1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dd838adc20d96fa2e21f5e1bbe788a997f0fadc2d9e4dcf394fce827564f9cfc
MD5 db0b4e24ac1d7ffcee54f9a8e059475d
BLAKE2b-256 0a1c48065a3ff56698f1e37b25e19395c21154413d9f15f6cceca75af492ad63

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page