FastAPI-fastkit 1.1.0__tar.gz → 1.1.2__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 (259) hide show
  1. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/PKG-INFO +1 -1
  2. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/pyproject.toml +1 -1
  3. fastapi_fastkit-1.1.2/src/fastapi_fastkit/__init__.py +1 -0
  4. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/inspector.py +86 -2
  5. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/main.py +133 -4
  6. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/uv_manager.py +14 -3
  7. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/cli.py +70 -32
  8. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/core/settings.py +3 -0
  9. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/pyproject.toml-tpl +85 -0
  10. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/requirements.txt-tpl +1 -1
  11. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/core/config.py-tpl +6 -6
  12. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/pyproject.toml-tpl +85 -0
  13. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/routes/items.py-tpl +6 -6
  14. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/core/config.py-tpl +6 -6
  15. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/helper/exceptions.py-tpl +2 -2
  16. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-default/pyproject.toml-tpl +81 -0
  17. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/core/config.py-tpl +6 -6
  18. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/pyproject.toml-tpl +84 -0
  19. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/core/config.py-tpl +6 -6
  20. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/pyproject.toml-tpl +77 -0
  21. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/requirements.txt-tpl +1 -0
  22. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/core/config.py-tpl +6 -6
  23. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/pyproject.toml-tpl +88 -0
  24. fastapi_fastkit-1.1.2/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/pyproject.toml-tpl +90 -0
  25. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_backends/test_inspector.py +23 -4
  26. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_backends/test_main.py +93 -0
  27. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_cli_operations/test_cli.py +265 -35
  28. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_cli_operations/test_cli_extended.py +11 -7
  29. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_templates/test_all_templates.py +4 -2
  30. fastapi_fastkit-1.1.0/src/fastapi_fastkit/__init__.py +0 -1
  31. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/LICENSE +0 -0
  32. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/README.md +0 -0
  33. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/__main__.py +0 -0
  34. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/__init__.py +0 -0
  35. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/__init__.py +0 -0
  36. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/base.py +0 -0
  37. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/factory.py +0 -0
  38. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/pdm_manager.py +0 -0
  39. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/pip_manager.py +0 -0
  40. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/package_managers/poetry_manager.py +0 -0
  41. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/backend/transducer.py +0 -0
  42. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/core/__init__.py +0 -0
  43. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/core/exceptions.py +0 -0
  44. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/PROJECT_README_TEMPLATE.md +0 -0
  45. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/README.md +0 -0
  46. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/__init__.py +0 -0
  47. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/.env-tpl +0 -0
  48. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/.gitignore-tpl +0 -0
  49. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/README.md-tpl +0 -0
  50. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/format.sh-tpl +0 -0
  51. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/lint.sh-tpl +0 -0
  52. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/run-server.sh-tpl +0 -0
  53. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/scripts/test.sh-tpl +0 -0
  54. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/setup.cfg-tpl +0 -0
  55. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/setup.py-tpl +0 -0
  56. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/__init__.py-tpl +0 -0
  57. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/__init__.py-tpl +0 -0
  58. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/api.py-tpl +0 -0
  59. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/routes/__init__.py-tpl +0 -0
  60. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/api/routes/items.py-tpl +0 -0
  61. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/core/__init__.py-tpl +0 -0
  62. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/crud/__init__.py-tpl +0 -0
  63. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/crud/items.py-tpl +0 -0
  64. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/main.py-tpl +0 -0
  65. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/mocks/__init__.py-tpl +0 -0
  66. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/mocks/mock_items.json-tpl +0 -0
  67. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/schemas/__init__.py-tpl +0 -0
  68. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/src/schemas/items.py-tpl +0 -0
  69. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/__init__.py-tpl +0 -0
  70. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/conftest.py-tpl +0 -0
  71. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-async-crud/tests/test_items.py-tpl +0 -0
  72. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/.env-tpl +0 -0
  73. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/.gitignore-tpl +0 -0
  74. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/README.md-tpl +0 -0
  75. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/requirements.txt-tpl +0 -0
  76. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/format.sh-tpl +0 -0
  77. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/lint.sh-tpl +0 -0
  78. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/run-server.sh-tpl +0 -0
  79. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/scripts/test.sh-tpl +0 -0
  80. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/setup.cfg-tpl +0 -0
  81. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/setup.py-tpl +0 -0
  82. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/__init__.py-tpl +0 -0
  83. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/__init__.py-tpl +0 -0
  84. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/api.py-tpl +0 -0
  85. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/api/routes/__init__.py-tpl +0 -0
  86. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/core/__init__.py-tpl +0 -0
  87. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/crud/__init__.py-tpl +0 -0
  88. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/crud/items.py-tpl +0 -0
  89. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/helper/__init__.py-tpl +0 -0
  90. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/helper/pagination.py-tpl +0 -0
  91. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/main.py-tpl +0 -0
  92. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/mocks/__init__.py-tpl +0 -0
  93. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/mocks/mock_items.json-tpl +0 -0
  94. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/schemas/__init__.py-tpl +0 -0
  95. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/schemas/base.py-tpl +0 -0
  96. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/schemas/items.py-tpl +0 -0
  97. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/utils/__init__.py-tpl +0 -0
  98. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/src/utils/documents.py-tpl +0 -0
  99. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/__init__.py-tpl +0 -0
  100. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/conftest.py-tpl +0 -0
  101. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-custom-response/tests/test_items.py-tpl +0 -0
  102. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/.env-tpl +0 -0
  103. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/.gitignore-tpl +0 -0
  104. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/README.md-tpl +0 -0
  105. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/requirements.txt-tpl +0 -0
  106. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/format.sh-tpl +0 -0
  107. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/lint.sh-tpl +0 -0
  108. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/run-server.sh-tpl +0 -0
  109. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/scripts/test.sh-tpl +0 -0
  110. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/setup.cfg-tpl +0 -0
  111. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/setup.py-tpl +0 -0
  112. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/__init__.py-tpl +0 -0
  113. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/__init__.py-tpl +0 -0
  114. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/api.py-tpl +0 -0
  115. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/routes/__init__.py-tpl +0 -0
  116. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/api/routes/items.py-tpl +0 -0
  117. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/core/__init__.py-tpl +0 -0
  118. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/crud/__init__.py-tpl +0 -0
  119. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/crud/items.py-tpl +0 -0
  120. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/main.py-tpl +0 -0
  121. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/mocks/__init__.py-tpl +0 -0
  122. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/mocks/mock_items.json-tpl +0 -0
  123. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/schemas/__init__.py-tpl +0 -0
  124. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/src/schemas/items.py-tpl +0 -0
  125. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/tests/__init__.py-tpl +0 -0
  126. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/tests/conftest.py-tpl +0 -0
  127. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-default/tests/test_items.py-tpl +0 -0
  128. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/.env-tpl +0 -0
  129. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/.gitignore-tpl +0 -0
  130. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/Dockerfile-tpl +0 -0
  131. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/README.md-tpl +0 -0
  132. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/requirements.txt-tpl +0 -0
  133. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/format.sh-tpl +0 -0
  134. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/lint.sh-tpl +0 -0
  135. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/run-server.sh-tpl +0 -0
  136. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/scripts/test.sh-tpl +0 -0
  137. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/setup.cfg-tpl +0 -0
  138. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/setup.py-tpl +0 -0
  139. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/__init__.py-tpl +0 -0
  140. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/__init__.py-tpl +0 -0
  141. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/api.py-tpl +0 -0
  142. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/routes/__init__.py-tpl +0 -0
  143. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/api/routes/items.py-tpl +0 -0
  144. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/core/__init__.py-tpl +0 -0
  145. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/crud/__init__.py-tpl +0 -0
  146. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/crud/items.py-tpl +0 -0
  147. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/main.py-tpl +0 -0
  148. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/mocks/__init__.py-tpl +0 -0
  149. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/mocks/mock_items.json-tpl +0 -0
  150. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/schemas/__init__.py-tpl +0 -0
  151. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/src/schemas/items.py-tpl +0 -0
  152. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/__init__.py-tpl +0 -0
  153. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/conftest.py-tpl +0 -0
  154. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-dockerized/tests/test_items.py-tpl +0 -0
  155. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/.env-tpl +0 -0
  156. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/.gitignore-tpl +0 -0
  157. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/README.md-tpl +0 -0
  158. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/setup.cfg-tpl +0 -0
  159. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/setup.py-tpl +0 -0
  160. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/__init__.py-tpl +0 -0
  161. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/core/__init__.py-tpl +0 -0
  162. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/src/main.py-tpl +0 -0
  163. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/__init__.py-tpl +0 -0
  164. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/conftest.py-tpl +0 -0
  165. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-empty/tests/test_main.py-tpl +0 -0
  166. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/.env-tpl +0 -0
  167. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/README.md-tpl +0 -0
  168. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/requirements.txt-tpl +0 -0
  169. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/format.sh-tpl +0 -0
  170. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/lint.sh-tpl +0 -0
  171. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/run-server.sh-tpl +0 -0
  172. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/scripts/test.sh-tpl +0 -0
  173. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.cfg-tpl +0 -0
  174. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/setup.py-tpl +0 -0
  175. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/__init__.py-tpl +0 -0
  176. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/__init__.py-tpl +0 -0
  177. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/api.py-tpl +0 -0
  178. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/routes/__init__.py-tpl +0 -0
  179. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/routes/auth.py-tpl +0 -0
  180. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/api/routes/items.py-tpl +0 -0
  181. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/auth/__init__.py-tpl +0 -0
  182. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/auth/dependencies.py-tpl +0 -0
  183. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/core/__init__.py-tpl +0 -0
  184. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/core/config.py-tpl +0 -0
  185. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/main.py-tpl +0 -0
  186. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/mcp/__init__.py-tpl +0 -0
  187. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/mcp/router.py-tpl +0 -0
  188. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/schemas/__init__.py-tpl +0 -0
  189. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/src/schemas/items.py-tpl +0 -0
  190. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/__init__.py-tpl +0 -0
  191. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/conftest.py-tpl +0 -0
  192. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_auth.py-tpl +0 -0
  193. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_items.py-tpl +0 -0
  194. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-mcp/tests/test_mcp.py-tpl +0 -0
  195. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/.env-tpl +0 -0
  196. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/.gitignore-tpl +0 -0
  197. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/Dockerfile-tpl +0 -0
  198. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/README.md-tpl +0 -0
  199. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/alembic.ini-tpl +0 -0
  200. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/docker-compose.yml-tpl +0 -0
  201. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/requirements.txt-tpl +0 -0
  202. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/format.sh-tpl +0 -0
  203. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/lint.sh-tpl +0 -0
  204. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/pre-start.sh-tpl +0 -0
  205. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/run-server.sh-tpl +0 -0
  206. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/scripts/test.sh-tpl +0 -0
  207. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/setup.cfg-tpl +0 -0
  208. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/setup.py-tpl +0 -0
  209. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/__init__.py-tpl +0 -0
  210. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/README-tpl +0 -0
  211. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/env.py-tpl +0 -0
  212. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/script.py.mako-tpl +0 -0
  213. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/alembic/versions/bedcdc35b64a_first_alembic.py-tpl +0 -0
  214. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/__init__.py-tpl +0 -0
  215. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/api.py-tpl +0 -0
  216. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/deps.py-tpl +0 -0
  217. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/routes/__init__.py-tpl +0 -0
  218. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/api/routes/items.py-tpl +0 -0
  219. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/core/__init__.py-tpl +0 -0
  220. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/core/config.py-tpl +0 -0
  221. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/core/db.py-tpl +0 -0
  222. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/crud/__init__.py-tpl +0 -0
  223. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/crud/items.py-tpl +0 -0
  224. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/main.py-tpl +0 -0
  225. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/schemas/__init__.py-tpl +0 -0
  226. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/schemas/items.py-tpl +0 -0
  227. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/__init__.py-tpl +0 -0
  228. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/backend_pre_start.py-tpl +0 -0
  229. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/init_data.py-tpl +0 -0
  230. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/src/utils/tests_pre_start.py-tpl +0 -0
  231. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/template-config.yml-tpl +0 -0
  232. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/__init__.py-tpl +0 -0
  233. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/conftest.py-tpl +0 -0
  234. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/fastapi-psql-orm/tests/test_items.py-tpl +0 -0
  235. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/api/__init__.py-tpl +0 -0
  236. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/api/routes/__init__.py-tpl +0 -0
  237. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/api/routes/new_route.py-tpl +0 -0
  238. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/crud/__init__.py-tpl +0 -0
  239. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/crud/new_route.py-tpl +0 -0
  240. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/schemas/__init__.py-tpl +0 -0
  241. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/fastapi_project_template/modules/schemas/new_route.py-tpl +0 -0
  242. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/py.typed +0 -0
  243. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/utils/__init__.py +0 -0
  244. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/utils/logging.py +0 -0
  245. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/src/fastapi_fastkit/utils/main.py +0 -0
  246. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/__init__.py +0 -0
  247. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/conftest.py +0 -0
  248. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_backends/__init__.py +0 -0
  249. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_backends/test_configure.py +0 -0
  250. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_backends/test_package_managers.py +0 -0
  251. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_backends/test_transducer.py +0 -0
  252. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_cli_operations/__init__.py +0 -0
  253. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_core.py +0 -0
  254. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_rich/__init__.py +0 -0
  255. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_rich/test_rich.py +0 -0
  256. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_templates/__init__.py +0 -0
  257. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_templates/template_configs.yaml +0 -0
  258. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_templates/test_config_based_templates.py +0 -0
  259. {fastapi_fastkit-1.1.0 → fastapi_fastkit-1.1.2}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: FastAPI-fastkit
