Skip to main content

A fast and flexible scaffolding tool for Python applications.

Project description

Py_Boil 🔥

Tests Code Quality Security Coverage

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


🚀 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.lock file

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:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. 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

py_boiler_tools-2.0.3.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

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

py_boiler_tools-2.0.3-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

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

Hashes for py_boiler_tools-2.0.3.tar.gz
Algorithm Hash digest
SHA256 daece53bee73f70c92b587f28a375fa295ab6ef6b56ed7b9a1d13a5ad2f1fc4f
MD5 5cb951e8c7d4d69c557d5373121180cd
BLAKE2b-256 e94d63285875f0917cd22fbb50c07d590baba3ee06f607e49a880acc99bf6e97

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_boiler_tools-2.0.3.tar.gz:

Publisher: python-publish.yml on dfunani/py_boiler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_boiler_tools-2.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for py_boiler_tools-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7ffb2d92b42048c1118f2bc15ef691f235d544bb74549810c13192b080688a10
MD5 23a8bbc141cb1658ebdc358705dfbdef
BLAKE2b-256 c5853640336126b8054fd41bc98bad33b2320172a83bb8e75f407c1f6fa23360

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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