You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is a CookieCutter template used to generate new python projects. It is extremely dynamic, with many optional settings. Make sure to review the README.md to get more context, as well as the AGENTS.md file int he project template itself (`{{cookiecutter.__package_slug}}/AGENTS.md`).
4
+
5
+
Since this is a Cookiecutter template you should expect to encounter Jinja2 template blocks in various files.
6
+
7
+
When being asked to test functionality that requires you to create a new project from the template create them in the `workspaces` directory.
8
+
9
+
When creating new files for optional services make sure you include them in the post_gen_project.py configuration so that unneeded files are removed. For example, if the caching functionality is not enabled the system should remove all of the caching related files.
Copy file name to clipboardExpand all lines: README.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -86,6 +86,17 @@ Pick and choose the features you need. Unused components are completely removed
86
86
- Type-safe configuration using Pydantic for automatic validation of input data, with configurable queue sizes, worker counts, and graceful shutdown handling
87
87
- Perfect for CPU-intensive workloads like data processing, image manipulation, scientific computing, and batch operations that need to scale beyond single-threaded execution
- High-performance async caching library with support for multiple backends including Redis, Memcached, and in-memory storage, providing millisecond-level response times for frequently accessed data
94
+
- Automatic cache configuration and connection management with separate cache instances for different TTL requirements: default (5 minutes), persistent (1 hour), and custom durations for specific use cases
95
+
- Decorator-based caching with `@cached` for effortless function result memoization, automatically serializing complex Python objects including Pydantic models, dataclasses, and custom types
96
+
- Built-in cache warming on application startup for Celery workers and web servers, pre-populating critical data to eliminate cold-start latency and ensure consistent performance from the first request
97
+
- Type-safe settings configuration for cache behavior including host, port, TTL values, and enable/disable flags, with automatic validation and clear error messages for misconfigurations
98
+
- Production-ready Redis integration with connection pooling, automatic reconnection handling, and graceful degradation when cache is unavailable, preventing cascading failures
@@ -156,6 +167,7 @@ Every generated project includes documentation tailored to your selected feature
156
167
-**Developer Guide Hub**: Organized documentation index in `docs/dev/` with dedicated guides for each enabled feature
157
168
-**FastAPI Documentation**: Integration guide covering static file serving, Docker configuration, and FastAPI dependency system usage
158
169
-**Database Documentation**: SQLAlchemy and Alembic guide covering model organization, migration creation using Make commands, FastAPI integration, and automatic schema diagram generation with Paracelsus
170
+
-**Caching Documentation**: aiocache integration guide covering cache configuration, decorator usage, multiple TTL strategies, and cache warming for optimal performance
159
171
-**Task Processing Guides**: Documentation for Celery (worker and beat configuration, Docker setup) and QuasiQueue (configuration file location, Docker images)
160
172
-**CLI Documentation**: Guide showing how to use the generated CLI and where to add new commands
161
173
-**Docker Documentation**: Container setup documentation covering image sources, development environment, and registry publishing
@@ -167,7 +179,8 @@ Every generated project includes documentation tailored to your selected feature
167
179
The template intelligently configures itself based on your choices through sophisticated post-generation hooks:
168
180
169
181
-**Surgical Dependency Management**: Only includes packages you actually need in `pyproject.toml`, with proper optional dependency groups for dev tools, testing, and feature-specific requirements, avoiding bloated dependency trees
170
-
-**Conditional Docker Services**: Automatically generates docker-compose.yaml with only the services your project requires: PostgreSQL for SQLAlchemy, Redis for Celery/caching, with properly configured health checks, volumes, and networking
182
+
-**Conditional Docker Services**: Automatically generates docker-compose.yaml with only the services your project requires: PostgreSQL for SQLAlchemy, Redis for Celery/aiocache caching, with properly configured health checks, volumes, and networking
183
+
-**Cache-Aware Configuration**: When aiocache is enabled, automatically configures Redis connection settings, multiple cache instances with different TTL strategies, and cache warming hooks for FastAPI and Celery startup events
171
184
-**Database-Aware Configuration**: Sets up appropriate connection strings, pool sizes, and dialect-specific settings for PostgreSQL or SQLite, with Alembic migrations configured for cross-database compatibility
172
185
-**Feature-Driven CI/CD Workflows**: GitHub Actions workflows are conditionally installed based on your feature selection: container building and publishing only when Docker is enabled, PyPI publishing workflow only when configured, eliminating unused automation files from your repository
173
186
-**Framework Integration**: Automatically wires together selected components (FastAPI with SQLAlchemy database dependencies, Celery with Redis broker, CLI with async command support) providing working examples of how pieces fit together
Comprehensive developer documentation is available in [`docs/dev/`](./docs/dev/) covering testing, configuration, deployment, and all project features.
29
+
30
+
### Quick Start for Developers
31
+
32
+
```bash
33
+
# Install development environment
34
+
make install
35
+
{%- if cookiecutter.include_docker == "y" %}
36
+
37
+
# Start services with Docker
38
+
docker compose up -d
39
+
{%- endif %}
40
+
41
+
# Run tests
42
+
make tests
43
+
44
+
# Auto-fix formatting
45
+
make chores
46
+
```
47
+
48
+
See the [developer documentation](./docs/dev/README.md) forcomplete guides and reference.
0 commit comments