Skip to main content

quickscaff 🚀

Tests PyPI version License: MIT Python Version

quickscaff is a modern, lightweight Python CLI tool designed to instantly scaffold project file trees, directory structures, and boilerplate templates.

quickscaff demo


✨ Features

  • ⚡ Fast Scaffolding: Create production-ready folder structures in milliseconds.
  • 📁 Custom Templates: Point to local template directories (--template ./my-template).
  • 🤖 Interactive Mode: Prompt-driven setup (quickscaff new -i).
  • 🪝 Post-Generation Hooks: Auto git init (--git) and .venv creation (--venv).
  • 🔍 Dry Run: Preview generated files before writing (--dry-run).
  • 📦 Built-in Templates: Choose from pre-configured layouts (basic, package, cli).
  • 🎨 Template Engine: Dynamic variable substitution ($name, $author, $version, $year).
  • 🛡️ Safe Filesystem Operations: Cross-platform path handling using Python's pathlib.
  • 🧪 Tested & Reliable: 100% automated unit test coverage with pytest.

💻 Installation

Install via pip:

pip install quickscaff

For local development:

git clone https://github.com/abdullacharoliya4-eng/quickscaff.git
cd quickscaff
pip install -e .

🚀 Quick Start

1. Scaffold a Basic Project

quickscaff new my_script --type basic
Output
[quickscaff] Scaffolding 'my_script' using 'basic' template...
[success] Created project at: /home/user/my_script

Next steps:
  cd my_script

my_script/
├── .gitignore
├── README.md
└── main.py

2. Scaffold a Full Python Package

quickscaff new my_package --type package --author "Abdulla" --description "A custom Python library"
Output
[quickscaff] Scaffolding 'my_package' using 'package' template...
[success] Created project at: /home/user/my_package

Next steps:
  cd my_package

my_package/
├── .gitignore
├── README.md
├── pyproject.toml
├── my_package/
│   ├── __init__.py
│   └── module.py
└── tests/
    ├── __init__.py
    └── test_module.py

3. Scaffold a CLI Application

quickscaff new my_cli --type cli --author "Abdulla"
Output
[quickscaff] Scaffolding 'my_cli' using 'cli' template...
[success] Created project at: /home/user/my_cli

Next steps:
  cd my_cli

my_cli/
├── .gitignore
├── README.md
├── pyproject.toml
├── my_cli/
│   ├── __init__.py
│   └── cli.py
└── tests/
    ├── __init__.py
    └── test_cli.py

4. List All Supported Templates

quickscaff list
Output
Available quickscaff Templates:
  - basic
  - package
  - cli

5. Custom Directory Template

quickscaff new my_custom_project --template ./my-custom-template

6. Post-Generation Hooks (Git & Venv)

quickscaff new my_app --type package --git --venv

7. Dry-Run Preview

quickscaff new my_app --type cli --dry-run

📂 Supported Templates

Template Description Key Files Generated
basic Minimal python script README.md, main.py, .gitignore
package Standard Python library pyproject.toml, README.md, {name}/module.py, tests/
cli CLI Application template pyproject.toml, {name}/cli.py, tests/test_cli.py

🛠️ Development & Testing

Run unit tests with pytest:

pytest -v

Lint and format code with ruff:

ruff check .
ruff format .

📜 License

Distributed under the MIT License.

Metadata

Release files for quickscaff 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for quickscaff 0.2.0
File Size Uploaded
quickscaff-0.2.0.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for quickscaff 0.2.0
File Interpreter ABI Platform
quickscaff-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.9 kB

Release files / quickscaff-0.2.0.tar.gz

Download URL quickscaff-0.2.0.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9ca766f64ca319ece0bf2e4bf4339919675c7cf8fc3a1f5756105a067e10980a
BLAKE2b-256 checksum
How to use checksums
bdb5119b98255f1f1cc45e2b9930a3ca7e1cc9e05b24a369e7b610969d73585d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / quickscaff-0.2.0-py3-none-any.whl

Download URL quickscaff-0.2.0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6ba996662b5835fd659c1775dd68e8dd2d5ee8155fe43457be0cdfe934613be
BLAKE2b-256 checksum
How to use checksums
fadb3cf472d2083a87d5416375ceaa10f5c825d9b78cd614263414a4323e26b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page