English | ζ₯ζ¬θͺ
β¨ A modern Python project template using UV package manager for blazing fast dependency management
- π Python 3.12+ focused with type hints
- π§ͺ Pre-configured pytest with coverage
- π Static type checking with pyright
- π§Ή Code formatting with ruff
- π CI/CD with GitHub Actions (separate workflows for pre-commit, tests, and type checking)
- π³ Docker and Docker Compose support for development environment
- π¦ UV package management for fast dependency resolution
- π Pre-commit hooks for code quality
- ποΈ Project structure following best practices
# Clone your new repository
git clone https://github.com/yourusername/your-new-repo.git
cd your-new-repo
# Run the interactive setup (Linux/macOS)
./setup.sh your-project-name
# Run the interactive setup (Windows)
.\Setup.ps1 your-project-name
# The setup script will:
# - Rename your project
# - Ask for your preferred language (English/Japanese)
# - Ask for your preferred build tool (Make/Just)
# - Clean up unnecessary files
# - Create a simple README template
# After setup, create virtual environment
make venv # if you chose Make
# or
just venv # if you chose Just
You can use either make
or just
commands:
# Run all checks (format, test, type check)
make run
# Format code
make format
# Run tests
make test
# Run type check
make type
# Clean up temporary files
make clean
# Show available commands
just
# Run all checks (format, test, type check)
just run
# Format code
just format
# Run tests
just test
# Run type check
just type
# Clean up temporary files
just clean
# Build docker image
make docker-build
# Start development container
make docker-up
# Attach to development container
make docker-attach
# Stop containers
make docker-down
# Stop containers and remove volumes
make docker-down-volume
# Restart containers
make docker-restart
# Build docker image
just docker-build
# Start development container
just docker-up
# Attach to development container
just docker-attach
# Stop containers
just docker-down
# Stop containers and remove volumes
just docker-down-volume
# Restart containers
just docker-restart
.
βββ .github/ # GitHub workflows and templates
β βββ workflows/
β βββ pre-commit.yml # Format & lint workflow
β βββ test.yml # Test workflow
β βββ type-check.yaml # Type checking workflow
βββ .vscode/ # VSCode configuration
β βββ extensions.json
βββ src/
β βββ python_uv_template/ # Source code (will be renamed)
βββ tests/ # Test files
βββ .pre-commit-config.yaml
βββ docker-compose.yml # Docker Compose configuration
βββ Dockerfile # Docker image configuration
βββ Makefile # Development commands
βββ pyproject.toml # Project configuration
βββ LICENSE
βββ README.md
This project includes Docker configuration for consistent development environment.
- Install Docker and Docker Compose
- Build and start the development container:
make docker-build make docker-up make docker-attach
- The container includes all necessary tools and dependencies with proper shell completion
- Python 3.12+
- UV - Modern Python package manager
- Development tools installed automatically via
make venv
orjust venv
- Optional: just - Command runner (alternative to make)
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
The project includes three separate workflows:
- pre-commit.yml: Runs pre-commit hooks on all files
- test.yml: Runs tests on multiple OS and Python versions (3.12, 3.13)
- type-check.yaml: Runs pyright type checking
- Configured for Python 3.12+
- Uses UV for dependency management
- Includes development dependencies for testing, linting, and type checking
- Coverage configuration excludes test files
- UV for the blazing fast package management
- ruff for the powerful Python linter and formatter
- pyright for static type checking
- pre-commit for git hooks management