fastapi-spawn 0.4.3__tar.gz → 0.4.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/PKG-INFO +53 -9
  2. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/README.md +52 -8
  3. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/__init__.py +1 -1
  4. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/pyproject.toml +1 -1
  5. fastapi_spawn-0.4.3/CHANGELOG.md +0 -36
  6. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/.gitignore +0 -0
  7. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/LICENSE +0 -0
  8. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/cli.py +0 -0
  9. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/config.py +0 -0
  10. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/constants.py +0 -0
  11. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/generator.py +0 -0
  12. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/interactive.py +0 -0
  13. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/alembic/alembic.ini.j2 +0 -0
  14. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/alembic/env.py.j2 +0 -0
  15. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/__init__.py.j2 +0 -0
  16. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/api/deps.py.j2 +0 -0
  17. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/api/graphql.py.j2 +0 -0
  18. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2 +0 -0
  19. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/api/v1/health/router.py.j2 +0 -0
  20. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/api/v1/router.py.j2 +0 -0
  21. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2 +0 -0
  22. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/ai.py.j2 +0 -0
  23. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/config.py.j2 +0 -0
  24. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/email.py.j2 +0 -0
  25. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/exceptions.py.j2 +0 -0
  26. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/logger.py.j2 +0 -0
  27. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/logging.py.j2 +0 -0
  28. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/monitoring.py.j2 +0 -0
  29. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/notifications.py.j2 +0 -0
  30. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/security.py.j2 +0 -0
  31. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/storage.py.j2 +0 -0
  32. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/vector_db.py.j2 +0 -0
  33. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/core/ws_manager.py.j2 +0 -0
  34. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/db/session.py.j2 +0 -0
  35. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/frontend/index.html.j2 +0 -0
  36. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/main.py.j2 +0 -0
  37. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/middleware/__init__.py.j2 +0 -0
  38. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2 +0 -0
  39. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/app/middleware/request_logger.py.j2 +0 -0
  40. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/Makefile.j2 +0 -0
  41. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/README.md.j2 +0 -0
  42. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/env.j2 +0 -0
  43. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/env_example.j2 +0 -0
  44. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/gitignore.j2 +0 -0
  45. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/pre_commit.j2 +0 -0
  46. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/base/pyproject.toml.j2 +0 -0
  47. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/ci/github/publish.yml.j2 +0 -0
  48. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/ci/github/tests.yml.j2 +0 -0
  49. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2 +0 -0
  50. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/docker/Dockerfile.j2 +0 -0
  51. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/docker/docker-compose.yml.j2 +0 -0
  52. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/docker/dockerignore.j2 +0 -0
  53. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/infra/docker/docker-compose.prod.yml.j2 +0 -0
  54. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2 +0 -0
  55. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/infra/helm/values.yaml.j2 +0 -0
  56. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/infra/terraform/main.tf.j2 +0 -0
  57. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/infra/terraform/variables.tf.j2 +0 -0
  58. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/root/main.py.j2 +0 -0
  59. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/tasks/arq_worker.py.j2 +0 -0
  60. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/tasks/celery_app.py.j2 +0 -0
  61. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/tasks/sample_tasks.py.j2 +0 -0
  62. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/tests/conftest.py.j2 +0 -0
  63. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/templates/tests/test_health.py.j2 +0 -0
  64. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/utils.py +0 -0
  65. {fastapi_spawn-0.4.3 → fastapi_spawn-0.4.4}/fastapi_spawn/validators.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastapi-spawn
3
- Version: 0.4.3
3
+ Version: 0.4.4
4
4
  Summary: A powerful CLI tool to scaffold production-ready FastAPI projects with flexible database, auth, broker, and deployment options.
5
5
  Project-URL: Homepage, https://github.com/Bishwajitgarai/fastapi-spawn
6
6
  Project-URL: Documentation, https://github.com/Bishwajitgarai/fastapi-spawn#readme
@@ -440,20 +440,64 @@ GraphiQL IDE is enabled in `dev` mode. Subscriptions use `graphql-transport-ws`.
440
440
 
441
441
  ---
442
442
 
443
- ## Add Features to Existing Projects
443
+ ## 🧩 Add Features to Existing Projects (Incremental Scaffolding)
444
+
445
+ Did you generate a minimal project and now realize you need WebSockets, AWS S3, or OpenAI? **No problem.**
446
+
447
+ `fastapi-spawn add` allows you to incrementally scale your project. Instead of re-generating your entire project or copying boilerplate manually, you can inject production-ready modules into your existing codebase.
448
+
449
+ ```bash
450
+ fastapi-spawn add [FEATURE]
451
+ ```
452
+
453
+ ### How it works:
454
+ 1. **Generates the Module**: It creates the necessary file (e.g., `app/core/ai.py` or `app/api/v1/ws/router.py`) tailored to your project structure.
455
+ 2. **Environment Variables**: It prompts you with the exact environment variables you need to append to your `.env` and `config.py`.
456
+ 3. **Integration Guide**: It outputs a step-by-step UI snippet telling you *exactly* where to import and mount the new feature in your `main.py` or `router.py`.
457
+
458
+ ### All Possibilities you can `add`:
459
+
460
+ You can run any of the following commands inside an existing project:
444
461
 
