Skip to main content

Modern Python project bootstrapper with 2025's best toolchain

Project description

โšก quickforge

PyPI Python License

Modern Python project bootstrapper with 2025's best toolchain.

๐Ÿš€ Zero Config โ€ข โšก Blazing Fast โ€ข ๐Ÿ”ง Modern Tools โ€ข ๐ŸŽฏ Production Ready

Installation โ€ข Quick Start โ€ข Project Types โ€ข Commands


โœจ What quickforge Does

One command creates a complete, production-ready Python project with modern tooling:

quickforge new myproject

That's it! Your project is ready with all the best practices built in.

โšก Modern Toolchain

  • uv - Blazing fast package manager (10-100x faster than pip)
  • ruff - Linting & formatting (replaces black, isort, flake8)
  • basedpyright - Strict type checking
  • pytest - Testing with coverage
  • pre-commit - Automated code quality

๐Ÿ“ฆ Everything Configured

  • โœ… Proper package structure (src layout)
  • โœ… pyproject.toml with all tools configured
  • โœ… Pre-commit hooks ready to go
  • โœ… GitHub Actions CI/CD
  • โœ… VS Code settings optimized
  • โœ… Type checking enabled from day one
  • โœ… Test skeleton with pytest + coverage

๐Ÿ”„ Migration Tools

  • Upgrade legacy projects to modern tooling
  • Migrate from Poetry, pip, pipenv, or setuptools
  • Convert black/isort/flake8/mypy to ruff/basedpyright

๐Ÿ“ฆ Installation

# Using uv (recommended)
uv tool install quickforge
# Using pip
pip install quickforge
# Using pipx
pipx install quickforge

๐Ÿš€ Quick Start

Interactive Mode (Default)

quickforge new myproject

Prompts you for project type, Python version, license, author info, and features.

Non-Interactive Mode

# Quick library with defaults
quickforge new mylib --type library --yes

# CLI with strict type checking
quickforge new mycli --type cli --strict

# FastAPI project
quickforge new myapi --type api --yes

# Specify everything
quickforge new myproject \
    --type library \
    --python 3.12 \
    --license MIT \
    --author "Jane Doe" \
    --email "jane@example.com"

After Creating a Project

cd myproject
uv sync                    # Install dependencies
uv run pytest              # Run tests
uv run ruff check .        # Lint code
uv run ruff format .       # Format code
uv run basedpyright        # Type check
uv run pre-commit install  # Setup git hooks

๐Ÿ“ Project Types

Type Description Use Case
library PyPI-publishable package Reusable code, open source packages
cli Command-line tool with Typer Terminal applications, dev tools
api FastAPI web service REST APIs, microservices
app Standalone application Scripts that need structure
script Single-file with inline deps Quick automation, one-off tasks

๐Ÿ“‚ Generated Structure

myproject/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ myproject/
โ”‚       โ”œโ”€โ”€ __init__.py
โ”‚       โ”œโ”€โ”€ py.typed           # PEP 561 marker
โ”‚       โ””โ”€โ”€ main.py            # or cli.py for CLI projects
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ test_main.py
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ””โ”€โ”€ ci.yml             # GitHub Actions
โ”œโ”€โ”€ .vscode/
โ”‚   โ”œโ”€โ”€ settings.json
โ”‚   โ””โ”€โ”€ extensions.json
โ”œโ”€โ”€ pyproject.toml             # All configuration
โ”œโ”€โ”€ .pre-commit-config.yaml
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ LICENSE

๐Ÿ› ๏ธ Commands

quickforge new

Create a new project:

quickforge new myproject [OPTIONS]
Option Short Description
--type -t Project type: library, app, cli, api, script
--python -p Python version: 3.11, 3.12, 3.13
--license -l License: MIT, Apache-2.0, GPL-3.0-only, BSD-3-Clause
--author -a Author name
--email -e Author email
--output -o Output directory
--strict Enable strict type checking
--yes -y Skip prompts, use defaults
--no-git Skip git initialization
--no-github-actions Skip GitHub Actions
--no-pre-commit Skip pre-commit config
--no-vscode Skip VS Code settings
--with-docker Include Docker configuration
--with-docs Include MkDocs documentation

