Skip to content

Latest commit

 

History

History
108 lines (79 loc) · 5.54 KB

README.md

File metadata and controls

108 lines (79 loc) · 5.54 KB

Python Development with uv and Ruff

uv Ruff ty

Versions codecov

Docker Format Lint

A production-ready Python development environment template using modern tools: uv for blazing-fast package management, Ruff for lightning-fast linting and formatting, ty for fast and reliable type checking, and VSCode Dev Containers for reproducible development environments.


📋 Table of Contents


✨ Features

  • 🚀 Ultra-fast package management with uv (10-100x faster than pip)
  • ⚡ Lightning-fast linting & formatting with Ruff (replacing Black, isort, Flake8, and more)
  • 🐳 Dev Container ready - Consistent development environment across all machines
  • 🔍 Type checking with ty
  • ✅ Pre-configured testing with pytest (75% coverage requirement)
  • 🔄 Automated CI/CD with GitHub Actions
  • 📦 Reusable utilities - Logger, configuration management, and performance tracing tools
  • 🎯 Task automation with nox
  • 🪝 Pre-commit hooks for automatic code quality checks

🚀 Quick Start

  1. Install Docker and VSCode with the Dev Containers extension.
  2. Clone the repository and open it in VSCode, then click Reopen in Container when prompted:
    git clone https://github.com/a5chin/python-uv.git
    cd python-uv
    code .
  3. Check that everything works:
    uv run nox -s test

For Docker-only or local setup (without Docker), see Getting Started.

📖 Documentation

The full documentation is published at https://a5chin.github.io/python-uv. Its source lives in docs/, which is the single source of truth for every topic below.

Topic Document
Setup (Dev Container, Docker, local) Getting Started
Development commands (fmt / lint / test) Task Automation with nox
uv, Ruff, ty, pre-commit, pytest Guides
Configuration files Configuration Reference
Built-in utilities (Logger, Settings, Timer) Tools Package
Coding rules and writing tests Code Standards
Branches, releases, and deployment Branch Strategy & Release Flow
GitHub Actions workflows CI/CD Workflows
Project templates cookiecutter
Examples (Jupyter, FastAPI, OpenCV) Use Cases

To contribute, see CONTRIBUTING.md.

🗄️ Archived Branches

These branches are no longer maintained; use main for new projects.

  • jupyter - Jupyter-specific configuration
  • rye - Rye package manager version (replaced by uv)

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

This template is built on top of excellent open-source tools:

  • uv by Astral - Ultra-fast Python package manager
  • Ruff by Astral - Lightning-fast linter and formatter
  • ty by Astral - Static type checker for Python
  • nox - Flexible task automation for Python
  • pytest - Testing framework for Python
  • MkDocs - Documentation site generator

Special thanks to the open-source community for making these tools available!