445
462
  ```bash
446
- fastapi-spawn add sentry # Sentry error tracking
463
+ # Infrastructure & Deployment
464
+ fastapi-spawn add docker # Dockerfile and docker-compose.yml
465
+ fastapi-spawn add helm # Helm chart in infra/helm/
466
+ fastapi-spawn add terraform # Terraform in infra/terraform/
467
+ fastapi-spawn add github-actions # CI/CD pipeline (.github/workflows/tests.yml)
468
+
469
+ # AI & Vector DBs
447
470
  fastapi-spawn add openai # OpenAI async client
448
- fastapi-spawn add alembic # Alembic async migrations
449
- fastapi-spawn add s3 # AWS S3 / MinIO storage
471
+ fastapi-spawn add anthropic # Anthropic Claude async client
472
+ fastapi-spawn add gemini # Google Generative AI client
473
+ fastapi-spawn add qdrant # Qdrant vector DB
474
+ fastapi-spawn add chroma # ChromaDB local vector DB
475
+ fastapi-spawn add pinecone # Pinecone cloud vector DB
476
+
477
+ # Messaging & Async Workers
450
478
  fastapi-spawn add celery # Celery worker + tasks/
479
+ fastapi-spawn add arq # Arq async job queues using Redis
451
480
  fastapi-spawn add websockets # WebSocket connection manager
481
+
482
+ # Storage, APIs & Monitoring
483
+ fastapi-spawn add s3 # AWS S3 / MinIO storage
452
484
  fastapi-spawn add graphql # Strawberry GraphQL schema
453
- fastapi-spawn add qdrant # Qdrant vector DB
454
- fastapi-spawn add chroma # ChromaDB local vector DB
455
- fastapi-spawn add helm # Helm chart in infra/helm/
456
- fastapi-spawn add terraform # Terraform in infra/terraform/
485
+ fastapi-spawn add alembic # Alembic async migrations
486
+ fastapi-spawn add sentry # Sentry APM integration
487
+ fastapi-spawn add prometheus # Prometheus metrics
488
+ ```
489
+
490
+ *Example:*
491
+ ```bash
492
+ $ fastapi-spawn add websockets
493
+
494
+ ✓ Created app/core/ws_manager.py
495
+ ✓ Created app/api/v1/ws/router.py
496
+
497
+ 👉 Next Steps:
498
+ 1. Mount the router in app/api/v1/router.py:
499
+ from app.api.v1.ws.router import router as ws_router
500
+ router.include_router(ws_router)
457
501
  ```
458
502
 
459
503
  ---
@@ -399,20 +399,64 @@ GraphiQL IDE is enabled in `dev` mode. Subscriptions use `graphql-transport-ws`.
399
399
 
400
400
  ---
401
401
 
402
- ## Add Features to Existing Projects
402
+ ## 🧩 Add Features to Existing Projects (Incremental Scaffolding)
403
+
404
+ Did you generate a minimal project and now realize you need WebSockets, AWS S3, or OpenAI? **No problem.**
405
+
406
+ `fastapi-spawn add` allows you to incrementally scale your project. Instead of re-generating your entire project or copying boilerplate manually, you can inject production-ready modules into your existing codebase.
407
+
408
+ ```bash
409
+ fastapi-spawn add [FEATURE]
410
+ ```
411
+
412
+ ### How it works:
413
+ 1. **Generates the Module**: It creates the necessary file (e.g., `app/core/ai.py` or `app/api/v1/ws/router.py`) tailored to your project structure.
414
+ 2. **Environment Variables**: It prompts you with the exact environment variables you need to append to your `.env` and `config.py`.
415
+ 3. **Integration Guide**: It outputs a step-by-step UI snippet telling you *exactly* where to import and mount the new feature in your `main.py` or `router.py`.
416
+
417
+ ### All Possibilities you can `add`:
418
+
419
+ You can run any of the following commands inside an existing project:
403
420
 
404
421
  ```bash
405
- fastapi-spawn add sentry # Sentry error tracking
422
+ # Infrastructure & Deployment
423
+ fastapi-spawn add docker # Dockerfile and docker-compose.yml
424
+ fastapi-spawn add helm # Helm chart in infra/helm/
425
+ fastapi-spawn add terraform # Terraform in infra/terraform/
426
+ fastapi-spawn add github-actions # CI/CD pipeline (.github/workflows/tests.yml)
427
+
428
+ # AI & Vector DBs
406
429
  fastapi-spawn add openai # OpenAI async client
407
- fastapi-spawn add alembic # Alembic async migrations
408
- fastapi-spawn add s3 # AWS S3 / MinIO storage
430
+ fastapi-spawn add anthropic # Anthropic Claude async client
431
+ fastapi-spawn add gemini # Google Generative AI client
432
+ fastapi-spawn add qdrant # Qdrant vector DB
433
+ fastapi-spawn add chroma # ChromaDB local vector DB
434
+ fastapi-spawn add pinecone # Pinecone cloud vector DB
435
+
436
+ # Messaging & Async Workers
409
437
  fastapi-spawn add celery # Celery worker + tasks/
438
+ fastapi-spawn add arq # Arq async job queues using Redis
410
439
  fastapi-spawn add websockets # WebSocket connection manager
440
+
441
+ # Storage, APIs & Monitoring
442
+ fastapi-spawn add s3 # AWS S3 / MinIO storage
411
443
  fastapi-spawn add graphql # Strawberry GraphQL schema
412
- fastapi-spawn add qdrant # Qdrant vector DB
413
- fastapi-spawn add chroma # ChromaDB local vector DB
414
- fastapi-spawn add helm # Helm chart in infra/helm/
415
- fastapi-spawn add terraform # Terraform in infra/terraform/
444
+ fastapi-spawn add alembic # Alembic async migrations
445
+ fastapi-spawn add sentry # Sentry APM integration
446
+ fastapi-spawn add prometheus # Prometheus metrics
447
+ ```
448
+
449
+ *Example:*
450
+ ```bash
451
+ $ fastapi-spawn add websockets
452
+
453
+ ✓ Created app/core/ws_manager.py
454
+ ✓ Created app/api/v1/ws/router.py
455
+
456
+ 👉 Next Steps:
457
+ 1. Mount the router in app/api/v1/router.py:
458
+ from app.api.v1.ws.router import router as ws_router
459
+ router.include_router(ws_router)
416
460
  ```
417
461
 
418
462
  ---
@@ -1,6 +1,6 @@
1
1
  """fastapi-spawn — Production-ready FastAPI project scaffolding CLI."""
2
2
 
3
- __version__ = "0.4.3"
3
+ __version__ = "0.4.4"
4
4
  __author__ = "Bishwajit Garai"
5
5
  __email__ = "bishwajitgarai@gmail.com"
6
6
  __license__ = "MIT"
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "fastapi-spawn"
7
- version = "0.4.3"
7
+ version = "0.4.4"
8
8
  description = "A powerful CLI tool to scaffold production-ready FastAPI projects with flexible database, auth, broker, and deployment options."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1,36 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to `fastapi-spawn` will be documented here.
4
-
5
- Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
- Versioning follows [Semantic Versioning](https://semver.org/).
7
-
8
- ---
9
-
10
- ## [0.1.0] — 2026-05-10
11
-
12
- ### Added
13
- - Interactive TUI with questionary + Rich styling
14
- - Database support: PostgreSQL, MySQL, MongoDB, SQLite
15
- - ORM support: SQLAlchemy 2.x (async), Tortoise ORM, Beanie
16
- - Migration support: Alembic (async-compatible), Aerich
17
- - Auth: JWT, OAuth2, API Key
18
- - Message brokers: Redis (Celery), RabbitMQ (Celery), Kafka (aiokafka)
19
- - Cache layer: Redis, Memcached
20
- - File storage: AWS S3 (boto3) with presigned URLs
21
- - AI integration: OpenAI (chat + embeddings, custom base URL), Anthropic Claude
22
- - Root-level `main.py` entry point (`uv run main.py`)
23
- - Root-level `tasks/` directory for Celery workers
24
- - Individual env fields per service with `@property` URL assembly
25
- - `OPENAI_BASE_URL` support for Azure, LM Studio, local endpoints
26
- - `--dry-run` flag with rich tree preview
27
- - `--force` flag to overwrite existing projects
28
- - Stack options: minimal, standard, full (Helm + Terraform)
29
- - CI/CD: GitHub Actions, GitLab CI
30
- - Logging: loguru, structlog, standard library
31
- - Docker: multi-service compose with health checks
32
- - infra/: docker/, helm/, terraform/ structure
33
- - `uv`-compatible `pyproject.toml` with `[tool.uv]`
34
- - `list-templates` and `validate` subcommands
35
- - `ENVIRONMENT=dev` style env naming
36
- - Professional README, CHANGELOG, CONTRIBUTING
File without changes
File without changes