FastAPI-fastkit 1.2.0__py3-none-any.whl → 1.3.0__py3-none-any.whl

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 (63) hide show
  1. fastapi_fastkit/__init__.py +1 -1
  2. fastapi_fastkit/backend/inspector.py +153 -32
  3. fastapi_fastkit/backend/interactive/__init__.py +2 -0
  4. fastapi_fastkit/backend/interactive/config_builder.py +21 -2
  5. fastapi_fastkit/backend/interactive/prompts.py +52 -1
  6. fastapi_fastkit/backend/interactive/selectors.py +10 -0
  7. fastapi_fastkit/backend/main.py +114 -6
  8. fastapi_fastkit/backend/package_managers/factory.py +1 -1
  9. fastapi_fastkit/backend/package_managers/pdm_manager.py +3 -3
  10. fastapi_fastkit/backend/package_managers/poetry_manager.py +71 -10
  11. fastapi_fastkit/backend/package_managers/uv_manager.py +3 -3
  12. fastapi_fastkit/backend/project_builder/__init__.py +3 -0
  13. fastapi_fastkit/backend/project_builder/config_generator.py +17 -10
  14. fastapi_fastkit/backend/project_builder/preset_layout.py +203 -0
  15. fastapi_fastkit/backend/transducer.py +0 -1
  16. fastapi_fastkit/cli.py +109 -44
  17. fastapi_fastkit/core/settings.py +17 -1
  18. fastapi_fastkit/fastapi_project_template/README.md +72 -23
  19. fastapi_fastkit/fastapi_project_template/fastapi-async-crud/pyproject.toml-tpl +4 -1
  20. fastapi_fastkit/fastapi_project_template/fastapi-custom-response/pyproject.toml-tpl +4 -1
  21. fastapi_fastkit/fastapi_project_template/fastapi-default/pyproject.toml-tpl +4 -1
  22. fastapi_fastkit/fastapi_project_template/fastapi-dockerized/pyproject.toml-tpl +4 -1
  23. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/.env-tpl +2 -0
  24. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/.gitignore-tpl +31 -0
  25. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/README.md-tpl +128 -0
  26. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/pyproject.toml-tpl +70 -0
  27. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/requirements.txt-tpl +11 -0
  28. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/format.sh-tpl +5 -0
  29. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/lint.sh-tpl +6 -0
  30. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/run-server.sh-tpl +8 -0
  31. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/test.sh-tpl +6 -0
  32. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/__init__.py-tpl +0 -0
  33. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/__init__.py-tpl +0 -0
  34. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/__init__.py-tpl +0 -0
  35. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/health.py-tpl +11 -0
  36. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/router.py-tpl +12 -0
  37. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/core/__init__.py-tpl +0 -0
  38. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/core/config.py-tpl +49 -0
  39. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/db/__init__.py-tpl +0 -0
  40. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/db/memory.py-tpl +48 -0
  41. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/__init__.py-tpl +0 -0
  42. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/__init__.py-tpl +9 -0
  43. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/models.py-tpl +17 -0
  44. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/repository.py-tpl +48 -0
  45. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/router.py-tpl +59 -0
  46. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/schemas.py-tpl +23 -0
  47. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/service.py-tpl +52 -0
  48. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/main.py-tpl +25 -0
  49. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/__init__.py-tpl +0 -0
  50. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/conftest.py-tpl +24 -0
  51. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/test_health.py-tpl +11 -0
  52. fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/test_items.py-tpl +77 -0
  53. fastapi_fastkit/fastapi_project_template/fastapi-empty/README.md-tpl +2 -2
  54. fastapi_fastkit/fastapi_project_template/fastapi-empty/pyproject.toml-tpl +4 -1
  55. fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl +4 -1
  56. fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/pyproject.toml-tpl +4 -1
  57. fastapi_fastkit/fastapi_project_template/fastapi-single-module/pyproject.toml-tpl +4 -1
  58. fastapi_fastkit/utils/main.py +73 -6
  59. {fastapi_fastkit-1.2.0.dist-info → fastapi_fastkit-1.3.0.dist-info}/METADATA +33 -3
  60. {fastapi_fastkit-1.2.0.dist-info → fastapi_fastkit-1.3.0.dist-info}/RECORD +63 -32
  61. {fastapi_fastkit-1.2.0.dist-info → fastapi_fastkit-1.3.0.dist-info}/WHEEL +1 -1
  62. {fastapi_fastkit-1.2.0.dist-info → fastapi_fastkit-1.3.0.dist-info}/entry_points.txt +0 -0
  63. {fastapi_fastkit-1.2.0.dist-info → fastapi_fastkit-1.3.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "<project_name>"
3
3
  version = "0.1.0"
4
- description = "<description>"
4
+ description = "[FastAPI-fastkit templated] <description>"
5
5
  authors = [
6
6
  {name = "<author>", email = "<author_email>"},
7
7
  ]
@@ -42,6 +42,9 @@ dev = [
42
42
  "PyYAML>=6.0.2",
43
43
  ]
44
44
 
45
+ [tool.fastapi-fastkit]
46
+ managed = true
47
+
45
48
  [build-system]
46
49
  requires = ["hatchling"]
47
50
  build-backend = "hatchling.build"
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "<project_name>"
3
3
  version = "0.1.0"
4
- description = "<description>"
4
+ description = "[FastAPI-fastkit templated] <description>"
5
5
  authors = [
6
6
  {name = "<author>", email = "<author_email>"},
7
7
  ]
@@ -20,6 +20,9 @@ dev = [
20
20
  "httpx>=0.28.1",
21
21
  ]
22
22
 
23
+ [tool.fastapi-fastkit]
24
+ managed = true
25
+
23
26
  [build-system]
24
27
  requires = ["hatchling"]
25
28
  build-backend = "hatchling.build"
@@ -5,6 +5,7 @@
5
5
  # --------------------------------------------------------------------------
6
6
  import os
7
7
  import re
8
+ import tomllib
8
9
  import traceback
9
10
  from typing import Any, Dict, Optional
10
11
 
@@ -24,6 +25,14 @@ logger = get_logger(__name__)
24
25
  REGEX = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b"
25
26
 
26
27
 
28
+ # Canonical identity markers used to distinguish FastAPI-fastkit-managed
29
+ # projects from unrelated FastAPI projects in the user workspace. Kept as
30
+ # module-level constants so templates, metadata injection, and detection
31
+ # logic all reference the same strings.
32
+ FASTKIT_DESCRIPTION_MARKER = "[FastAPI-fastkit templated]"
33
+ FASTKIT_TOOL_SECTION = "fastapi-fastkit" # the [tool.<this>] table key
34
+
35
+
27
36
  def get_optimal_console_size() -> tuple[int, int]:
28
37
  """
29
38
  Get optimal console size based on terminal dimensions.
@@ -273,19 +282,77 @@ def validate_email(ctx: Context, param: Any, value: Any) -> Any:
273
282
 
274
283
  def is_fastkit_project(project_dir: str) -> bool:
275
284
  """
276
- Check if the project was created with fastkit.
277
- Inspects the contents of the setup.py file for FastAPI-fastkit markers.
285
+ Check if the project was created/managed by FastAPI-fastkit.
286
+
287
+ Detection precedence (any single match is sufficient):
288
+
289
+ 1. ``pyproject.toml`` with ``[tool.fastapi-fastkit].managed = true``
290
+ (machine-readable marker; set by ``fastkit`` during project generation).
291
+ 2. ``pyproject.toml`` ``[project].description`` contains the
292
+ ``[FastAPI-fastkit templated]`` marker (case-insensitive).
293
+ 3. ``setup.py`` contains ``fastapi-fastkit`` (case-insensitive) — preserves
294
+ the legacy detection path for projects generated before the pyproject
295
+ marker existed.
278
296
 
279
297
  :param project_dir: Path to the project directory
280
298
  :return: True if the project was created with fastkit, False otherwise
281
299
  """
300
+ if _pyproject_marks_fastkit(os.path.join(project_dir, "pyproject.toml")):
301
+ return True
302
+
282
303
  setup_py = os.path.join(project_dir, "setup.py")
283
- if not os.path.exists(setup_py):
304
+ if os.path.exists(setup_py):
305
+ try:
306
+ with open(setup_py, "r", encoding="utf-8") as f:
307
+ content = f.read()
308
+ if FASTKIT_TOOL_SECTION in content.lower():
309
+ return True
310
+ except (OSError, UnicodeDecodeError):
311
+ pass
312
+
313
+ return False
314
+
315
+
316
+ def _pyproject_marks_fastkit(pyproject_path: str) -> bool:
317
+ """Return True if ``pyproject.toml`` carries a FastAPI-fastkit marker.
318
+
319
+ Tries structured TOML parsing first (authoritative), falling back to a
320
+ plain-text scan if the file is malformed so detection still works on
321
+ hand-edited or partially written pyproject files.
322
+ """
323
+ if not os.path.exists(pyproject_path):
284
324
  return False
285
325
 
286
326
  try:
287
- with open(setup_py, "r", encoding="utf-8") as f:
288
- content = f.read()
289
- return "FastAPI-fastkit" in content
327
+ with open(pyproject_path, "rb") as f:
328
+ data = tomllib.load(f)
329
+ except (OSError, tomllib.TOMLDecodeError, UnicodeDecodeError):
330
+ return _pyproject_text_marks_fastkit(pyproject_path)
331
+
332
+ tool_section = data.get("tool", {}).get(FASTKIT_TOOL_SECTION, {})
333
+ if isinstance(tool_section, dict) and tool_section.get("managed") is True:
334
+ return True
335
+
336
+ description = data.get("project", {}).get("description", "")
337
+ if (
338
+ isinstance(description, str)
339
+ and FASTKIT_DESCRIPTION_MARKER.lower() in description.lower()
340
+ ):
341
+ return True
342
+
343
+ return False
344
+
345
+
346
+ def _pyproject_text_marks_fastkit(pyproject_path: str) -> bool:
347
+ """Fallback plain-text scan for malformed pyproject files."""
348
+ try:
349
+ with open(pyproject_path, "r", encoding="utf-8") as f:
350
+ content = f.read().lower()
290
351
  except (OSError, UnicodeDecodeError):
291
352
  return False
353
+
354
+ if f"[tool.{FASTKIT_TOOL_SECTION}]" in content:
355
+ return True
356
+ if FASTKIT_DESCRIPTION_MARKER.lower() in content:
357
+ return True
358
+ return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FastAPI-fastkit
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: Fast, easy-to-use starter kit for new users of Python and FastAPI
5
5
  Author-Email: bnbong <bbbong9@gmail.com>
6
6
  License: MIT
@@ -12,12 +12,13 @@ Requires-Python: >=3.12
12
12
  Requires-Dist: click>=8.1.7
13
13
  Requires-Dist: rich>=13.9.2
14
14
  Provides-Extra: dev
15
- Requires-Dist: pytest>=8.3.3; extra == "dev"
15
+ Requires-Dist: pytest>=9.0.3; extra == "dev"
16
16
  Requires-Dist: pytest-cov>=6.2.1; extra == "dev"
17
- Requires-Dist: black>=24.10.0; extra == "dev"
17
+ Requires-Dist: black>=26.3.1; extra == "dev"
18
18
  Requires-Dist: pre-commit>=4.0.1; extra == "dev"
19
19
  Requires-Dist: mypy>=1.12.0; extra == "dev"
20
20
  Requires-Dist: isort>=5.13.2; extra == "dev"
21
+ Requires-Dist: pygments>=2.20.0; extra == "dev"
21
22
  Description-Content-Type: text/markdown
22
23
 
23
24
  <p align="center">
@@ -36,6 +37,9 @@ Description-Content-Type: text/markdown
36
37
  <a href="https://codecov.io/gh/bnbong/FastAPI-fastkit" >
37
38
  <img src="https://codecov.io/gh/bnbong/FastAPI-fastkit/graph/badge.svg?token=WS0B6WWD8K"/>
38
39
  </a>
40
+ <a href="https://pepy.tech/project/fastapi-fastkit">
41
+ <img src="https://static.pepy.tech/personalized-badge/fastapi-fastkit?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads" alt="PyPI Downloads">
42
+ </a>
39
43
  </p>
40
44
 
41
45
  ---
@@ -47,6 +51,7 @@ This project was inspired by the `SpringBoot initializer` & Python Django's `dja
47
51
  ## Key Features
48
52
 
49
53
  - **⚡ Immediate FastAPI project creation** : Super-fast FastAPI workspace & project creation via CLI, inspired by `django-admin` feature of [Python Django](https://github.com/django/django)
54
+ - **✨ Interactive project builder**: Guided step-by-step feature selection for databases, authentication, caching, monitoring, and more with auto-generated code
50
55
  - **🎨 Prettier CLI output** : Beautiful CLI experience powered by [rich library](https://github.com/Textualize/rich)
51
56
  - **📋 Standards-based FastAPI project templates** : Templates follow Python standards and common FastAPI patterns.
52
57
  - **🔍 Automated template quality assurance** : Weekly automated testing ensures all templates remain functional and up-to-date
@@ -79,6 +84,29 @@ fastkit init [OPTIONS]
79
84
  - `--package-manager` [pip|uv|pdm|poetry]
80
85
  - Stack selection: `minimal` | `standard` | `full` (interactive)
81
86
 
87
+ ### Create a project with interactive mode
88
+ ```console
89
+ fastkit init --interactive
90
+ ```
91
+ - What it does: Guided step-by-step project setup with intelligent feature selection
92
+ - Features:
93
+ - **Architecture preset**: `minimal` | `single-module` | `classic-layered` | `domain-starter` (default)
94
+ - **Database selection**: PostgreSQL, MySQL, MongoDB, Redis, SQLite
95
+ - **Authentication**: JWT, OAuth2, FastAPI-Users, Session-based
96
+ - **Background tasks**: Celery, Dramatiq
97
+ - **Caching**: Redis, fastapi-cache2
98
+ - **Monitoring**: Loguru, OpenTelemetry, Prometheus
99
+ - **Testing**: Basic (pytest), Coverage, Advanced (with faker, factory-boy)
100
+ - **Utilities**: CORS, Rate-Limiting, Pagination, WebSocket
101
+ - **Deployment**: Docker, docker-compose with auto-generated configs
102
+ - **Package manager**: pip, uv, pdm, poetry
103
+ - **Custom packages**: Add your own dependencies
104
+ - Auto-generates (varies by preset — see [the matrix](https://bnbong.github.io/FastAPI-fastkit/reference/preset-feature-matrix/) for details):
105
+ - `main.py` regenerated from selected features for `minimal` / `single-module`; preserved as-shipped for `classic-layered` / `domain-starter`
106
+ - Database and authentication configuration files at preset-specific paths
107
+ - Docker deployment files (`Dockerfile`, `docker-compose.yml`) with the preset's correct uvicorn entrypoint
108
+ - Test configuration (pytest with coverage)
109
+
82
110
  ### Create a project from a template
83
111
  ```console
84
112
  fastkit startdemo [TEMPLATE] [OPTIONS]
@@ -117,9 +145,11 @@ fastkit deleteproject <project_name>
117
145
 
118
146
  For comprehensive guides and detailed usage instructions, visit our documentation:
119
147
 
148
+ - 🧭 **[Which starter should I choose?](https://bnbong.github.io/FastAPI-fastkit/user-guide/choosing-a-starter/)** - Beginner decision guide for `startdemo` templates and interactive presets
120
149
  - 📚 **[User Guide](https://bnbong.github.io/FastAPI-fastkit/user-guide/quick-start/)** - Detailed installation and usage guides
121
150
  - 🎯 **[Tutorial](https://bnbong.github.io/FastAPI-fastkit/tutorial/getting-started/)** - Step-by-step tutorials for beginners
122
151
  - 📖 **[CLI Reference](https://bnbong.github.io/FastAPI-fastkit/user-guide/cli-reference/)** - Complete command reference
152
+ - 🧱 **[Architecture Preset Matrix](https://bnbong.github.io/FastAPI-fastkit/reference/preset-feature-matrix/)** - Per-preset / per-feature contract for interactive generation
123
153
  - 🔍 **[Template Quality Assurance](https://bnbong.github.io/FastAPI-fastkit/reference/template-quality-assurance/)** - Automated testing and quality standards
124
154
 
125
155
  ## Contributing
@@ -1,39 +1,40 @@
1
- fastapi_fastkit-1.2.0.dist-info/METADATA,sha256=iZblXw6CUHthMi-Sr8UqGt7Pio4j-c91YGvVtTbWPKc,7670
2
- fastapi_fastkit-1.2.0.dist-info/WHEEL,sha256=tsUv_t7BDeJeRHaSrczbGeuK-TtDpGsWi_JfpzD255I,90
3
- fastapi_fastkit-1.2.0.dist-info/entry_points.txt,sha256=IONmgb7zWPnJWsCOcpF3u1yP6AWnPjrgWIv49mr1DZE,76
4
- fastapi_fastkit-1.2.0.dist-info/licenses/LICENSE,sha256=2a9cYM3Uy8DW-so6zpYaqUafYT1Dznd3OCWCFe5CKNA,1066
5
- fastapi_fastkit/__init__.py,sha256=3fYvbK3reCGZv6LR-d0_6tSw-leXYFt3SadePKQDefo,23
1
+ fastapi_fastkit-1.3.0.dist-info/METADATA,sha256=9nfBLS9YapDnZkVpu4tjjJY3XpwraA8b7-qkITkcSaQ,9892
2
+ fastapi_fastkit-1.3.0.dist-info/WHEEL,sha256=Z36eTX6lG3PITRleSd5hAZHCcz52yg3c0JQVxKBbLW0,90
3
+ fastapi_fastkit-1.3.0.dist-info/entry_points.txt,sha256=IONmgb7zWPnJWsCOcpF3u1yP6AWnPjrgWIv49mr1DZE,76
4
+ fastapi_fastkit-1.3.0.dist-info/licenses/LICENSE,sha256=2a9cYM3Uy8DW-so6zpYaqUafYT1Dznd3OCWCFe5CKNA,1066
5
+ fastapi_fastkit/__init__.py,sha256=Xylr-uChEzNB6X7IqF6X72pW3Zbaiu7JV2-wzp2otRM,23
6
6
  fastapi_fastkit/__main__.py,sha256=-FS9yUe4IEgDbJjFC1xso-pFCxRzUJ447j6bYpsBTBM,271
7
7
  fastapi_fastkit/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- fastapi_fastkit/backend/inspector.py,sha256=kiQbFko8kHW65LgRMpiuaru__Tsn_3FOx5CwtKSGt9c,51029
9
- fastapi_fastkit/backend/interactive/__init__.py,sha256=y13IaWjzkYy7FPsQ9yIYBzwv_EnUkZSIEJgWVJawnK0,1615
10
- fastapi_fastkit/backend/interactive/config_builder.py,sha256=KgLTVG9VBZVGA5b2IKCd5hs7lqfhCWqF5UGriWSqoYI,6289
11
- fastapi_fastkit/backend/interactive/prompts.py,sha256=bXwXk-PnKsss8AQecf5NxTFUOTU7YU1QrjJYfLHo8_w,15343
12
- fastapi_fastkit/backend/interactive/selectors.py,sha256=fa1nKhPok6iqi0lsC3fzrlHYomTcRtdHJFF19fe43R4,7377
8
+ fastapi_fastkit/backend/inspector.py,sha256=pRzup2ShE9iaHEGLgpj-W9fRweFjtBJtRrBritcB8o8,55869
9
+ fastapi_fastkit/backend/interactive/__init__.py,sha256=g4zUJ_K-Bi1-Zi4whZpSqzImYgjzsaMMZViqeoK692A,1681
10
+ fastapi_fastkit/backend/interactive/config_builder.py,sha256=v-stmd80Da7wBWuU5KR2HWyxFHmAFQ6jwTk2yeXgiYo,7187
11
+ fastapi_fastkit/backend/interactive/prompts.py,sha256=TewzWi9WdmGlVCUdVNtxZJfu8r3Kme1yic3ChnQ9j_g,17177
12
+ fastapi_fastkit/backend/interactive/selectors.py,sha256=1bdctI9M1FueKWEpRcopVS3z_i9s3natBi6diYkwheA,7824
13
13
  fastapi_fastkit/backend/interactive/validators.py,sha256=WaRWuE6H2qQ5UExmHq3NQ41spiCyhbyk7QlYVXcfoHw,4651
14
- fastapi_fastkit/backend/main.py,sha256=weHSZ5Kd5sxy7d39S3ELb5lR2Wl8Vf2pGHy4Imy7_5A,29761
14
+ fastapi_fastkit/backend/main.py,sha256=OdfDGm2xKORG6HiSPXoLDC2kqKcLJkNIsMET-rtWCUk,33635
15
15
  fastapi_fastkit/backend/package_managers/__init__.py,sha256=awSaY-pInI9K4mk1aWqdyKk143AGrcPI4NCy5l_48vw,691
16
16
  fastapi_fastkit/backend/package_managers/base.py,sha256=6IZmIgEgySocVRKH36ffyEMDrnyDYGR3vye7tFjCSRA,4644
17
- fastapi_fastkit/backend/package_managers/factory.py,sha256=sfmsAO3WC1IbehQRrAuJx3pDUtfvz3OZEMzd0kkDiZM,5452
18
- fastapi_fastkit/backend/package_managers/pdm_manager.py,sha256=5UF2XtSJB5vjTeG4NoziZT8HgMbNfSdJeALGm6sIN6Y,9938
17
+ fastapi_fastkit/backend/package_managers/factory.py,sha256=1k8oTTM63YkgkKMyfVb42rEGysm96XDYLF4sqBgO4GU,5451
18
+ fastapi_fastkit/backend/package_managers/pdm_manager.py,sha256=oxWI6SBwDv5f57880tap84Rta3zSyU26pXsoEkHlock,9938
19
19
  fastapi_fastkit/backend/package_managers/pip_manager.py,sha256=hNzGIH3WxKUOS9FLcRBe9DANGz4iYaBKUSwZOR8KQm0,8061
20
- fastapi_fastkit/backend/package_managers/poetry_manager.py,sha256=1wdf090w-n5JhSNlR66drI3JXSqUtO3FuzAEqlKihVw,14242
21
- fastapi_fastkit/backend/package_managers/uv_manager.py,sha256=F9oXnKgjd-fgLmB6-H9lWZVnMcf_psXyQNCQ3O45BCc,12410
22
- fastapi_fastkit/backend/project_builder/__init__.py,sha256=Y_0G3duIEyTtlJMAN7VgK4ufCNxCNKXnkT0u7QCldCI,574
23
- fastapi_fastkit/backend/project_builder/config_generator.py,sha256=8nyW0ODNwUgMePbIpfhj9UIqAvCnTfDIlrq10Yc3TKE,23100
20
+ fastapi_fastkit/backend/package_managers/poetry_manager.py,sha256=pp_itOtpQZi_FsjG8ADwmkdd6wCADiqw87CgzBV_32I,16596
21
+ fastapi_fastkit/backend/package_managers/uv_manager.py,sha256=WDkQ1lzNZdKd5BdEoeYUDUsPbh9Ts6-s8UkdUmhDOHo,12410
22
+ fastapi_fastkit/backend/project_builder/__init__.py,sha256=FSPWxF6LaKolU082kaqWGgoExEH0Gn7AkgajCUoAeZs,690
23
+ fastapi_fastkit/backend/project_builder/config_generator.py,sha256=eKU9Pw5pb94LS0Dr1Zr6EOc063t37j9M5AXjx4wHHPU,23636
24
24
  fastapi_fastkit/backend/project_builder/dependency_collector.py,sha256=stQ77W7LUfsiKyyl3ggynC90Pd0UYFnW1xTrb-y286w,6419
25
- fastapi_fastkit/backend/transducer.py,sha256=rIqwJCm5nsruw3qYZYSEoevqOXoKs38MLAmexAM3O7Y,7171
26
- fastapi_fastkit/cli.py,sha256=mOrhr3tHkRQ2M3HrYPyUJ06fnjLpN2PgOyPuUBC2asI,30923
25
+ fastapi_fastkit/backend/project_builder/preset_layout.py,sha256=Lpig_B17VCuOm-6kvPFOgoVNmJZoukZ9qR9L2VH2Plc,8200
26
+ fastapi_fastkit/backend/transducer.py,sha256=nPNT3YtxlU5pJW6tC8nbieqY0kexZp2YO5NXXujuXcg,7120
27
+ fastapi_fastkit/cli.py,sha256=XPamDzS-WXW1vhtNNp1FtJXfapBA0MqY5ItIXEtlbXs,34307
27
28
  fastapi_fastkit/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
29
  fastapi_fastkit/core/exceptions.py,sha256=W29lbDlKE_yKdS-m_QHaWdDB1j3yGge6mVx5mo_jLrU,972
29
- fastapi_fastkit/core/settings.py,sha256=WdMjQaWxhB6CKEQ8s9b34xwhbYAyvX5yetvdNs-N9a8,8811
30
+ fastapi_fastkit/core/settings.py,sha256=22Jpvqe7TGgh0Qd0AqKzHMq1ga_Zs_kOZPQqqReJZ0I,9755
30
31
  fastapi_fastkit/fastapi_project_template/PROJECT_README_TEMPLATE.md,sha256=5lT_ZY1QItTDbhKYNY6KlOoGlbSTBSrs9DJthcle3D4,1529
31
- fastapi_fastkit/fastapi_project_template/README.md,sha256=7urtQfEjWkX8tSnG_f28_z_kgB8Gjy-W4NxqN8M-df8,2637
32
+ fastapi_fastkit/fastapi_project_template/README.md,sha256=qsKHF27eVpkJ7aYOtiG7sk8jDE4jgZzkUT4K7NlDons,5450
32
33
  fastapi_fastkit/fastapi_project_template/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
34
  fastapi_fastkit/fastapi_project_template/fastapi-async-crud/.env-tpl,sha256=ER5_3eyFYRQUupKW7z1tBOcTVavwEqjzqbbt1kl-Be0,22
34
35
  fastapi_fastkit/fastapi_project_template/fastapi-async-crud/.gitignore-tpl,sha256=8QwgyX8vpYhDtg1bcrBjf99yiLQRRO1OkBsGMRfggKY,269
35
36
  fastapi_fastkit/fastapi_project_template/fastapi-async-crud/README.md-tpl,sha256=K46U8k4lSD0pxIXyqZtHBq8LagqbF3vqCBNZxbp965s,2559
36
- fastapi_fastkit/fastapi_project_template/fastapi-async-crud/pyproject.toml-tpl,sha256=8Buu1OqCqZNKhdi5V0wevoM0qZK5sfeUOHFbAOSA6PI,1565
37
+ fastapi_fastkit/fastapi_project_template/fastapi-async-crud/pyproject.toml-tpl,sha256=ff5diistahw96siEh2xbAGOOIwOOjhyyWtwAgwITgHM,1632
37
38
  fastapi_fastkit/fastapi_project_template/fastapi-async-crud/requirements.txt-tpl,sha256=ucSCNmfjShZH35zI2keHL1ciEyQke-2S8YQfYRdfvMo,641
38
39
  fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
39
40
  fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/lint.sh-tpl,sha256=9V3e8ckaQ8bfNyRdhnmSfRy9UkUS3XoV9ziEOXChdog,53
@@ -61,7 +62,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/test_items.py-
61
62
  fastapi_fastkit/fastapi_project_template/fastapi-custom-response/.env-tpl,sha256=ER5_3eyFYRQUupKW7z1tBOcTVavwEqjzqbbt1kl-Be0,22
62
63
  fastapi_fastkit/fastapi_project_template/fastapi-custom-response/.gitignore-tpl,sha256=II4jyvXxkvLovcVNfTBDgLTclePuoM3Zr1dXuSgN5OA,3489
63
64
  fastapi_fastkit/fastapi_project_template/fastapi-custom-response/README.md-tpl,sha256=XKqadieXHHNAGToHs4YexJMdqNincNZ_JFrSpNYGzro,3908
64
- fastapi_fastkit/fastapi_project_template/fastapi-custom-response/pyproject.toml-tpl,sha256=8Buu1OqCqZNKhdi5V0wevoM0qZK5sfeUOHFbAOSA6PI,1565
65
+ fastapi_fastkit/fastapi_project_template/fastapi-custom-response/pyproject.toml-tpl,sha256=ff5diistahw96siEh2xbAGOOIwOOjhyyWtwAgwITgHM,1632
65
66
  fastapi_fastkit/fastapi_project_template/fastapi-custom-response/requirements.txt-tpl,sha256=Ly_kVIYKPRFBKL8Z_EvSRUFkaNQuXGWKqocO8nT8L1E,641
66
67
  fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
67
68
  fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/lint.sh-tpl,sha256=9V3e8ckaQ8bfNyRdhnmSfRy9UkUS3XoV9ziEOXChdog,53
@@ -95,7 +96,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/test_item
95
96
  fastapi_fastkit/fastapi_project_template/fastapi-default/.env-tpl,sha256=ER5_3eyFYRQUupKW7z1tBOcTVavwEqjzqbbt1kl-Be0,22
96
97
  fastapi_fastkit/fastapi_project_template/fastapi-default/.gitignore-tpl,sha256=8QwgyX8vpYhDtg1bcrBjf99yiLQRRO1OkBsGMRfggKY,269
97
98
  fastapi_fastkit/fastapi_project_template/fastapi-default/README.md-tpl,sha256=5EEtaammaKEQMp-2cmEWRZd1qDxAeX-Jeo_uCml_W5c,2482
98
- fastapi_fastkit/fastapi_project_template/fastapi-default/pyproject.toml-tpl,sha256=rBuSNIk1rf4MLgyTPlmJMS4VTiGyhZ1Tsu1nRJE7JiI,1459
99
+ fastapi_fastkit/fastapi_project_template/fastapi-default/pyproject.toml-tpl,sha256=LgJ4M06zFQ60Dji_OCtM23evWDZbjdBJGTmphq5UV7M,1526
99
100
  fastapi_fastkit/fastapi_project_template/fastapi-default/requirements.txt-tpl,sha256=1YJ0v74PZnMflHhI6NW7wjt4o3DQH3S17q8bUs1t5Ys,601
100
101
  fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
101
102
  fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/lint.sh-tpl,sha256=9V3e8ckaQ8bfNyRdhnmSfRy9UkUS3XoV9ziEOXChdog,53
@@ -124,7 +125,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-dockerized/.env-tpl,sha256=ER5_
124
125
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/.gitignore-tpl,sha256=8QwgyX8vpYhDtg1bcrBjf99yiLQRRO1OkBsGMRfggKY,269
125
126
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/Dockerfile-tpl,sha256=BVbW_QmcPk9KT37CUFTA7zEAiUTKs5qlZO8CfFRZLZ8,463
126
127
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/README.md-tpl,sha256=4PJfJc12bKLsooyRObsfghaxl_OHXJOPclNiZ-6VQpY,2796
127
- fastapi_fastkit/fastapi_project_template/fastapi-dockerized/pyproject.toml-tpl,sha256=d487EqTnpzLPTrrypy7RiQ7Vv6vpZ22Bb3DujAmfOm0,1541
128
+ fastapi_fastkit/fastapi_project_template/fastapi-dockerized/pyproject.toml-tpl,sha256=e_7yceOT8k3L1ZbmSDbtB9e_v6_WjEhzK9OLR7x1Ibs,1608
128
129
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/requirements.txt-tpl,sha256=jaexLatz0slnn4l0DasK8SMFlFIcQLKY_CX1hxTRdK0,640
129
130
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
130
131
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/lint.sh-tpl,sha256=9V3e8ckaQ8bfNyRdhnmSfRy9UkUS3XoV9ziEOXChdog,53
@@ -149,10 +150,40 @@ fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/schemas/items.py
149
150
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
151
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/conftest.py-tpl,sha256=Qk1nBl0C-g8RZIoXFjzjGlP6lRFWFBU0eLq41iQi15Y,875
151
152
  fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/test_items.py-tpl,sha256=yTo_ikmylVK4MCSEZ5gDFpuAl1M7kmHJrK5x_B7xnj4,1323
153
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/.env-tpl,sha256=1AkslHjrLufEGBpbyyKDfoEUQOUOaNNs0bEwmfaK29M,46
154
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/.gitignore-tpl,sha256=ineHW8XTpDBgaewnNW7ODGbNQwfjCYGdvboVedrLU-4,275
155
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/README.md-tpl,sha256=FBqIQwqOZa8rkEQYorvM-27zcY2gGZxkLCC_-WB9Ums,4551
156
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/pyproject.toml-tpl,sha256=V7kuDwnXdnUVv6hxnBZVxpsqiWPNu_dChNIXtDNS42k,1338
157
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/requirements.txt-tpl,sha256=B-tHCUaFwmT5EwagKwENiLWdAMYnqCKECzY4kgLZE-k,197
158
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
159
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/lint.sh-tpl,sha256=GUCLz6mGOTqrnInfybPoHKShE3_kCpnyzDRZtqelqY4,74
160
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/run-server.sh-tpl,sha256=ju9iKsqTBJJVni3_4knSmUnD72SXCNlG7MblPAIMnjg,97
161
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/scripts/test.sh-tpl,sha256=RJtRl9bBI0gRnqq9P1t2y9qaJI1K0hVTbzqaRorHd8w,43
162
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/health.py-tpl,sha256=k22K5KNeeIXgKvKRBALpHRsUeE5litdaXH4Z5XkG86c,379
166
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/api/router.py-tpl,sha256=0HlpvNF0Un_aPFdhgjglvnt-JIitQ-7FuHzDVOG4rc4,497
167
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/core/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/core/config.py-tpl,sha256=gkwDvxB3V4KNLJ1xzDez1ivwwMg-qwhN8hnmiSb9Hfo,1612
169
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/db/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/db/memory.py-tpl,sha256=4H4OeN61kU-aOVLq8NpvIZGCa2xXBBGLX7Ab6ssrBDQ,1528
171
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/__init__.py-tpl,sha256=Oc05YNDcfBRuoQRY1zbPfxL3vzEnt4fWwlAqPsgCDP8,220
173
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/models.py-tpl,sha256=Ffnoe6CWURkRfLI3hpzpcp7gVQloNOLTAA0BMsjmYI0,522
174
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/repository.py-tpl,sha256=j68Wf96dw8i3ubJ7fL_8IJVPx_Jjal0EkABg6at7fp0,1816
175
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/router.py-tpl,sha256=qdUw6gvtlIoikLIQs9ZzhXmMa1-HxeAcTgkIPik_3tI,2203
176
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/schemas.py-tpl,sha256=fRKitiBpypPs_cI0eygL0VHAQD_2WjaCW0x2bJzfCjo,626
177
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/domains/items/service.py-tpl,sha256=OxIysLe6QmYXU7zSmorJmJkSNIMYxah5FHp0UvN_zAo,1879
178
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/src/app/main.py-tpl,sha256=ikJ7LyoWzXmp4IEixxxbH2TYZqJ3ORkWEOKSCf0c60s,765
179
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/conftest.py-tpl,sha256=3b34L0E_cVi6z-_OW5Zqedo_EePwa7syjNF7K0DZQtk,703
181
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/test_health.py-tpl,sha256=YXVLzRCXRmD6gHMNMmfyYJdwHHrasppWi-Ga0jCh6rs,421
182
+ fastapi_fastkit/fastapi_project_template/fastapi-domain-starter/tests/test_items.py-tpl,sha256=RLuMinBf_EqlkTfaUquBfUfRrX_IF2yBPKehITLzYmk,2132
152
183
  fastapi_fastkit/fastapi_project_template/fastapi-empty/.env-tpl,sha256=ER5_3eyFYRQUupKW7z1tBOcTVavwEqjzqbbt1kl-Be0,22
153
184
  fastapi_fastkit/fastapi_project_template/fastapi-empty/.gitignore-tpl,sha256=8QwgyX8vpYhDtg1bcrBjf99yiLQRRO1OkBsGMRfggKY,269
154
- fastapi_fastkit/fastapi_project_template/fastapi-empty/README.md-tpl,sha256=GiSroiSex15vOtwhJJawk-jDrDY0rESR68LVskSXr6Y,2082
155
- fastapi_fastkit/fastapi_project_template/fastapi-empty/pyproject.toml-tpl,sha256=5sDi6dDRQEZFBKFs3WyYXinM3uuYSO8YVxppKfjl6W4,1363
185
+ fastapi_fastkit/fastapi_project_template/fastapi-empty/README.md-tpl,sha256=99ObNWDPUxWyt9SlAq2G0Axi0pXD2rReDaORRJ2CrKA,2134
186
+ fastapi_fastkit/fastapi_project_template/fastapi-empty/pyproject.toml-tpl,sha256=uJ-PcyqAbVvXiAkN3weycihch2i8SZhHtovoTYpf2yY,1430
156
187
  fastapi_fastkit/fastapi_project_template/fastapi-empty/requirements.txt-tpl,sha256=1vkpDsh0IIMpAs5IwIykB0Q2kkPXjyzf6WSwsbVjAJY,195
157
188
  fastapi_fastkit/fastapi_project_template/fastapi-empty/setup.cfg-tpl,sha256=EbyILNe1b0igngbhHxIiFVjJDPSgnrfhSRJjkCB2dDk,197
158
189
  fastapi_fastkit/fastapi_project_template/fastapi-empty/setup.py-tpl,sha256=XGvDbhww40DWDTiFJwqqd28AdTzX_hDRw2iZlI6Uufc,619
@@ -165,7 +196,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/conftest.py-tpl,sha
165
196
  fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/test_main.py-tpl,sha256=XaA1nrFsPZNNlNW99IKba0rXo0i3FjcmP8_CdLpp4eQ,1149
166
197
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/.env-tpl,sha256=mmBW2Rz0aEIEuU6qDmr1jC5WF2vhU1u-A_7xsQe7iEc,664
167
198
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/README.md-tpl,sha256=dB3fsdlrhW2pLIIRKRxGrA_yqttEbeDtgQlA6YstKYc,6395
168
- fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl,sha256=ej4xjMl4nT7zEeBFNtdPW4NmexeKLEHHZ-TcHUOZhHA,1674
199
+ fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl,sha256=jZ27eRcebkQbuMzlFps-7Evnofygj44lrvbZxV7ImMg,1741
169
200
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl,sha256=cLN3YKixrPYphMQyz8L_STcImPVtpCPTLsG4cNgBEqc,711
170
201
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/format.sh-tpl,sha256=lMHoGl8naqGqYnW3WQ5zKJSkFFrWa4EvooA3xyj5Duk,215
171
202
  fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/lint.sh-tpl,sha256=TbnPdvBtO-k4XfAnYxUatrsXn4QniW6THmR0gwqshfs,397
@@ -199,7 +230,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/Dockerfile-tpl,sha256=
199
230
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/README.md-tpl,sha256=959SSsG-ZCZ7edlWW817Sp6OlNkEARmQ0DogjsJ4iWo,3779
200
231
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/alembic.ini-tpl,sha256=iuWH5I4GY3v3-Sx8VHiLxY8OY_lrrBOXlou8fd0GEZ0,3743
201
232
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/docker-compose.yml-tpl,sha256=QLafkdBz_NK-2TXOP0XVUu5TklewBU1UTESv_-PmtYo,913
202
- fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/pyproject.toml-tpl,sha256=BGH20jA6kzzyKbS57xOgWcTjIZVSWf61VWADcznxsu0,1700
233
+ fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/pyproject.toml-tpl,sha256=gfVLrat_rsZDoNaYMydVLNjfC7NPstQNGt2xH62SsEA,1767
203
234
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/requirements.txt-tpl,sha256=trZ2kb7W1Z-YpkI7p5UjoxFsN2FJSxViJmXxrsx-5dQ,717
204
235
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/format.sh-tpl,sha256=wivOKoO8NCXimBSWwLYGh43UW0ufHTRX1LiFm3ZVSmc,44
205
236
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/lint.sh-tpl,sha256=9V3e8ckaQ8bfNyRdhnmSfRy9UkUS3XoV9ziEOXChdog,53
@@ -235,7 +266,7 @@ fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/__init__.py-tpl,
235
266
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/conftest.py-tpl,sha256=nLU0b7-ogFu9fh1fiVaubzoP7YHedqm4ZKZLC-JlJT0,1836
236
267
  fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/test_items.py-tpl,sha256=yTo_ikmylVK4MCSEZ5gDFpuAl1M7kmHJrK5x_B7xnj4,1323
237
268
  fastapi_fastkit/fastapi_project_template/fastapi-single-module/README.md-tpl,sha256=ohpJQPLhqgRA31b-zNkA-_JVi4een-V3aAUDyliJfZ0,961
238
- fastapi_fastkit/fastapi_project_template/fastapi-single-module/pyproject.toml-tpl,sha256=a-IRMBKraNVp6QoNkB4B3yfFTCoHxL_Xzee0rGUPmNg,518
269
+ fastapi_fastkit/fastapi_project_template/fastapi-single-module/pyproject.toml-tpl,sha256=jTu63mSPe3S0c4cInxMQTDwm_ywZIlqRQurHYuX44Ys,585
239
270
  fastapi_fastkit/fastapi_project_template/fastapi-single-module/requirements.txt-tpl,sha256=erLKEM8NsAizfRPuAzSxsN1f4wRDCu6317sQsKsob-s,136
240
271
  fastapi_fastkit/fastapi_project_template/fastapi-single-module/setup.cfg-tpl,sha256=TZwd8ZS3L0k5sRBry5KicHLvfzncyYSwNDB-aaJDZVQ,74
241
272
  fastapi_fastkit/fastapi_project_template/fastapi-single-module/setup.py-tpl,sha256=TvnetqA-GuvlzNvBb-SwrlMfJUyegQcnVdg31zJxzfA,339
@@ -252,5 +283,5 @@ fastapi_fastkit/fastapi_project_template/modules/schemas/new_route.py-tpl,sha256
252
283
  fastapi_fastkit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
253
284
  fastapi_fastkit/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
285
  fastapi_fastkit/utils/logging.py,sha256=oU7BnWInxzl_Gk8kGQ0f6cKdNHZcOVVcSHY4I9MTmR8,6431
255
- fastapi_fastkit/utils/main.py,sha256=iL1_dM2L2LLfGH9QvKhiup9wiBISrpDkJbXPSn1MJyE,9298
256
- fastapi_fastkit-1.2.0.dist-info/RECORD,,
286
+ fastapi_fastkit/utils/main.py,sha256=6GWMk4zXpLXTVo0hPQ2yPSk1ccFn1vD05Cde3Rg8--M,11807
287
+ fastapi_fastkit-1.3.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: pdm-backend (2.4.6)
2
+ Generator: pdm-backend (2.4.8)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any