3
- Version: 1.1.0
3
+ Version: 1.1.2
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
@@ -11,7 +11,7 @@ dependencies = [
11
11
  ]
12
12
  requires-python = ">=3.12"
13
13
  readme = "README.md"
14
- version = "1.1.0"
14
+ version = "1.1.2"
15
15
 
16
16
  [project.license]
17
17
  text = "MIT"
@@ -0,0 +1 @@
1
+ __version__ = 'v1.1.2'
@@ -31,7 +31,9 @@ import yaml # type: ignore
31
31
  from fastapi_fastkit.backend.main import (
32
32
  create_venv,
33
33
  find_template_core_modules,
34
+ inject_project_metadata,
34
35
  install_dependencies,
36
+ install_dependencies_with_manager,
35
37
  )
36
38
  from fastapi_fastkit.backend.transducer import copy_and_convert_template
37
39
  from fastapi_fastkit.core.settings import settings
@@ -61,6 +63,10 @@ class TemplateInspector:
61
63
  try:
62
64
  os.makedirs(self.temp_dir, exist_ok=True)
63
65
  copy_and_convert_template(str(self.template_path), self.temp_dir)
66
+
67
+ # Inject dummy metadata for inspection
68
+ self._inject_dummy_metadata()
69
+
64
70
  self._cleanup_needed = True
