Rob's Awesome Python Template is designed to adapt to any project, whether a simple library or a comprehensive application. It incorporates essential technologies like FastAPI and SQLAlchemy, offering a customizable setup that evolves with your requirements. Effortlessly kickstart development using cookiecutter, and enjoy flexible configurations tailored to your project.
Unlock the full potential of your Python projects with Rob's Awesome Python Template, a highly customizable framework designed to suit applications of any scale—from compact libraries to expansive systems.
Key Features
- Development Management: Utilize Makefiles for seamless project management.
- Configuration Management: Leverage robust settings with Pydantic Settings to handle configurations effortlessly.
- PyPI Publishing: Simplify your package distribution straight from GitHub Tags using setuptools-scm.
- Code Quality Assurance: Maintain your code standards with Formatting and Linting via Ruff and type checking using mypy.
- Testing: Run reliable tests with pytest ensuring your application behaves as expected.
- Continuous Integration/Continuous Deployment (CI/CD): Automate your workflow with GitHub Actions for consistent delivery.
- Precommit Hooks: Employ the precommit framework to enhance code quality before changes are made.
Optional Libraries
Rob's Awesome Python Template is versatile, offering an array of optional services that can be integrated based on your project needs:
- FastAPI: Rapidly develop REST APIs with FastAPI effortlessly.
- Celery: Efficiently manage task queues with the acclaimed Celery framework.
- SQLAlchemy & Alembic: Create robust database interfaces with SQLAlchemy, complemented by Alembic for migrations.
- Docker Support: Build and distribute application containers that encapsulate all necessary components, supporting both AMD and ARM architectures.
Examples
Explore a variety of project examples showcasing the flexibility of the template:
- Basic Library: A minimal setup demonstrating core library functionality.
- Full Options Enabled: Utilizes every feature for a comprehensive application structure.
- Basic Scaffold: Initiates without optional features for a lean setup.
Make Development a Breeze
Whether you need a single library or a full-scale application, this template provides the tools necessary to streamline development and achieve your project's goals efficiently.