quickforge audit

Analyze existing projects for modernization opportunities:

quickforge audit ./my-project

Shows detected tooling, project health score, and recommendations.

quickforge upgrade

Migrate from legacy tooling to modern stack:

quickforge upgrade .              # Auto-detect and upgrade
quickforge upgrade . --from poetry  # Specify source tool
quickforge upgrade . --dry-run      # Preview changes
Migration From To
Package Manager Poetry, pip, pipenv, setuptools uv
Formatter black ruff format
Import Sorting isort ruff (I rules)
Linter flake8 ruff lint
Type Checker mypy basedpyright

quickforge add

Add features to existing projects:

quickforge add github-actions   # CI/CD workflow
quickforge add docker           # Dockerfile + docker-compose.yml
quickforge add docs             # MkDocs with Material theme
quickforge add pre-commit       # Pre-commit hooks
quickforge add vscode           # VS Code settings
quickforge add devcontainer     # Dev container config

โšก Why These Tools?

uv over pip/poetry/pipenv

Metric pip poetry uv
Install Speed 1x 2x 10-100x
Written In Python Python Rust
Lockfile โŒ โœ… โœ…
Workspaces โŒ โŒ โœ…

ruff over black/isort/flake8

Metric black + isort + flake8 ruff
Speed 1x 10-100x
Config Files 3 1
Rules ~500 800+
Auto-fix Limited Extensive

basedpyright over mypy

Metric mypy basedpyright
Speed 1x 3-5x
Error Messages Basic Detailed
VSCode Integration Good Excellent
Strictness Configurable Stricter defaults

๐Ÿงช Development

# Clone and setup
git clone https://github.com/Technical-1/quickforge.git
cd quickforge
uv sync --extra dev
uv run pre-commit install

# Run tests
uv run pytest

# Run linters
uv run ruff check .
uv run ruff format .
uv run basedpyright

๐Ÿ’ก Philosophy

  1. Convention over configuration - Sensible defaults for 90% of projects
  2. Modern by default - 2025's best tools, not legacy compatibility
  3. Type-safe - Full type annotations from day one
  4. Fast - Rust-based tools for instant feedback
  5. Single source of truth - All config in pyproject.toml

๐Ÿ“„ License

MIT License - see LICENSE for details.


Made by Jacob Kanfer

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

quickforge-0.1.0.tar.gz (123.2 kB view details)

Uploaded Source

Built Distribution

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

quickforge-0.1.0-py3-none-any.whl (68.6 kB view details)

Uploaded Python 3

File details

Details for the file quickforge-0.1.0.tar.gz.

File metadata

  • Download URL: quickforge-0.1.0.tar.gz
  • Upload date:
  • Size: 123.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for quickforge-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c7d4dc478247264a7290834ddb246d2fb79f2905cd24db02bb6b462cd8c1b010
MD5 662c040f98b56e6f492ce8025bcf7d9a
BLAKE2b-256 1ccdeeddb64e4e0d4c278588cdfe4e827e1483a65a05f5ddf44c191c5d2763d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for quickforge-0.1.0.tar.gz:

Publisher: publish.yml on Technical-1/pythonforge

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

File details

Details for the file quickforge-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: quickforge-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 68.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for quickforge-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 419f0888c4e67b891a4d303a9a87d3b5d187c3ec7a0ae3395876da01bf62aa11
MD5 95a9cc2963d4f94f23552e18315d3d75
BLAKE2b-256 a9a5e73f307e8a0f998b8f8345a86bb260f21aa307a5a6850141e8ac2bac7166

See more details on using hashes here.

Provenance

The following attestation bundles were made for quickforge-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Technical-1/pythonforge

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