65
71
  self.template_config = self._load_template_config()
66
72
  debug_log(f"Created temporary directory at {self.temp_dir}", "debug")
@@ -112,6 +118,43 @@ class TemplateInspector:
112
118
  debug_log(f"Failed to load template configuration: {e}", "warning")
113
119
  return None
114
120
 
121
+ def _inject_dummy_metadata(self) -> None:
122
+ """Inject dummy metadata for template inspection."""
123
+ try:
124
+ # Use dummy metadata for inspection
125
+ dummy_metadata = {
126
+ "project_name": "test-template",
127
+ "author": "Template Inspector",
128
+ "author_email": "inspector@fastapi-fastkit.dev",
129
+ "description": "Test project for template inspection",
130
+ }
131
+
132
+ inject_project_metadata(
133
+ self.temp_dir,
134
+ dummy_metadata["project_name"],
135
+ dummy_metadata["author"],
136
+ dummy_metadata["author_email"],
137
+ dummy_metadata["description"],
138
+ )
139
+ debug_log("Injected dummy metadata for template inspection", "info")
140
+
141
+ except Exception as e:
142
+ debug_log(f"Failed to inject dummy metadata: {e}", "warning")
143
+ self.warnings.append(f"Failed to inject metadata: {str(e)}")
144
+
145
+ def _detect_package_manager(self) -> str:
146
+ """Detect the appropriate package manager for the template."""
147
+ # Check for pyproject.toml (modern Python packaging)
148
+ if os.path.exists(os.path.join(self.temp_dir, "pyproject.toml")):
149
+ return "uv" # Use UV for pyproject.toml based projects
150
+
151
+ # Check for requirements.txt (traditional pip)
152
+ if os.path.exists(os.path.join(self.temp_dir, "requirements.txt")):
153
+ return "pip"
154
+
155
+ # Default to pip if no dependency file found
156
+ return "pip"
157
+
115
158
  def _check_docker_available(self) -> bool:
