A comprehensive learning template for Python applications with modern tools and best practices.
If you know uv ,git, and cursor/VSCODE, and have python 3.11+ installed, just run the 4 commands below:
uv sync
uv venv
pre-commit install
# to run prehooks locally
poe pre- Python 3.11+ installed on your system
- Git installed on your system
- Basic command-line knowledge
UV is a blazing-fast Python package manager written in Rust.
Verify installation with:
uv --versionYou can either start from our template or clone the repository directly:
- Go to the Python Starting Project
- Click the green "Use this template" button
- Choose "Create a new repository"
- Fill in your repository details
- Clone your new repository:
git clone https://github.com/your-username/your-repo-name.git cd your-repo-name
git clone https://github.com/dhkts1/Python-Starting-Project
cd Python-Starting-Projectuv syncStep 6: Set Up Pre-commit Hooks (all the format, linting, testing, etc tools that will run automatically when you commit)
# Install pre-commit hooks
pre-commit install# Run all pre-commit checks
poe pre# Run the main script
python -m src.mainYou're all set! Start developing with confidence.
⚠️ WARNING: This template configures most tools at their maximum strictness level. It is designed for new projects where you want to follow strict standards from the beginning.
This project serves as both a starting template and a learning tool for Python development best practices:
- Modern Python Tools: Learn to use cutting-edge tools like Ruff, Pyright, and UV
- Code Quality: Experience best practices for linting, testing, and documentation
- Project Structure: Learn how to organize a Python project properly
- CI/CD Integration: See how automated workflows improve code quality
For detailed information and guides, check out the project documentation:
- Getting Started: Detailed setup and usage instructions
- Tutorial: Setup Your First Project: Step-by-step tutorial
- Why: The story behind this project
- Architecture: Configuration, logging, and project structure
- Development: Workflow, pre-commit hooks, and best practices
- API Reference: Detailed code documentation
This project is actively maintained and monitored for code quality through various metrics:
These badges are updated automatically by our CI/CD pipeline and reflect the current status of the project.