Skip to content

Commit f572f15

Browse files
committed
Rewrite readme
1 parent cde6efa commit f572f15

File tree

1 file changed

+186
-70
lines changed

1 file changed

+186
-70
lines changed

README.md

Lines changed: 186 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,227 @@
1-
# Rob's Awesome Python Template
1+
# 🚀 Rob's Awesome Python Template
22

3-
Rob's Awesome Python Template is extremely customizable- it can work for the smallest library to the largest application.
3+
**The most comprehensive Python project template that scales from simple libraries to enterprise applications**
44

5-
- [Rob's Awesome Python Template](#robs-awesome-python-template)
6-
- [Usage](#usage)
7-
- [Core Functionality](#core-functionality)
8-
- [Optional Functionality](#optional-libraries)
9-
- [FastAPI](#fastapi)
10-
- [Celery](#celery)
11-
- [QuasiQueue](#quasiqueue)
12-
- [Typer and Click](#typer-and-click)
13-
- [SQLAlchemy and Alembic](#sqlalchemy-and-alembic)
14-
- [Paracelsus](#paracelsus)
15-
- [Docker](#docker)
16-
- [Github Actions](#github-actions)
17-
- [Agentic Instructions](#agentic-instructions)
18-
- [Examples](#examples)
5+
Transform any Python idea into a production-ready project in minutes. This CookieCutter template provides everything you need to build, test, deploy, and maintain modern Python applications with industry best practices baked in.
196

7+
## ✨ Why Choose This Template?
208

21-
## Usage
9+
- **Zero Configuration Hassle**: Get a fully configured development environment instantly
10+
- **Production Ready**: Battle-tested tools and patterns used in real-world applications
11+
- **Incredibly Flexible**: Mix and match features to create exactly what you need
12+
- **Modern Standards**: Uses the latest Python tooling and best practices
13+
- **Enterprise Grade**: Scales from weekend projects to mission-critical applications
2214

23-
1. Install `cookiecutter`.
24-
2. Install `pyenv` if you haven't already.
25-
3. Run the cookiecutter command.
15+
## 🎯 Quick Start
2616

2717
```bash
18+
# Install cookiecutter if you haven't already
19+
pip install cookiecutter
20+
21+
# Create your project
2822
cookiecutter gh:tedivm/robs_awesome_python_template
2923
```
3024

31-
The rest of the process is interactive- you'll be asked for a project name and about which features you want enabled, after which the project will be setup.
25+
Answer a few questions about your project, and you'll have a complete Python application with everything configured and ready to go!
26+
27+
## 🏗️ Core Features (Always Included)
28+
29+
Every project created with this template includes these essential components:
30+
31+
**Development Tools**
32+
33+
- **Makefile automation**: One-command setup, testing, and deployment
34+
- **Modern pyproject.toml**: No legacy setup.py files
35+
- **Virtual environment management**: Automatic venv setup with pyenv integration
36+
- **Pre-commit hooks**: Catch issues before they reach your repository
37+
38+
**Code Quality**
39+
40+
- **Ruff**: Lightning-fast formatting and linting
41+
- **mypy**: Static type checking for safer code
42+
- **pytest**: Comprehensive testing framework with async support
43+
- **Coverage reporting**: Track your test coverage (even with multiprocess applications)
44+
45+
**Configuration & Settings**
46+
47+
- **Pydantic Settings**: Type-safe configuration management
48+
- **Environment-based config**: Easy deployment across different environments
49+
- **Automatic validation**: Catch configuration errors early
50+
51+
**Publishing & Distribution**
52+
53+
- **setuptools-scm**: Automatic versioning from git tags
54+
- **PyPI publishing**: One-command package publishing
55+
- **Multi-architecture support**: Works on AMD64 and ARM64
56+
57+
## 🧩 Optional Integrations
58+
59+
Pick and choose the features you need. Unused components are completely removed from your project.
60+
61+
### 🌐 Web Applications
62+
63+
**FastAPI Integration**
64+
65+
- Complete REST API setup with automatic documentation
66+
- Static file serving
67+
- Async request handling
68+
- OpenAPI/Swagger UI included
69+
- Production-ready ASGI configuration
70+
71+
### 📋 Task Processing
72+
73+
**Celery Integration**
74+
75+
- Distributed task queue setup
76+
- Redis broker configuration
77+
- Worker and scheduler containers
78+
- Monitoring and management tools
79+
80+
**QuasiQueue Integration**
3281

33-
## Core Functionality
82+
- High-performance multiprocessing
83+
- Simple async task processing
84+
- Perfect for CPU-intensive workloads
3485

35-
- Development Management using [Makefiles](https://www.gnu.org/software/make/manual/html_node/Introduction.html).
36-
- Configuration Management with [Pydantic Settings]([https://docs.pydantic.dev/usage/settings/](https://docs.pydantic.dev/latest/concepts/pydantic_settings/)).
37-
- PyPI Publishing from Github Tags using [setuptools-scm](https://pypi.org/project/setuptools-scm/).
38-
- Formatting and Linting with [Ruff](https://docs.astral.sh/ruff/).
39-
- Typing with [mypy](https://mypy.readthedocs.io/en/stable/).
40-
- Lockfiles (requirements.txt) with [uv](https://pypi.org/project/uv/).
41-
- Testing with [pytest](https://docs.pytest.org/en/7.2.x/).
42-
- CI/CD using [Github Actions](https://docs.github.com/en/actions).
43-
- Precommit Hooks using the [precommit framework](https://pre-commit.com/).
44-
- Multiple license options.
45-
- Modern `pyproject.toml` without any legacy files.
86+
### 💾 Database & ORM
4687

47-
## Optional Libraries
88+
**SQLAlchemy + Alembic**
4889

49-
This template can also configure and setup a variety of optional services. Each optional service adds its own dependencies, configuration, handlers, and everything else needed to jump right into development.
90+
- Async database operations
91+
- Automatic model discovery
92+
- Database migration management
93+
- Support for PostgreSQL, SQLite, and more
94+
- Connection pooling and optimization
5095

51-
Features that are not selected get completely cleaned up and will not pollute the newly created project.
96+
**Paracelsus Integration**
5297

53-
### FastAPI
98+
- Automatic database schema diagrams
99+
- Documentation generation
100+
- Visual database relationships
54101

55-
[FastAPI](https://fastapi.tiangolo.com/) is one of the easiest ways to develop REST Based APIs. When enabled a "Hello World" application will be setup.
102+
### 🖥️ Command Line Interface
56103

57-
### Celery
104+
**Typer + Click**
58105

59-
[Celery](https://docs.celeryq.dev/en/stable/getting-started/introduction.html) is the standard for Queue Management systems with Python.
106+
- Beautiful CLI applications
107+
- Automatic help generation
108+
- Type-safe command definitions
109+
- Async command support
110+
- Auto-completion support
60111

61-
### QuasiQueue
112+
### 🎨 Templating
62113

63-
[QuasiQueue](https://github.com/tedivm/quasiqueue) is a high performance multiprocessing library that is also very simple to use.
114+
**Jinja2 Templates**
64115

65-
### Typer and Click
116+
- Server-side rendering
117+
- Template inheritance
118+
- Custom filters and functions
66119

67-
[Typer](https://typer.tiangolo.com/typer-cli/), which is built on top of the [Click Framework](https://click.palletsprojects.com), is one of the easiest ways to build command line applications. When enabled this template will create an initial CLI handler and register it with python for easy installation.
120+
### 🐳 Containerization
68121

69-
### SQLAlchemy and Alembic
122+
**Docker Setup**
70123

71-
[SQLAlchemy](https://www.sqlalchemy.org/) is one of the most used SQL ORM frameworks in python. It is regularly paired with [Alembic](https://alembic.sqlalchemy.org/en/latest/) to handle database migrations.
124+
- Multi-service Docker Compose configuration
125+
- Optimized multi-stage builds
126+
- Development and production configurations
127+
- Health checks and resource limits
128+
- Multi-architecture image support
72129

73-
This template configures SQLAlchemy and Alembic to work together using a unified configuration. Alembic will automatically discover all models in the `models` directory.
130+
### ⚙️ CI/CD Pipeline
74131

75-
Projects with this template will have access to the Async SQLAlchemy engine.
132+
**Comprehensive GitHub Actions**
76133

77-
### Paracelsus
134+
- Automated testing across Python versions
135+
- Code formatting and linting
136+
- Type checking with mypy
137+
- Security scanning
138+
- Automated PyPI publishing
139+
- Container image building and publishing
140+
- Dependency updates with lockfile management
141+
- Documentation generation and deployment
78142

79-
[Paracelsus](https://github.com/tedivm/paracelsus) is a library that automatically generates diagrams of SQLAlchemy database schemas and injects them into documentation.
143+
### 🤖 AI Development Support
80144

81-
### Docker
145+
**Agentic Instructions**
82146

83-
Docker Images are the standard for distributing and running applications. The Docker extensions to this project create containers for the other services that are enabled, such as FastAPI and Celery.
147+
- Pre-configured AGENTS.md with project-specific guidelines
148+
- Best practices for AI coding assistants
149+
- Context-aware development workflows
84150

85-
The images made by this template come from the [Multi-Py](https://github.com/multi-py/) project and support both AMD and ARM architectures.
151+
## 📚 Comprehensive Documentation
86152

87-
### Github Actions
153+
Every generated project includes extensive documentation:
88154

89-
Github Action Workflows are optionally created for a variety of tasks-
155+
- **API Documentation**: Auto-generated from code
156+
- **Development Guides**: Database, caching, CLI, Docker setups
157+
- **Deployment Instructions**: Production deployment strategies
90158

91-
- Formatting Python, JSON, YAML, and TOML
92-
- Testing
93-
- Typing
94-
- Publishing Packages to PyPI
95-
- Pushing Images to GHCR
96-
- Updating Dependency (requirements.txt) Files
97-
- Updating Documentation
159+
## 🎛️ Smart Configuration
98160

99-
### Agentic Instructions
161+
The template intelligently configures itself based on your choices:
100162

101-
A predefined AGENTS.md file enables project specific instructions and best practices for coding agents such as Github Copilot, Cursor, and Windsurf.
163+
- **Dependency management**: Only includes what you need
164+
- **Docker services**: Automatically sets up required containers
165+
- **Database connections**: Configures based on selected databases
166+
- **CI/CD workflows**: Enables relevant automation pipelines
167+
- **Settings management**: Creates environment-specific configurations
102168

103-
## Examples
169+
## 🎨 Multiple License Options
104170

105-
Project examples are available in the [example repository](https://github.com/tedivm/robs_awesome_python_template_examples).
171+
Choose the license that fits your project:
106172

107-
- [Basic Library](https://github.com/tedivm/robs_awesome_python_template_examples/tree/main/library)- enables basic library features without the full scale applications.
108-
- [All Options Enabled](https://github.com/tedivm/robs_awesome_python_template_examples/tree/main/full)- includes every option and service.
109-
- [All Options Disabled](https://github.com/tedivm/robs_awesome_python_template_examples/tree/main/bare)- disabled every optional service for an extremely basic scaffold.
173+
- **MIT License**: Permissive, business-friendly
174+
- **BSD License**: Simple and permissive
175+
- **Apache Software License 2.0**: Patent protection included
176+
- **GNU General Public License v3**: Copyleft for open source
177+
- **All Rights Reserved**: Proprietary projects
178+
179+
## 📦 Project Examples
180+
181+
See the template in action with complete example projects:
182+
183+
**[📖 Library Example](https://github.com/tedivm/robs_awesome_python_template_examples/tree/main/library)**
184+
185+
- Minimal setup for Python packages
186+
- PyPI publishing ready
187+
- Documentation and testing included
188+
189+
**[🚀 Full Application](https://github.com/tedivm/robs_awesome_python_template_examples/tree/main/full)**
190+
191+
- Every feature enabled
192+
- Complete web application with API, database, and task processing
193+
- Production deployment ready
194+
195+
**[⚡ Minimal Setup](https://github.com/tedivm/robs_awesome_python_template_examples/tree/main/bare)**
196+
197+
- Bare minimum configuration
198+
- Perfect starting point for simple projects
199+
200+
## 🔧 Advanced Features
201+
202+
**Intelligent Cleanup**
203+
204+
- Unused files and configurations are automatically removed
205+
- No bloat or unnecessary dependencies
206+
- Clean, focused project structure
207+
208+
**Development Workflow**
209+
210+
- One-command environment setup
211+
- Automated testing and formatting
212+
- Integrated debugging support
213+
- Hot-reload for web applications
214+
215+
**Production Ready**
216+
217+
- Environment-based configuration
218+
- Health checks and monitoring
219+
- Optimized Docker containers
220+
221+
## 🚀 Get Started Today
222+
223+
```bash
224+
cookiecutter gh:tedivm/robs_awesome_python_template
225+
```
110226

111-
These are just some options, as features can be mixed and matched to create numerous permutations.
227+
Your next Python project is just one command away!

0 commit comments

Comments
 (0)