Spaces:
Sleeping
Sleeping
metadata
title: Python Project Template
emoji: π§
colorFrom: yellow
colorTo: purple
sdk: docker
tags:
- Python
fullwidth: true
license: mit
app_port: 8080
Python Project Template
A modern Python project template with best practices for development, testing, and deployment.
Features
- Modern Python (3.11+) project structure
- Development tools configuration (pytest, black, isort, mypy, ruff)
- Docker support
- GitHub Actions ready
- Comprehensive documentation structure
- Jupyter notebook support
Project Structure
.
βββ docs/ # Documentation files
βββ notebooks/ # Jupyter notebooks
βββ src/ # Source code
β βββ common/ # Common utilities and shared code
β βββ modules/ # Feature modules
β β βββ api/ # API related code
β βββ shared/ # Shared resources
β βββ utils/ # Utility functions
βββ tests/ # Test files
Getting Started
Prerequisites
- Python 3.11 or higher
- uv for dependency management
Installation
- Clone the repository:
git clone https://github.com/yourusername/template-python.git
cd template-python
- Create a virtual environment and install dependencies:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"
- Copy the environment file and adjust as needed:
cp .env.example .env
Development
This project uses several development tools:
- pytest: Testing framework
- black: Code formatting
- isort: Import sorting
- mypy: Static type checking
- ruff: Fast Python linter
Run tests:
pytest
Format code:
black .
isort .
Run type checking:
mypy src tests
Run linting:
ruff check .
Docker
Build the Docker image:
make build
Run the container:
make run
Contributing
- 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
License
This project is licensed under the MIT License - see the LICENSE file for details.