116
159
  """Check if Docker and Docker Compose are available."""
117
160
  try:
@@ -393,7 +436,21 @@ class TemplateInspector:
393
436
  try:
394
437
  # Create virtual environment for testing
395
438
  venv_path = create_venv(self.temp_dir)
396
- install_dependencies(self.temp_dir, venv_path)
439
+
440
+ # Detect and use appropriate package manager
441
+ package_manager = self._detect_package_manager()
442
+ debug_log(f"Using package manager: {package_manager}", "info")
443
+
444
+ try:
445
+ install_dependencies_with_manager(
446
+ self.temp_dir, venv_path, package_manager
447
+ )
448
+ except Exception as dep_error:
449
+ # Capture detailed dependency installation error
450
+ error_msg = f"Failed to install dependencies: {str(dep_error)}"
451
+ debug_log(f"Dependency installation failed: {dep_error}", "error")
452
+ self.errors.append(error_msg)
453
+ return False
397
454
 
398
455
  # Check if scripts/test.sh exists
399
456
  test_script_path = os.path.join(self.temp_dir, "scripts", "test.sh")
@@ -557,7 +614,21 @@ class TemplateInspector:
557
614
  try:
558
615
  # Create virtual environment for testing
559
616
  venv_path = create_venv(self.temp_dir)
560
- install_dependencies(self.temp_dir, venv_path)
617
+
618
+ # Detect and use appropriate package manager
619
+ package_manager = self._detect_package_manager()
620
+ debug_log(f"Using package manager: {package_manager}", "info")
621
+
622
+ try:
623
+ install_dependencies_with_manager(
624
+ self.temp_dir, venv_path, package_manager
625
+ )
626
+ except Exception as dep_error:
627
+ # Capture detailed dependency installation error
628
+ error_msg = f"Failed to install dependencies: {str(dep_error)}"
629
+ debug_log(f"Dependency installation failed: {dep_error}", "error")
630
+ self.errors.append(error_msg)
631
+ return False
561
632
 
562
633
  # Set up fallback environment (e.g., SQLite database)
563
634
  fallback_config = self.template_config["fallback_testing"]
@@ -683,6 +754,14 @@ class TemplateInspector:
683
754
  # Check if all services are running
684
755
  all_running = True
685
756
  for service in services:
757
+ # Ensure service is a dictionary before calling .get()
758
+ if not isinstance(service, dict):
759
+ debug_log(
760
+ f"Service info is not a dictionary: {service}",
761
+ "warning",
762
+ )
763
+ continue
764
+
686
765
  if service.get("State") != "running":
687
766
  all_running = False
