A fast and flexible scaffolding tool for Python applications.
Project description
Py_Boil 🔥
A lightweight Python package that helps developers quickly bootstrap projects by generating ready-to-use boilerplate code. With py_boil, you can scaffold Python applications in seconds — from simple scripts to full-featured project structures.
📋 Table of Contents
📖 About The Project
Stop wasting time setting up the same boilerplate code for every project. py_boil takes care of scaffolding your Python application, letting you focus on writing actual business logic.
Features
- 📦 Generate project scaffolds instantly
- ⚡ Ready-to-use templates (from Hello World to package structures)
- 🛠️ Customizable templates planned in future versions
- 🚀 Helps maintain consistency across projects
🏗️ Built With
- Python 3.10+
- uv for dependency management and reproducible environments
- bumpver for automated semantic versioning
- GitHub Actions for CI/CD pipeline
- pytest for testing framework
- Ruff for linting and formatting
🚀 Getting Started
👤 For Users
Installation
Install the latest release from PyPI:
pip install py-boiler-tools
Quick Usage
After installation, you can use the CLI to scaffold a new project:
# Simple Hello World App
pyboiler new basic
This will create a new files in the current project folder, including starter files.
For more options, run:
pyboiler --help
Prerequisites
Make sure you have Python 3.10+ and uv installed:
python3 --version
curl -LsSf https://astral.sh/uv/install.sh | sh
Installation
Install dependencies and create a virtual environment with uv:
uv sync
This will:
- Create a
.venv/automatically - Install dependencies listed in
pyproject.toml - Pin them exactly via a local
uv.lockfile
Installing Dev Dependencies
To install optional or development packages (like testing or formatting tools):
uv sync --dev
This will install your main dependencies plus all packages listed under [project.optional-dependencies.dev] in your pyproject.toml.
📝 Usage
Generate a simple Hello World project:
uv run py_boil new basic
Example output (placeholder):
project/
├── main.py
└── README.md
🏷 Versioning
py_boil uses bumpver for semantic versioning:
- Patch: bug fixes (0.1.0 → 0.1.1)
- Minor: new backward-compatible features (0.1.1 → 0.2.0)
- Major: breaking changes (0.2.0 → 1.0.0)
Bumping a version
bumpver patch # 0.1.0 -> 0.1.1
bumpver minor # 0.1.1 -> 0.2.0
bumpver major # 0.2.0 -> 1.0.0
This updates the version in both pyproject.toml and src/py_boil/__init__.py and optionally creates a Git commit and tag.
🔄 CI/CD Pipeline
This project uses GitHub Actions for continuous integration and deployment:
Automated Workflows
- 🧪 Test Suite: Runs on Python 3.10, 3.11, 3.12 across Ubuntu, Windows, and macOS
- 🎨 Code Quality: Linting and formatting with Ruff
- 📦 Build: Automated package building and validation
- 🚀 Release: Automated PyPI publishing when you create a GitHub release
Quality Metrics
- Test Coverage: 97% code coverage
- Code Quality: Automated linting and formatting
- Multi-Platform: Tests on Ubuntu, Windows, and macOS
- Multi-Version: Tests on Python 3.10, 3.11, and 3.12
Local Development
Run the same checks locally:
# Install development dependencies
uv sync --dev
# Run tests
pytest tests/ -v --cov=py_boiler
# Run linting
ruff check src/ tests/
ruff format src/ tests/
# Build package
python -m build
twine check dist/*
🗺️ Roadmap
- Basic Hello World template
- Package scaffold with setup files
- CLI options for customization
- User-defined templates
See the open issues for a full list of proposed features (and known issues).
🤝 Contributing
We use uv for dependency management. To set up the development environment:
uv sync --dev
To contribute:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
📜 License
Distributed under the Apache 2.0 License. See LICENSE for more information.
📬 Contact
Delali Funani – dfunani@gmail.com
Project Link: https://github.com/dfunani/py_boiler
Notes - PYPI
To upload your package to PyPI, follow these steps:
Ensure your package is ready for distribution (source code, metadata, etc.).
Install Twine and Build if not already installed:
pip install twine build
Build your package:
python -m build
Upload to PyPI:
twine upload --repository pypi dist/*
After uploading, you can install your package from PyPI using:
pip install --index-url https://test.pypi.org/simple/ your-package-name
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 py_boiler_tools-2.0.3.tar.gz.
File metadata
- Download URL: py_boiler_tools-2.0.3.tar.gz
- Upload date:
- Size: 23.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daece53bee73f70c92b587f28a375fa295ab6ef6b56ed7b9a1d13a5ad2f1fc4f
|
|
| MD5 |
5cb951e8c7d4d69c557d5373121180cd
|
|
| BLAKE2b-256 |
e94d63285875f0917cd22fbb50c07d590baba3ee06f607e49a880acc99bf6e97
|
Provenance
The following attestation bundles were made for py_boiler_tools-2.0.3.tar.gz:
Publisher:
python-publish.yml on dfunani/py_boiler
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_boiler_tools-2.0.3.tar.gz -
Subject digest:
daece53bee73f70c92b587f28a375fa295ab6ef6b56ed7b9a1d13a5ad2f1fc4f - Sigstore transparency entry: 592340614
- Sigstore integration time:
-
Permalink:
dfunani/py_boiler@fd6636013bb9d6ed6e3508c6cf3a716a5cb4a336 -
Branch / Tag:
refs/tags/v2.0.3 - Owner: https://github.com/dfunani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fd6636013bb9d6ed6e3508c6cf3a716a5cb4a336 -
Trigger Event:
release
-
Statement type:
File details
Details for the file py_boiler_tools-2.0.3-py3-none-any.whl.
File metadata
- Download URL: py_boiler_tools-2.0.3-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ffb2d92b42048c1118f2bc15ef691f235d544bb74549810c13192b080688a10
|
|
| MD5 |
23a8bbc141cb1658ebdc358705dfbdef
|
|
| BLAKE2b-256 |
c5853640336126b8054fd41bc98bad33b2320172a83bb8e75f407c1f6fa23360
|
Provenance
The following attestation bundles were made for py_boiler_tools-2.0.3-py3-none-any.whl:
Publisher:
python-publish.yml on dfunani/py_boiler
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
py_boiler_tools-2.0.3-py3-none-any.whl -
Subject digest:
7ffb2d92b42048c1118f2bc15ef691f235d544bb74549810c13192b080688a10 - Sigstore transparency entry: 592340617
- Sigstore integration time:
-
Permalink:
dfunani/py_boiler@fd6636013bb9d6ed6e3508c6cf3a716a5cb4a336 -
Branch / Tag:
refs/tags/v2.0.3 - Owner: https://github.com/dfunani
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fd6636013bb9d6ed6e3508c6cf3a716a5cb4a336 -
Trigger Event:
release
-
Statement type: