fastapi-spawn 0.4.26__tar.gz → 0.4.29__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.
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/PKG-INFO +1 -1
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/cli.py +35 -1
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/interactive.py +4 -4
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/pyproject.toml +1 -1
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/.gitignore +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/LICENSE +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/README.md +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/__init__.py +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/config.py +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/constants.py +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/generator.py +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/alembic/alembic.ini.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/alembic/env.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/__init__.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/admin/setup.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/deps.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/graphql.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/auth/sso.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/health/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/pagination/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/payments/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/permissions/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/streaming/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/uploads/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/ai.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/cache.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/config.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/email.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/exceptions.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/logger.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/logging.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/monitoring.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/notifications.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/ocr.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/permissions.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/search.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/security.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/storage.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/vector_db.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/ws_manager.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/db/session.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/frontend/index.html.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/main.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/middleware/__init__.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/middleware/rate_limit.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/middleware/request_logger.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/middleware/response_format.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/Makefile.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/README.md.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/env.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/env_example.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/gitignore.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/pre_commit.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/pyproject.toml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/ci/github/publish.yml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/ci/github/tests.yml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/db/seed.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/docker/Dockerfile.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/docker/docker-compose.yml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/docker/dockerignore.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/docker/docker-compose.prod.yml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/helm/values.yaml.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/terraform/main.tf.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/terraform/variables.tf.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/root/main.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tasks/arq_worker.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tasks/celery_app.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tasks/sample_tasks.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tests/conftest.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tests/test_health.py.j2 +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/utils.py +0 -0
- {fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/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
|
+
Version: 0.4.29
|
|
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
|
|
@@ -241,8 +241,9 @@ def start(
|
|
|
241
241
|
if preset == "custom":
|
|
242
242
|
from fastapi_spawn.interactive import run_interactive_flow
|
|
243
243
|
opts = run_interactive_flow(project_name or "")
|
|
244
|
+
project_name = opts["project_name"]
|
|
244
245
|
config = ProjectConfig(
|
|
245
|
-
project_name=
|
|
246
|
+
project_name=project_name,
|
|
246
247
|
db=opts["db"],
|
|
247
248
|
orm=opts["orm"],
|
|
248
249
|
migration=opts.get("migration", MigrationTool.none),
|
|
@@ -264,6 +265,39 @@ def start(
|
|
|
264
265
|
include_tests=opts["include_tests"],
|
|
265
266
|
force=force,
|
|
266
267
|
)
|
|
268
|
+
|
|
269
|
+
_print_summary(config)
|
|
270
|
+
|
|
271
|
+
import questionary
|
|
272
|
+
from fastapi_spawn.interactive import SPAWN_STYLE
|
|
273
|
+
|
|
274
|
+
use_current = questionary.confirm(
|
|
275
|
+
"Do you want to generate files directly in the current directory?", default=False, style=SPAWN_STYLE
|
|
276
|
+
).unsafe_ask()
|
|
277
|
+
|
|
278
|
+
if use_current:
|
|
279
|
+
output_dir = Path(".")
|
|
280
|
+
import os
|
|
281
|
+
if os.listdir("."):
|
|
282
|
+
confirm = questionary.confirm(
|
|
283
|
+
"Current directory is not empty. This may overwrite files! Proceed?", default=False, style=SPAWN_STYLE
|
|
284
|
+
).unsafe_ask()
|
|
285
|
+
if not confirm:
|
|
286
|
+
rprint("[yellow]Aborted.[/yellow]")
|
|
287
|
+
raise typer.Exit()
|
|
288
|
+
else:
|
|
289
|
+
output_dir = output / config.project_name
|
|
290
|
+
|
|
291
|
+
try:
|
|
292
|
+
generator = ProjectGenerator(config, output_dir)
|
|
293
|
+
project_path = generator.generate()
|
|
294
|
+
rprint(f"\n[bold green]✓ Project created:[/bold green] {project_path.resolve()}")
|
|
295
|
+
_print_next_steps(config)
|
|
296
|
+
except Exception as exc:
|
|
297
|
+
rprint(f"\n[bold red]✗ Generation failed:[/bold red] {exc}")
|
|
298
|
+
raise typer.Exit(1) from exc
|
|
299
|
+
|
|
300
|
+
return
|
|
267
301
|
else:
|
|
268
302
|
if not project_name:
|
|
269
303
|
import questionary
|
|
@@ -162,7 +162,7 @@ def prompt_storage() -> Storage:
|
|
|
162
162
|
return Storage.none
|
|
163
163
|
choices = [
|
|
164
164
|
questionary.Choice(title=f"{i}) {s.value}", value=s)
|
|
165
|
-
for i, s in enumerate(Storage, 1)
|
|
165
|
+
for i, s in enumerate(Storage, 1)
|
|
166
166
|
]
|
|
167
167
|
return questionary.select(
|
|
168
168
|
"Storage provider:",
|
|
@@ -179,7 +179,7 @@ def prompt_ai() -> AIProvider:
|
|
|
179
179
|
return AIProvider.none
|
|
180
180
|
choices = [
|
|
181
181
|
questionary.Choice(title=f"{i}) {a.value}", value=a)
|
|
182
|
-
for i, a in enumerate(AIProvider, 1)
|
|
182
|
+
for i, a in enumerate(AIProvider, 1)
|
|
183
183
|
]
|
|
184
184
|
return questionary.select(
|
|
185
185
|
"AI provider:",
|
|
@@ -196,7 +196,7 @@ def prompt_vector_db() -> VectorDB:
|
|
|
196
196
|
return VectorDB.none
|
|
197
197
|
choices = [
|
|
198
198
|
questionary.Choice(title=f"{i}) {v.value}", value=v)
|
|
199
|
-
for i, v in enumerate(VectorDB, 1)
|
|
199
|
+
for i, v in enumerate(VectorDB, 1)
|
|
200
200
|
]
|
|
201
201
|
return questionary.select(
|
|
202
202
|
"Vector database:",
|
|
@@ -213,7 +213,7 @@ def prompt_monitoring() -> MonitoringProvider:
|
|
|
213
213
|
return MonitoringProvider.none
|
|
214
214
|
choices = [
|
|
215
215
|
questionary.Choice(title=f"{i}) {m.value}", value=m)
|
|
216
|
-
for i, m in enumerate(MonitoringProvider, 1)
|
|
216
|
+
for i, m in enumerate(MonitoringProvider, 1)
|
|
217
217
|
]
|
|
218
218
|
return questionary.select(
|
|
219
219
|
"Monitoring provider:",
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "fastapi-spawn"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.29"
|
|
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" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/alembic/alembic.ini.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/auth/router.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/auth/sso.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/health/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/api/v1/ws/router.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/exceptions.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/logging.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/monitoring.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/notifications.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/permissions.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/security.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/storage.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/vector_db.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/core/ws_manager.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/frontend/index.html.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/app/middleware/__init__.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/base/pyproject.toml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/ci/github/publish.yml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/ci/github/tests.yml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/ci/gitlab/gitlab-ci.yml.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/docker/docker-compose.yml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/docker/dockerignore.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/helm/Chart.yaml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/helm/values.yaml.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/infra/terraform/main.tf.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tasks/arq_worker.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tasks/celery_app.py.j2
RENAMED
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tasks/sample_tasks.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
{fastapi_spawn-0.4.26 → fastapi_spawn-0.4.29}/fastapi_spawn/templates/tests/test_health.py.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|