688
767
  debug_log(
@@ -738,6 +817,11 @@ class TemplateInspector:
738
817
  app_running = False
739
818
 
740
819
  for service in services:
820
+ # Ensure service is a dictionary before calling .get()
821
+ if not isinstance(service, dict):
822
+ debug_log(f"Service info is not a dictionary: {service}", "warning")
823
+ continue
824
+
741
825
  service_name = service.get("Name", "")
742
826
  service_state = service.get("State", "")
743
827
 
@@ -7,10 +7,15 @@ import os
7
7
  import re
8
8
  from typing import Dict, List
9
9
 
10
+ import click
11
+
10
12
  from fastapi_fastkit import console
11
13
  from fastapi_fastkit.backend.package_managers import PackageManagerFactory
12
- from fastapi_fastkit.backend.transducer import copy_and_convert_template_file
13
- from fastapi_fastkit.core.exceptions import BackendExceptions, TemplateExceptions
14
+ from fastapi_fastkit.backend.transducer import (
15
+ copy_and_convert_template,
16
+ copy_and_convert_template_file,
17
+ )
18
+ from fastapi_fastkit.core.exceptions import BackendExceptions
14
19
  from fastapi_fastkit.core.settings import settings
15
20
  from fastapi_fastkit.utils.logging import debug_log, get_logger
16
21
  from fastapi_fastkit.utils.main import (
@@ -32,12 +37,12 @@ logger = get_logger(__name__)
32
37
  def find_template_core_modules(project_dir: str) -> Dict[str, str]:
33
38
  """
34
39
  Find core module files in the template project structure.
35
- Returns a dictionary with paths to main.py, setup.py, and config files.
40
+ Returns a dictionary with paths to main.py, setup.py, pyproject.toml and config files.
36
41
 
37
42
  :param project_dir: Path to the project directory
38
43
  :return: Dictionary with paths to core modules
39
44
  """
40
- core_modules = {"main": "", "setup": "", "config": ""}
45
+ core_modules = {"main": "", "setup": "", "pyproject": "", "config": ""}
41
46
  template_paths = settings.TEMPLATE_PATHS
42
47
 
43
48
  # Find main.py
@@ -54,6 +59,13 @@ def find_template_core_modules(project_dir: str) -> Dict[str, str]:
54
59
  core_modules["setup"] = full_path
55
60
  break
56
61
 
62
+ # Find pyproject.toml
63
+ for pyproject_path in template_paths["pyproject"]:
64
+ full_path = os.path.join(project_dir, pyproject_path)
65
+ if os.path.exists(full_path):
66
+ core_modules["pyproject"] = full_path
67
+ break
68
+
57
69
  # Find config file
58
70
  config_info = template_paths["config"]
59
71
  if isinstance(config_info, dict):
@@ -166,6 +178,13 @@ def inject_project_metadata(
166
178
  author_email,
167
179
  description,
168
180
  )
181
+ _process_pyproject_file(
182
+ core_modules.get("pyproject", ""),
183
+ project_name,
184
+ author,
185
+ author_email,
186
+ description,
187
+ )
169
188
  _process_config_file(core_modules.get("config", ""), project_name)
170
189
 
171
190
  print_success("Project metadata injected successfully")
@@ -245,6 +264,51 @@ def _process_config_file(config_py: str, project_name: str) -> None:
245
264
  raise BackendExceptions(f"Failed to process config file: {e}")
246
265
 
247
266
 
267
+ def _process_pyproject_file(
268
+ pyproject_toml: str,
269
+ project_name: str,
270
+ author: str,
271
+ author_email: str,
272
+ description: str,
273
+ ) -> None:
274
+ """
275
+ Process pyproject.toml file and inject metadata.
276
+
277
+ :param pyproject_toml: Path to pyproject.toml file
278
+ :param project_name: Project name
279
+ :param author: Author name
280
+ :param author_email: Author email
281
+ :param description: Project description
282
+ """
283
+ if not pyproject_toml or not os.path.exists(pyproject_toml):
284
+ return
285
+
286
+ try:
287
+ with open(pyproject_toml, "r", encoding="utf-8") as f:
288
+ content = f.read()
289
+
290
+ # Replace placeholders
291
+ replacements = {
292
+ "<project_name>": project_name,
293
+ "<author>": author,
294
+ "<author_email>": author_email,
295
+ "<description>": description,
296
+ }
297
+
298
+ for placeholder, value in replacements.items():
299
+ content = content.replace(placeholder, value)
300
+
301
+ with open(pyproject_toml, "w", encoding="utf-8") as f:
302
+ f.write(content)
303
+
304
+ debug_log("Injected metadata into pyproject.toml", "info")
305
+ print_info("Injected metadata into pyproject.toml")
306
+
307
+ except (OSError, UnicodeDecodeError) as e:
308
+ debug_log(f"Error processing pyproject.toml: {e}", "error")
309
+ raise BackendExceptions(f"Failed to process pyproject.toml: {e}")
310
+
311
+
248
312
  def create_venv_with_manager(project_dir: str, manager_type: str = "pip") -> str:
249
313
  """
250
314
  Create a virtual environment using the specified package manager.
@@ -638,3 +702,68 @@ def add_new_route(project_dir: str, route_name: str) -> None:
638
702
  debug_log(f"Unexpected error while adding route {route_name}: {e}", "error")
639
703
  handle_exception(e, f"Error adding new route: {str(e)}")
640
704
  raise BackendExceptions(f"Failed to add new route: {str(e)}")
705
+
706
+
707
+ # ------------------------------------------------------------
708
+ # Create Project Folder Functions
709
+ # ------------------------------------------------------------
710
+
711
+
712
+ def ask_create_project_folder(project_name: str) -> bool:
713
+ """
714
+ Ask user whether to create a new project folder.
715
+
716
+ :param project_name: Name of the project
717
+ :return: True if user wants to create a folder, False otherwise
718
+ """
719
+ return click.confirm(
720
+ f"\nCreate a new project folder named '{project_name}'?\n"
721
+ f"Yes: Templates will be placed in './{project_name}/'\n"
722
+ f"No: Templates will be placed in current directory",
723
+ default=True,
724
+ )
725
+
726
+
727
+ def deploy_template_with_folder_option(
728
+ target_template: str, user_local: str, project_name: str, create_folder: bool
729
+ ) -> tuple[str, str]:
730
+ """
731
+ Deploy template based on folder creation option.
732
+
733
+ :param target_template: Path to template directory
734
+ :param user_local: User's workspace directory
735
+ :param project_name: Name of the project
736
+ :param create_folder: Whether to create a new folder
737
+ :return: Tuple of (project_dir, deployment_message)
738
+ """
739
+ if create_folder:
740
+ project_dir = os.path.join(user_local, project_name)
741
+ deployment_message = f"FastAPI template project will deploy at '{user_local}' in folder '{project_name}'"
742
+ copy_and_convert_template(target_template, user_local, project_name)
743
+ else:
744
+ project_dir = user_local
745
+ deployment_message = (
746
+ f"FastAPI template project will deploy directly at '{user_local}'"
747
+ )
748
+ copy_and_convert_template(target_template, user_local, "")
749
+
750
+ click.echo(deployment_message)
751
+ return project_dir, deployment_message
752
+
753
+
754
+ def get_deployment_success_message(
755
+ template: str, project_name: str, user_local: str, create_folder: bool
756
+ ) -> str:
757
+ """
758
+ Get appropriate success message based on deployment option.
759
+
760
+ :param template: Template name used
761
+ :param project_name: Name of the project
762
+ :param user_local: User's workspace directory
763
+ :param create_folder: Whether folder was created
764
+ :return: Success message string
765
+ """
766
+ if create_folder:
767
+ return f"FastAPI project '{project_name}' from '{template}' has been created and saved to {user_local}!"
768
+ else:
769
+ return f"FastAPI project '{project_name}' from '{template}' has been deployed directly to {user_local}!"
@@ -93,16 +93,27 @@ class UvManager(BasePackageManager):
93
93
  print_error(f"pyproject.toml file not found at {pyproject_path}")
94
94
  raise BackendExceptions("pyproject.toml file not found")
95
95
 
96
- # Install dependencies using UV sync
96
+ # Install dependencies using UV sync (including dev dependencies)
97
+ cmd = ["uv", "sync", "--group", "dev"]
98
+ debug_log(
99
+ f"Running UV command: {' '.join(cmd)} in {self.project_dir}", "info"
100
+ )
101
+
97
102
  with console.status("[bold green]Installing dependencies with UV..."):
98
- subprocess.run(
99
- ["uv", "sync"],
103
+ result = subprocess.run(
104
+ cmd,
100
105
  cwd=str(self.project_dir),
101
106
  check=True,
102
107
  capture_output=True,
103
108
  text=True,
104
109
  )
105
110
 
111
+ # Log UV output for debugging
112
+ if result.stdout:
113
+ debug_log(f"UV stdout: {result.stdout}", "debug")
114
+ if result.stderr:
115
+ debug_log(f"UV stderr: {result.stderr}", "debug")
116
+
106
117
  debug_log("Dependencies installed successfully with UV", "info")
107
118
  print_success("Dependencies installed successfully with UV")
108
119
 
@@ -1,3 +1,4 @@
1
+ # TODO : add a feature to automatically fix appropriate fastkit output console size
1
2
  # --------------------------------------------------------------------------
2
3
  # The Module defines main and core CLI operations for FastAPI-fastkit.
3
4
  #
@@ -17,14 +18,16 @@ from rich.panel import Panel
17
18
 
18
19
  from fastapi_fastkit.backend.main import (
19
20
  add_new_route,
21
+ ask_create_project_folder,
20
22
  create_venv_with_manager,
23
+ deploy_template_with_folder_option,
21
24
  find_template_core_modules,
22
25
  generate_dependency_file_with_manager,
26
+ get_deployment_success_message,
23
27
  inject_project_metadata,
24
28
  install_dependencies_with_manager,
25
29
  read_template_stack,
26
30
  )
27
- from fastapi_fastkit.backend.transducer import copy_and_convert_template
28
31
  from fastapi_fastkit.core.exceptions import CLIExceptions
29
32
  from fastapi_fastkit.core.settings import FastkitConfig
30
33
  from fastapi_fastkit.utils.logging import get_logger, setup_logging
@@ -191,6 +194,7 @@ def startdemo(
191
194
  """
192
195
  Create a new FastAPI project from templates and inject metadata.
193
196
  """
197
+ # TODO : add --template-name option to specify the template name
194
198
  settings = ctx.obj["settings"]
195
199
 
196
200
  template_dir = settings.FASTKIT_TEMPLATE_ROOT
@@ -258,25 +262,27 @@ def startdemo(
258
262
  print_error("Project creation aborted!")
259
263
  return
260
264
 
265
+ # Ask user whether to create a new project folder
266
+ create_project_folder = ask_create_project_folder(project_name)
267
+
261
268
  try:
262
269
  user_local = settings.USER_WORKSPACE
263
- project_dir = os.path.join(user_local, project_name)
264
-
265
- click.echo(f"FastAPI template project will deploy at '{user_local}'")
266
270
 
267
- copy_and_convert_template(target_template, user_local, project_name)
271
+ project_dir, _ = deploy_template_with_folder_option(
272
+ target_template, user_local, project_name, create_project_folder
273
+ )
268
274
 
269
275
  inject_project_metadata(
270
276
  project_dir, project_name, author, author_email, description
271
277
  )
272
278
 
273
- # Create virtual environment and install dependencies with selected package manager
274
279
  venv_path = create_venv_with_manager(project_dir, package_manager)
275
280
  install_dependencies_with_manager(project_dir, venv_path, package_manager)
276
281
 
277
- print_success(
278
- f"FastAPI project '{project_name}' from '{template}' has been created and saved to {user_local}!"
282
+ success_message = get_deployment_success_message(
283
+ template, project_name, user_local, create_project_folder
279
284
  )
285
+ print_success(success_message)
280
286
 
281
287
  except Exception as e:
282
288
  if settings.DEBUG_MODE:
@@ -323,8 +329,11 @@ def init(
323
329
  ) -> None:
324
330
  """
325
331
  Start a empty FastAPI project setup.
332
+
326
333
  This command will automatically create a new FastAPI project directory and a python virtual environment.
334
+
327
335
  Dependencies will be automatically installed based on the selected stack at venv.
336
+
328
337
  Project metadata will be injected to the project files.
329
338
  """
330
339
  settings = ctx.obj["settings"]
@@ -402,13 +411,15 @@ def init(
402
411
  print_error("Project creation aborted!")
403
412
  return
404
413
 
414
+ # Ask user whether to create a new project folder
415
+ create_project_folder = ask_create_project_folder(project_name)
416
+
405
417
  try:
406
418
  user_local = settings.USER_WORKSPACE
407
- project_dir = os.path.join(user_local, project_name)
408
-
409
- click.echo(f"FastAPI project will deploy at '{user_local}'")
410
419
 
411
- copy_and_convert_template(target_template, user_local, project_name)
420
+ project_dir, _ = deploy_template_with_folder_option(
421
+ target_template, user_local, project_name, create_project_folder
422
+ )
412
423
 
413
424
  inject_project_metadata(
414
425
  project_dir, project_name, author, author_email, description
@@ -439,9 +450,10 @@ def init(
439
450
  venv_path = create_venv_with_manager(project_dir, package_manager)
440
451
  install_dependencies_with_manager(project_dir, venv_path, package_manager)
441
452
 
442
- print_success(
443
- f"FastAPI project '{project_name}' has been created successfully and saved to {user_local}!"
453
+ success_message = get_deployment_success_message(
454
+ template, project_name, user_local, create_project_folder
444
455
  )
456
+ print_success(success_message)
445
457
 
446
458
  print_info(
447
459
  "To start your project, run 'fastkit runserver' at newly created FastAPI project directory"
@@ -457,25 +469,43 @@ def init(
457
469
 
458
470
 
459
471
  @fastkit_cli.command()
460
- @click.argument("project_name")
461
472
  @click.argument("route_name")
473
+ @click.argument("project_dir", default=".")
462
474
  @click.pass_context
463
- def addroute(ctx: Context, project_name: str, route_name: str) -> None:
475
+ def addroute(ctx: Context, route_name: str, project_dir: str) -> None:
464
476
  """
465
477
  Add a new route to the FastAPI project.
478
+
479
+ Examples:\n
480
+ fastkit addroute user . # Add 'user' route to current directory
481
+ fastkit addroute user my_project # Add 'user' route to 'my_project' in workspace
466
482
  """
467
483
  settings = ctx.obj["settings"]
468
- user_local = settings.USER_WORKSPACE
469
- project_dir = os.path.join(user_local, project_name)
484
+
485
+ if project_dir == ".":
486
+ actual_project_dir = os.getcwd()
487
+ project_name = os.path.basename(actual_project_dir)
488
+ else:
489
+ user_local = settings.USER_WORKSPACE
490
+ actual_project_dir = os.path.join(user_local, project_dir)
491
+ project_name = project_dir
470
492
 
471
493
  # Check if project exists
472
- if not os.path.exists(project_dir):
473
- print_error(f"Project '{project_name}' does not exist in '{user_local}'.")
494
+ if not os.path.exists(actual_project_dir):
495
+ if project_dir == ".":
496
+ print_error("Current directory is not a valid project directory.")
497
+ else:
498
+ print_error(
499
+ f"Project '{project_dir}' does not exist in '{settings.USER_WORKSPACE}'."
500
+ )
474
501
  return
475
502
 
476
503
  # Verify it's a fastkit project
477
- if not is_fastkit_project(project_dir):
478
- print_error(f"'{project_name}' is not a FastAPI-fastkit project.")
504
+ if not is_fastkit_project(actual_project_dir):
505
+ if project_dir == ".":
506
+ print_error("Current directory is not a FastAPI-fastkit project.")
507
+ else:
508
+ print_error(f"'{project_dir}' is not a FastAPI-fastkit project.")
479
509
  return
480
510
 
481
511
  # Validate route name
@@ -499,26 +529,34 @@ def addroute(ctx: Context, project_name: str, route_name: str) -> None:
499
529
  {
500
530
  "Project": project_name,
501
531
  "Route Name": route_name,
502
- "Target Directory": project_dir,
532
+ "Target Directory": actual_project_dir,
503
533
  },
504
534
  )
505
535
  console.print(table)
506
536
 
507
- # Confirm before proceeding
508
- confirm = click.confirm(
509
- f"\nDo you want to add route '{route_name}' to project '{project_name}'?",
510
- default=True,
511
- )
537
+ if project_dir == ".":
538
+ confirm_message = (
539
+ f"\nDo you want to add route '{route_name}' to the current project?"
540
+ )
541
+ else:
542
+ confirm_message = f"\nDo you want to add route '{route_name}' to project '{project_name}'?"
543
+
544
+ confirm = click.confirm(confirm_message, default=True)
512
545
  if not confirm:
513
546
  print_error("Operation cancelled!")
514
547
  return
515
548
 
516
549
  # Add the new route
517
- add_new_route(project_dir, route_name)
550
+ add_new_route(actual_project_dir, route_name)
518
551
 
519
- print_success(
520
- f"Successfully added new route '{route_name}' to project `{project_name}`"
521
- )
552
+ if project_dir == ".":
553
+ print_success(
554
+ f"Successfully added new route '{route_name}' to the current project!"
555
+ )
556
+ else:
557
+ print_success(
558
+ f"Successfully added new route '{route_name}' to project '{project_name}'!"
559
+ )
522
560
 
523
561
  except Exception as e:
524
562
  logger = get_logger()
@@ -30,6 +30,9 @@ class FastkitConfig:
30
30
  "setup.py",
31
31
  "src/setup.py",
32
32
  ],
33
+ "pyproject": [
34
+ "pyproject.toml",
35
+ ],
33
36
  "config": {
34
37
  "files": ["settings.py", "config.py"],
35
38
  "paths": [
@@ -0,0 +1,85 @@
1
+ [project]
2
+ name = "<project_name>"
3
+ version = "0.1.0"
4
+ description = "<description>"
5
+ authors = [
6
+ {name = "<author>", email = "<author_email>"},
7
+ ]
8
+ readme = "README.md"
9
+ license = "MIT"
10
+ requires-python = ">=3.9"
11
+ dependencies = [
12
+ "fastapi>=0.115.8",
13
+ "uvicorn[standard]>=0.34.0",
14
+ "pydantic>=2.10.6",
15
+ "pydantic-settings>=2.7.1",
16
+ "SQLAlchemy>=2.0.38",
17
+ "python-dotenv>=1.0.1",
18
+ "aiofiles>=24.1.0",
19
+ ]
20
+
21
+ [project.optional-dependencies]
22
+ dev = [
23
+ "pytest>=8.3.4",
24
+ "pytest-asyncio>=0.25.3",
25
+ "httpx>=0.28.1",
26
+ "black>=25.1.0",
27
+ "isort>=6.0.0",
28
+ "mypy>=1.15.0",
29
+ "PyYAML>=6.0.2",
30
+ ]
31
+
32
+ [dependency-groups]
33
+ dev = [
34
+ "pytest>=8.3.4",
35
+ "pytest-asyncio>=0.25.3",
36
+ "httpx>=0.28.1",
37
+ "black>=25.1.0",
38
+ "isort>=6.0.0",
39
+ "mypy>=1.15.0",
40
+ "PyYAML>=6.0.2",
41
+ ]
42
+
43
+ [build-system]
44
+ requires = ["hatchling"]
45
+ build-backend = "hatchling.build"
46
+
47
+ [tool.hatch.build.targets.wheel]
48
+ packages = ["src"]
49
+
50
+ [tool.black]
51
+ line-length = 88
52
+ target-version = ["py39"]
53
+ include = '\.pyi?$'
54
+ exclude = '''
55
+ /(
56
+ \.git
57
+ | \.venv
58
+ | \.mypy_cache
59
+ | \.pytest_cache
60
+ | __pycache__
61
+ | build
62
+ | dist
63
+ )/
64
+ '''
65
+
66
+ [tool.isort]
67
+ profile = "black"
68
+ multi_line_output = 3
69
+ line_length = 88
70
+ known_first_party = ["src"]
71
+
72
+ [tool.mypy]
73
+ python_version = "3.9"
74
+ strict = true
75
+ warn_return_any = true
76
+ warn_unused_configs = true
77
+ disallow_untyped_defs = true
78
+
79
+ [tool.pytest.ini_options]
80
+ testpaths = ["tests"]
81
+ python_files = ["test_*.py"]
82
+ python_classes = ["Test*"]
83
+ python_functions = ["test_*"]
84
+ addopts = "-v --tb=short"
85
+ asyncio_mode = "auto"
@@ -33,4 +33,4 @@ uvicorn==0.34.0
33
33
  uvloop==0.21.0
34
34
  watchfiles==1.0.4
35
35
  websockets==15.0
36
- aiofiles>=23.2.1
36
+ aiofiles>=24.1.0