Skip to main content

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

Project description

foldertree

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, etc.
  • Dry Run Mode: Preview what will be created without actual file creation
  • Flexible Output: Specify custom output directories

Installation

pip install foldertree

Usage

Command Line

# From file
foldertree -f structure.tree

# From stdin
echo "api/
  routes.py
core/
  classifier.py" | foldertree

# Dry run (preview only)
foldertree -f structure.tree --dry-run

# Specify output directory
foldertree -f structure.tree -o /path/to/output

# Force specific format
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.0.0.tar.gz (11.2 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.0.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for treescaffold-1.0.0.tar.gz
Algorithm Hash digest
SHA256 dca4e029868c2e7f67cc04b5d53866a0207481febdf31961e729eb63a3000fcd
MD5 9069db21816952b26419eefb4e5e4d5e
BLAKE2b-256 75840c52f75bcb40c6960f2dc1d9cdc0c7224aa7cd17d308aec0ae989ec8e884

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for treescaffold-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b0c06dad8c6fc9e4ae7ed209ad08e06fd7f94c42a700dacec86109be2837b9d
MD5 d6ba2ffd8503c98aa8e11b8e4c4863fe
BLAKE2b-256 13c52846d40ecbd395d5b1d9b28e6154b07dcfe9351fdb676159f155415597d7

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