instant-python 0.9.2__tar.gz → 0.11.0__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 (357) hide show
  1. {instant_python-0.9.2 → instant_python-0.11.0}/CHANGELOG.md +51 -0
  2. {instant_python-0.9.2 → instant_python-0.11.0}/PKG-INFO +1 -1
  3. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +11 -1
  4. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +4 -0
  5. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +9 -1
  6. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +4 -0
  7. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +5 -0
  8. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +16 -0
  9. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +14 -1
  10. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +19 -0
  11. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +14 -0
  12. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/domain_error.py +11 -0
  13. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +10 -0
  14. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +15 -0
  15. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +11 -0
  16. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +11 -0
  17. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +12 -0
  18. instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/required_value_error.py +11 -0
  19. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/application.py +10 -3
  20. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +14 -2
  21. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +4 -0
  22. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +4 -0
  23. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/github/release.yml +18 -9
  24. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/logger/file_logger.py +4 -0
  25. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +4 -0
  26. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +4 -0
  27. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +4 -0
  28. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/env.py +4 -0
  29. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +4 -0
  30. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +10 -2
  31. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +6 -0
  32. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +11 -0
  33. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/pyproject.toml +17 -0
  34. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/insert_template.py +3 -3
  35. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/makefile +4 -4
  36. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/aggregate.py +4 -0
  37. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/int_primitives_mother.py +4 -0
  38. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/int_value_object.py +8 -0
  39. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/string_primitives_mother.py +4 -0
  40. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/string_value_object.py +7 -0
  41. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/test_int_value_object.py +16 -0
  42. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/test_string_value_object.py +13 -0
  43. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/test_uuid_value_object.py +16 -0
  44. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/uuid.py +8 -0
  45. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/uuid_primitives_mother.py +4 -0
  46. instant_python-0.11.0/instant_python/templates/project_structure/makefile.yml.j2 +3 -0
  47. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/value_objects.yml.j2 +1 -1
  48. {instant_python-0.9.2 → instant_python-0.11.0}/pyproject.toml +9 -1
  49. instant_python-0.11.0/uv.lock +2105 -0
  50. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -6
  51. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -9
  52. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +0 -13
  53. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +0 -9
  54. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +0 -9
  55. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -9
  56. instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -9
  57. instant_python-0.9.2/instant_python/templates/project_structure/makefile.yml.j2 +0 -29
  58. instant_python-0.9.2/uv.lock +0 -1961
  59. {instant_python-0.9.2 → instant_python-0.11.0}/.github/FUNDING.yml +0 -0
  60. {instant_python-0.9.2 → instant_python-0.11.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  61. {instant_python-0.9.2 → instant_python-0.11.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  62. {instant_python-0.9.2 → instant_python-0.11.0}/.github/actions/python_setup/action.yml +0 -0
  63. {instant_python-0.9.2 → instant_python-0.11.0}/.github/pull_request_template.md +0 -0
  64. {instant_python-0.9.2 → instant_python-0.11.0}/.github/workflows/ci.yml +0 -0
  65. {instant_python-0.9.2 → instant_python-0.11.0}/.github/workflows/pages.yml +0 -0
  66. {instant_python-0.9.2 → instant_python-0.11.0}/.github/workflows/release.yml +0 -0
  67. {instant_python-0.9.2 → instant_python-0.11.0}/.gitignore +0 -0
  68. {instant_python-0.9.2 → instant_python-0.11.0}/.pre-commit-config.yaml +0 -0
  69. {instant_python-0.9.2 → instant_python-0.11.0}/.python-version +0 -0
  70. {instant_python-0.9.2 → instant_python-0.11.0}/CITATION.cff +0 -0
  71. {instant_python-0.9.2 → instant_python-0.11.0}/LICENSE +0 -0
  72. {instant_python-0.9.2 → instant_python-0.11.0}/README.md +0 -0
  73. {instant_python-0.9.2 → instant_python-0.11.0}/SECURITY.md +0 -0
  74. {instant_python-0.9.2 → instant_python-0.11.0}/codeql-config.yml +0 -0
  75. {instant_python-0.9.2 → instant_python-0.11.0}/docs/assets/favicon.svg +0 -0
  76. {instant_python-0.9.2 → instant_python-0.11.0}/docs/assets/logo.svg +0 -0
  77. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
  78. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
  79. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
  80. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/changes.md.j2 +0 -0
  81. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/first_release.md.j2 +0 -0
  82. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/macros.md.j2 +0 -0
  83. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
  84. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/.release_notes.md.j2 +0 -0
  85. {instant_python-0.9.2 → instant_python-0.11.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
  86. {instant_python-0.9.2 → instant_python-0.11.0}/docs/downloads_macro.py +0 -0
  87. {instant_python-0.9.2 → instant_python-0.11.0}/docs/examples/configuration.md +0 -0
  88. {instant_python-0.9.2 → instant_python-0.11.0}/docs/examples/custom_template.md +0 -0
  89. {instant_python-0.9.2 → instant_python-0.11.0}/docs/guide/command_config.md +0 -0
  90. {instant_python-0.9.2 → instant_python-0.11.0}/docs/guide/command_init.md +0 -0
  91. {instant_python-0.9.2 → instant_python-0.11.0}/docs/home/contributing.md +0 -0
  92. {instant_python-0.9.2 → instant_python-0.11.0}/docs/home/getting_started.md +0 -0
  93. {instant_python-0.9.2 → instant_python-0.11.0}/docs/home/index.md +0 -0
  94. {instant_python-0.9.2 → instant_python-0.11.0}/docs/home/releases.md +0 -0
  95. {instant_python-0.9.2 → instant_python-0.11.0}/docs/home/security.md +0 -0
  96. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/__init__.py +0 -0
  97. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/cli/__init__.py +0 -0
  98. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/cli/cli.py +0 -0
  99. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/cli/instant_python_typer.py +0 -0
  100. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/commands/__init__.py +0 -0
  101. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/commands/config.py +0 -0
  102. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/commands/init.py +1 -1
  103. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/__init__.py +0 -0
  104. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/configuration_schema.py +0 -0
  105. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/dependency/__init__.py +0 -0
  106. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/dependency/dependency_configuration.py +0 -0
  107. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/dependency/not_dev_dependency_included_in_group.py +0 -0
  108. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/general/__init__.py +0 -0
  109. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/general/general_configuration.py +0 -0
  110. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/general/invalid_dependency_manager_value.py +0 -0
  111. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/general/invalid_license_value.py +0 -0
  112. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/general/invalid_python_version_value.py +0 -0
  113. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/git/__init__.py +0 -0
  114. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/git/git_configuration.py +0 -0
  115. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/git/git_user_or_email_not_present.py +0 -0
  116. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/parser/__init__.py +0 -0
  117. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/parser/config_key_not_present.py +0 -0
  118. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/parser/configuration_file_not_found.py +0 -0
  119. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/parser/empty_configuration_not_allowed.py +0 -0
  120. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/parser/missing_mandatory_fields.py +0 -0
  121. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/parser/parser.py +0 -0
  122. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/__init__.py +0 -0
  123. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/boolean_question.py +0 -0
  124. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/choice_question.py +0 -0
  125. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/conditional_question.py +0 -0
  126. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/free_text_question.py +0 -0
  127. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/multiple_choice_question.py +0 -0
  128. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/question.py +0 -0
  129. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question/questionary.py +0 -0
  130. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/question_wizard.py +0 -0
  131. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/step/__init__.py +0 -0
  132. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/step/dependencies_step.py +0 -0
  133. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/step/general_step.py +0 -0
  134. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/step/git_step.py +0 -0
  135. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/step/steps.py +0 -0
  136. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/step/template_step.py +0 -0
  137. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/template/__init__.py +0 -0
  138. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/template/bounded_context_not_applicable.py +0 -0
  139. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/template/bounded_context_not_especified.py +0 -0
  140. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/template/invalid_built_in_features_values.py +0 -0
  141. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/template/invalid_template_value.py +0 -0
  142. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/configuration/template/template_configuration.py +0 -0
  143. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/__init__.py +0 -0
  144. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/command_execution_error.py +0 -0
  145. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/dependency_manager.py +0 -0
  146. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/dependency_manager_factory.py +0 -0
  147. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/pdm_dependency_manager.py +0 -0
  148. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/unknown_dependency_manager_error.py +0 -0
  149. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/dependency_manager/uv_dependency_manager.py +0 -0
  150. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/formatter/__init__.py +0 -0
  151. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/formatter/project_formatter.py +0 -0
  152. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/git/__init__.py +0 -0
  153. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/git/git_configurer.py +0 -0
  154. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/__init__.py +0 -0
  155. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/directory.py +0 -0
  156. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/file.py +0 -0
  157. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/file_has_not_been_created.py +0 -0
  158. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/file_system.py +0 -0
  159. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/node.py +0 -0
  160. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/project_creator/unknown_node_typer_error.py +0 -0
  161. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/__init__.py +0 -0
  162. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/custom_project_renderer.py +0 -0
  163. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/jinja_custom_filters.py +0 -0
  164. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/jinja_environment.py +0 -0
  165. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/jinja_project_renderer.py +0 -0
  166. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/template_file_not_found_error.py +0 -0
  167. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/render/unknown_template_error.py +0 -0
  168. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/__init__.py +0 -0
  169. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/application_error.py +0 -0
  170. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/error_types.py +0 -0
  171. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/supported_built_in_features.py +0 -0
  172. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/supported_licenses.py +0 -0
  173. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/supported_managers.py +0 -0
  174. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/supported_python_versions.py +0 -0
  175. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/shared/supported_templates.py +0 -0
  176. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/.gitignore +0 -0
  177. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -0
  178. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/.python-version +0 -0
  179. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
  180. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/LICENSE +0 -0
  181. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/README.md +0 -0
  182. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
  183. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  184. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
  185. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
  186. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
  187. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
  188. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
  189. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  190. /instant_python-0.9.2/instant_python/templates/boilerplate/exceptions/error.py → /instant_python-0.11.0/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
  191. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  192. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
  193. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
  194. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
  195. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
  196. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/github/ci.yml +0 -0
  197. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
  198. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
  199. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
  200. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
  201. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  202. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
  203. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  204. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
  205. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
  206. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
  207. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
  208. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  209. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/pytest.ini +0 -0
  210. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/random_generator.py +0 -0
  211. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
  212. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
  213. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
  214. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
  215. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
  216. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
  217. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
  218. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
  219. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
  220. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/__init__.py +0 -0
  221. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/validation.py +0 -0
  222. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/boilerplate/value_object/value_object.py +0 -0
  223. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/alembic_migrator.yml.j2 +0 -0
  224. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/async_alembic.yml.j2 +0 -0
  225. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/async_sqlalchemy.yml.j2 +0 -0
  226. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/citation.yml.j2 +0 -0
  227. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +0 -0
  228. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +0 -0
  229. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +0 -0
  230. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 +0 -0
  231. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +0 -0
  232. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +0 -0
  233. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +0 -0
  234. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/event_bus_domain.yml.j2 +0 -0
  235. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/event_bus_infra.yml.j2 +0 -0
  236. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/fastapi_app.yml.j2 +0 -0
  237. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/fastapi_domain.yml.j2 +0 -0
  238. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/fastapi_infra.yml.j2 +0 -0
  239. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/github_action.yml.j2 +0 -0
  240. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/github_issues_template.yml.j2 +0 -0
  241. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/gitignore.yml.j2 +0 -0
  242. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/license.yml.j2 +0 -0
  243. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/logger.yml.j2 +0 -0
  244. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/macros.j2 +0 -0
  245. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/mypy.yml.j2 +0 -0
  246. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/precommit_hook.yml.j2 +0 -0
  247. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/pyproject.yml.j2 +0 -0
  248. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/pytest.yml.j2 +0 -0
  249. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/python_version.yml.j2 +0 -0
  250. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/readme.yml.j2 +0 -0
  251. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/security.yml.j2 +0 -0
  252. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +0 -0
  253. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/standard_project/source.yml.j2 +0 -0
  254. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/standard_project/test.yml.j2 +0 -0
  255. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 +0 -0
  256. {instant_python-0.9.2 → instant_python-0.11.0}/instant_python/templates/project_structure/test_value_objects.yml.j2 +0 -0
  257. {instant_python-0.9.2 → instant_python-0.11.0}/makefile +0 -0
  258. {instant_python-0.9.2 → instant_python-0.11.0}/mkdocs.yml +0 -0
  259. {instant_python-0.9.2 → instant_python-0.11.0}/mypy.ini +0 -0
  260. {instant_python-0.9.2 → instant_python-0.11.0}/scripts/add_dependency.py +0 -0
  261. {instant_python-0.9.2 → instant_python-0.11.0}/scripts/remove_dependency.py +0 -0
  262. {instant_python-0.9.2 → instant_python-0.11.0}/test/__init__.py +0 -0
  263. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/__init__.py +0 -0
  264. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/dependency/__init__.py +0 -0
  265. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/dependency/dependency_configuration_mother.py +0 -0
  266. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/dependency/test_dependency_configuration.py +0 -0
  267. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/general/__init__.py +0 -0
  268. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/general/general_configuration_mother.py +0 -0
  269. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/general/test_general_configuration.py +0 -0
  270. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/git/__init__.py +0 -0
  271. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/git/git_configuration_mother.py +0 -0
  272. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/git/test_git_configuration.py +0 -0
  273. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/__init__.py +0 -0
  274. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/approvaltests_config.json +0 -0
  275. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/approved_files/TestParser.test_should_parse_configuration.approved.txt +0 -0
  276. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/__init__.py +0 -0
  277. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/config.yml +0 -0
  278. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/empty_config.yml +0 -0
  279. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/missing_dependencies_fields_config.yml +0 -0
  280. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/missing_general_fields_config.yml +0 -0
  281. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/missing_git_fields_config.yml +0 -0
  282. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/missing_keys_config.yml +0 -0
  283. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/resources/missing_template_fields_config.yml +0 -0
  284. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/parser/test_parser.py +0 -0
  285. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/question/__init__.py +0 -0
  286. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/question/test_boolean_question.py +0 -0
  287. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/question/test_choice_question.py +0 -0
  288. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/question/test_free_text_question.py +0 -0
  289. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/question/test_multiple_choice_question.py +0 -0
  290. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/template/__init__.py +0 -0
  291. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/template/template_configuration_mother.py +0 -0
  292. {instant_python-0.9.2 → instant_python-0.11.0}/test/configuration/template/test_template_configuration.py +0 -0
  293. {instant_python-0.9.2 → instant_python-0.11.0}/test/dependency_manager/__init__.py +0 -0
  294. {instant_python-0.9.2 → instant_python-0.11.0}/test/dependency_manager/mock_pdm_dependency_manager.py +0 -0
  295. {instant_python-0.9.2 → instant_python-0.11.0}/test/dependency_manager/mock_uv_dependency_manager.py +0 -0
  296. {instant_python-0.9.2 → instant_python-0.11.0}/test/dependency_manager/test_pdm_dependency_manager.py +0 -0
  297. {instant_python-0.9.2 → instant_python-0.11.0}/test/dependency_manager/test_uv_dependency_manager.py +0 -0
  298. {instant_python-0.9.2 → instant_python-0.11.0}/test/formatter/__init__.py +0 -0
  299. {instant_python-0.9.2 → instant_python-0.11.0}/test/formatter/mock_project_formatter.py +0 -0
  300. {instant_python-0.9.2 → instant_python-0.11.0}/test/formatter/test_project_formatter.py +0 -0
  301. {instant_python-0.9.2 → instant_python-0.11.0}/test/git/__init__.py +0 -0
  302. {instant_python-0.9.2 → instant_python-0.11.0}/test/git/mock_git_configurer.py +0 -0
  303. {instant_python-0.9.2 → instant_python-0.11.0}/test/git/test_git_configurer.py +0 -0
  304. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/__init__.py +0 -0
  305. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approvaltests_config.json +0 -0
  306. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_custom_project_structure.json.approved.txt +0 -0
  307. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure.json.approved.txt +0 -0
  308. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_fastapi_with_logger.json.approved.txt +0 -0
  309. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_fastapi_with_migrator.json.approved.txt +0 -0
  310. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_only_with_fastapi.json.approved.txt +0 -0
  311. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_folders_and_files.approved.txt +0 -0
  312. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/approved_files/TestFileSystem.test_should_generate_file_system_tree.approved.txt +0 -0
  313. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/directory_mother.py +0 -0
  314. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/exceptions/domain_error.py +0 -0
  315. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/exceptions/domain_error_simple.py +0 -0
  316. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/fastapi/__init__.py +0 -0
  317. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/fastapi/application.py +0 -0
  318. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/fastapi/http_response.py +0 -0
  319. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/fastapi/lifespan.py +0 -0
  320. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/logger/__init__.py +0 -0
  321. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/logger/logger.py +0 -0
  322. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/boilerplate/persistence/alembic_migrator.py +0 -0
  323. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/clean_architecture/main_structure.yml.j2 +0 -0
  324. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/config.yml +0 -0
  325. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/config_fastapi_with_logger.yml +0 -0
  326. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/config_fastapi_with_migrator.yml +0 -0
  327. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/config_with_only_fastapi.yml +0 -0
  328. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/rendered_custom_project_structure.json +0 -0
  329. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/rendered_project_structure.json +0 -0
  330. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/rendered_project_structure_fastapi_with_logger.json +0 -0
  331. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/rendered_project_structure_fastapi_with_migrator.json +0 -0
  332. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/resources/rendered_project_structure_only_with_fastapi.json +0 -0
  333. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/test_directory.py +0 -0
  334. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/test_file.py +0 -0
  335. {instant_python-0.9.2 → instant_python-0.11.0}/test/project_creator/test_file_system.py +0 -0
  336. {instant_python-0.9.2 → instant_python-0.11.0}/test/random_generator.py +0 -0
  337. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/__init__.py +0 -0
  338. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approvaltests_config.json +0 -0
  339. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approved_files/TestCustomProjectRenderer.test_should_render_custom_template.approved.txt +0 -0
  340. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.clean_architecture_config.yml.approved.txt +0 -0
  341. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.domain_driven_design_config.yml.approved.txt +0 -0
  342. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.received.txt +0 -0
  343. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.standard_project_with_dependency_config.yml.approved.txt +0 -0
  344. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.standard_project_with_git_config.yml.approved.txt +0 -0
  345. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/clean_architecture/main_structure.yml.j2 +0 -0
  346. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/clean_architecture_config.yml +0 -0
  347. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/custom_template.yml +0 -0
  348. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/domain_driven_design/main_structure.yml.j2 +0 -0
  349. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/domain_driven_design_config.yml +0 -0
  350. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/standard_project/main_structure.yml.j2 +0 -0
  351. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/standard_project_with_dependency_config.yml +0 -0
  352. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/standard_project_with_git_config.yml +0 -0
  353. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/resources/test_template.j2 +0 -0
  354. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/test_custom_project_renderer.py +0 -0
  355. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/test_jinja_environment.py +0 -0
  356. {instant_python-0.9.2 → instant_python-0.11.0}/test/render/test_jinja_project_renderer.py +0 -0
  357. {instant_python-0.9.2 → instant_python-0.11.0}/tox.ini +0 -0
@@ -1,5 +1,56 @@
1
1
  # CHANGELOG
2
2
 
3
+ <!-- version list -->
4
+
5
+ ## v0.11.0 (2025-09-30)
6
+
7
+ ### ✨ Features
8
+
9
+ - **templates**: Add ruff linter and formatter rules in pyproject.toml template file
10
+ ([`b600f62`](https://github.com/dimanu-py/instant-python/commit/b600f62ab807d0ed5309ee199fd6b772dad55317))
11
+
12
+ ### 🪲 Bug Fixes
13
+
14
+ - **templates**: Correct imports when selected template was standard project
15
+ ([`4d8bda4`](https://github.com/dimanu-py/instant-python/commit/4d8bda4fb246a59e5556c78b5317845614e3f8b5))
16
+
17
+ ### ♻️ Refactoring
18
+
19
+ - **templates**: Modify makefile template file simplifying add-dep and remove-dep commands
20
+ ([`eb883f3`](https://github.com/dimanu-py/instant-python/commit/eb883f31aba41faf8b38908317ea02b53e700874))
21
+
22
+ - **templates**: Rename template file for base error
23
+ ([`3a30d3d`](https://github.com/dimanu-py/instant-python/commit/3a30d3d3533bc88fe70f0822f204d34e3ad4280a))
24
+
25
+ - **commands**: Move ipy configuration file to project folder before creating first commit
26
+ ([`8997e98`](https://github.com/dimanu-py/instant-python/commit/8997e984b2384e70ca2418e4cf7eb21aa3d7bdad))
27
+
28
+
29
+ ## v0.10.0 (2025-09-30)
30
+
31
+ ### ✨ Features
32
+
33
+ - **templates**: Add 'changelog_file' entry to semantic release section in pyproject template to
34
+ avoid warning
35
+ ([`0a80d5a`](https://github.com/dimanu-py/instant-python/commit/0a80d5a4dc1cec80259d4d6e9ba0ac0a9581fc6a))
36
+
37
+ ### 🪲 Bug Fixes
38
+
39
+ - **templates**: Correct errors import in fastapi application template
40
+ ([`e42cfbb`](https://github.com/dimanu-py/instant-python/commit/e42cfbb0116fa52596be60121a27bb6ee39e10cf))
41
+
42
+ - **templates**: Correct errors in release.yml template
43
+ ([`65b96f0`](https://github.com/dimanu-py/instant-python/commit/65b96f0a0c890e18e597fb4edc4c8402b733d84d))
44
+
45
+ ### ⚙️ Build System
46
+
47
+ - Add 'dev' dependency group for improved development workflow
48
+ ([`37d4c25`](https://github.com/dimanu-py/instant-python/commit/37d4c250696c07cb22b8a594b5d68309a1659c83))
49
+
50
+ - Update dependencies
51
+ ([`31572ab`](https://github.com/dimanu-py/instant-python/commit/31572ab38b253abfee97f3e8926499e0a8f57a00))
52
+
53
+
3
54
  ## v0.9.1 (2025-07-18)
4
55
 
5
56
  ### 🪲 Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instant-python
3
- Version: 0.9.2
3
+ Version: 0.11.0
4
4
  Summary: Instant boilerplate generation for Python projects
5
5
  Project-URL: documentation, https://dimanu-py.github.io/instant-python/
6
6
  Project-URL: repository, https://github.com/dimanu-py/instant-python/
@@ -1,13 +1,23 @@
1
1
  {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
2
  import json
3
3
 
4
+ {% if template_domain_import %}
4
5
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
5
6
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event_subscriber import (
6
7
  DomainEventSubscriber,
7
8
  )
8
- from {{ general.source_name }}.{{ template_domain_import }}.exceptions.domain_event_type_not_found_error import (
9
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_event_type_not_found_error import (
9
10
  DomainEventTypeNotFoundError,
10
11
  )
12
+ {% else %}
13
+ from {{ general.source_name }}.event.domain_event import DomainEvent
14
+ from {{ general.source_name }}.event.domain_event_subscriber import (
15
+ DomainEventSubscriber,
16
+ )
17
+ from {{ general.source_name }}.errors.domain_event_type_not_found_error import (
18
+ DomainEventTypeNotFoundError,
19
+ )
20
+ {% endif %}
11
21
 
12
22
 
13
23
  class DomainEventJsonDeserializer:
@@ -1,7 +1,11 @@
1
1
  {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
2
  import json
3
3
 
4
+ {% if template_domain_import %}
4
5
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
6
+ {% else %}
7
+ from {{ general.source_name }}.event.domain_event import DomainEvent
8
+ {% endif %}
5
9
 
6
10
 
7
11
  class DomainEventJsonSerializer:
@@ -2,7 +2,11 @@
2
2
  {% if pythono_version in ["3.12", "3.13"] %}
3
3
  from abc import ABC, abstractmethod
4
4
 
5
+ {% if template_domain_import %}
5
6
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
7
+ {% else %}
8
+ from {{ general.source_name }}.event.domain_event import DomainEvent
9
+ {% endif %}
6
10
 
7
11
 
8
12
  class DomainEventSubscriber[EventType: DomainEvent](ABC):
@@ -18,7 +22,11 @@ class DomainEventSubscriber[EventType: DomainEvent](ABC):
18
22
  from abc import ABC, abstractmethod
19
23
  from typing import Generic, TypeVar
20
24
 
21
- from {{ source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
25
+ {% if template_domain_import %}
26
+ from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
27
+ {% else %}
28
+ from {{ general.source_name }}.event.domain_event import DomainEvent
29
+ {% endif %}
22
30
 
23
31
  EventType = TypeVar("EventType", bound=DomainEvent)
24
32
 
@@ -1,7 +1,11 @@
1
1
  {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
2
  from abc import ABC, abstractmethod
3
3
 
4
+ {% if template_domain_import %}
4
5
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
6
+ {% else %}
7
+ from {{ general.source_name }}.event.domain_event import DomainEvent
8
+ {% endif %}
5
9
 
6
10
 
7
11
  class EventBus(ABC):
@@ -1,8 +1,13 @@
1
1
  {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
2
  from unittest.mock import AsyncMock
3
3
 
4
+ {% if template_domain_import %}
4
5
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
5
6
  from {{ general.source_name }}.{{ template_domain_import }}.event.event_bus import EventBus
7
+ {% else %}
8
+ from {{ general.source_name }}.event.domain_event import DomainEvent
9
+ from {{ general.source_name }}.event.event_bus import EventBus
10
+ {% endif %}
6
11
 
7
12
 
8
13
  class MockEventBus(EventBus):
@@ -1,16 +1,32 @@
1
1
  {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
2
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
3
3
 
4
+ {% if template_domain_import %}
4
5
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
5
6
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event_subscriber import (
6
7
  DomainEventSubscriber,
7
8
  )
9
+ {% else %}
10
+ from {{ general.source_name }}.event.domain_event import DomainEvent
11
+ from {{ general.source_name }}.event.domain_event_subscriber import (
12
+ DomainEventSubscriber,
13
+ )
14
+ {% endif %}
15
+ {% if template_infra_import %}
8
16
  from {{ general.source_name }}.{{ template_infra_import }}.event.rabbit_mq.rabbit_mq_connection import (
9
17
  RabbitMqConnection,
10
18
  )
11
19
  from {{ general.source_name }}.{{ template_infra_import }}.event.rabbit_mq.rabbit_mq_queue_formatter import (
12
20
  RabbitMqQueueFormatter,
13
21
  )
22
+ {% else %}
23
+ from {{ general.source_name }}.event.rabbit_mq.rabbit_mq_connection import (
24
+ RabbitMqConnection,
25
+ )
26
+ from {{ general.source_name }}.event.rabbit_mq.rabbit_mq_queue_formatter import (
27
+ RabbitMqQueueFormatter,
28
+ )
29
+ {% endif %}
14
30
 
15
31
 
16
32
  class RabbitMqConfigurer:
@@ -5,13 +5,26 @@ from typing import Callable
5
5
  import pika
6
6
  from pika.adapters.blocking_connection import BlockingChannel
7
7
 
8
+ {% if template_domain_import %}
8
9
  from {{ general.source_name }}.{{ template_domain_import }}.event.exchange_type import ExchangeType
9
- from {{ general.source_name }}.{{ template_domain_import }}.exceptions.rabbit_mq_connection_not_established_error import (
10
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.rabbit_mq_connection_not_established_error import (
10
11
  RabbitMqConnectionNotEstablishedError,
11
12
  )
13
+ {% else %}
14
+ from {{ general.source_name }}.event.exchange_type import ExchangeType
15
+ from {{ general.source_name }}.errors.rabbit_mq_connection_not_established_error import (
16
+ RabbitMqConnectionNotEstablishedError,
17
+ )
18
+ {% endif %}
19
+ {% if template_infra_import %}
12
20
  from {{ general.source_name }}.{{ template_infra_import }}.event.rabbit_mq.rabbit_mq_settings import (
13
21
  RabbitMqSettings,
14
22
  )
23
+ {% else %}
24
+ from {{ general.source_name }}.event.rabbit_mq.rabbit_mq_settings import (
25
+ RabbitMqSettings,
26
+ )
27
+ {% endif %}
15
28
 
16
29
 
17
30
  class RabbitMqConnection:
@@ -3,10 +3,18 @@
3
3
  from pika.adapters.blocking_connection import BlockingChannel
4
4
  from pika.spec import Basic, BasicProperties
5
5
 
6
+ {% if template_domain_import %}
6
7
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
7
8
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event_subscriber import (
8
9
  DomainEventSubscriber,
9
10
  )
11
+ {% else %}
12
+ from {{ general.source_name }}.event.domain_event import DomainEvent
13
+ from {{ general.source_name }}.event.domain_event_subscriber import (
14
+ DomainEventSubscriber,
15
+ )
16
+ {% endif %}
17
+ {% if template_infra_import %}
10
18
  from {{ general.source_name }}.{{ template_infra_import }}.event.domain_event_json_deserializer import (
11
19
  DomainEventJsonDeserializer,
12
20
  )
@@ -16,6 +24,17 @@ from {{ general.source_name }}.{{ template_infra_import }}.event.rabbit_mq.rabbi
16
24
  from {{ general.source_name }}.{{ template_infra_import }}.event.rabbit_mq.rabbit_mq_queue_formatter import (
17
25
  RabbitMqQueueFormatter,
18
26
  )
27
+ {% else %}
28
+ from {{ general.source_name }}.event.domain_event_json_deserializer import (
29
+ DomainEventJsonDeserializer,
30
+ )
31
+ from {{ general.source_name }}.event.rabbit_mq.rabbit_mq_connection import (
32
+ RabbitMqConnection,
33
+ )
34
+ from {{ general.source_name }}.event.rabbit_mq.rabbit_mq_queue_formatter import (
35
+ RabbitMqQueueFormatter,
36
+ )
37
+ {% endif %}
19
38
 
20
39
 
21
40
  class RabbitMqConsumer:
@@ -1,13 +1,27 @@
1
1
  {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
2
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
3
+ {% if template_domain_import %}
3
4
  from {{ general.source_name }}.{{ template_domain_import }}.event.domain_event import DomainEvent
4
5
  from {{ general.source_name }}.{{ template_domain_import }}.event.event_bus import EventBus
6
+ {% else %}
7
+ from {{ general.source_name }}.event.domain_event import DomainEvent
8
+ from {{ general.source_name }}.event.event_bus import EventBus
9
+ {% endif %}
10
+ {% if template_infra_import %}
5
11
  from {{ general.source_name }}.{{ template_infra_import }}.event.domain_event_json_serializer import (
6
12
  DomainEventJsonSerializer,
7
13
  )
8
14
  from {{ general.source_name }}.{{ template_infra_import }}.event.rabbit_mq.rabbit_mq_connection import (
9
15
  RabbitMqConnection,
10
16
  )
17
+ {% else %}
18
+ from {{ general.source_name }}.event.domain_event_json_serializer import (
19
+ DomainEventJsonSerializer,
20
+ )
21
+ from {{ general.source_name }}.event.rabbit_mq.rabbit_mq_connection import (
22
+ RabbitMqConnection,
23
+ )
24
+ {% endif %}
11
25
 
12
26
 
13
27
  class RabbitMqEventBus(EventBus):
@@ -0,0 +1,11 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ {% if template_infra_import %}
3
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.base_error import BaseError
4
+ {% else %}
5
+ from {{ general.source_name }}.errors.base_error import BaseError
6
+ {% endif %}
7
+
8
+
9
+ class DomainError(Error):
10
+ ...
11
+
@@ -0,0 +1,10 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ {% if template_domain_import %}
3
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
4
+ {% else %}
5
+ from {{ general.source_name }}.errors.domain_error import DomainError
6
+ {% endif %}
7
+
8
+ class DomainEventTypeNotFoundError(DomainError):
9
+ def __init__(self, name: str) -> None:
10
+ super().__init__(message=f"Event type {name} not found among subscriber.", error_type="domain_event_type_not_found",)
@@ -0,0 +1,15 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ from typing import TypeVar
3
+
4
+ {% if template_domain_import %}
5
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
6
+ {% else %}
7
+ from {{ general.source_name }}.errors.domain_error import DomainError
8
+ {% endif %}
9
+
10
+ T = TypeVar("T")
11
+
12
+
13
+ class IncorrectValueTypeError(DomainError):
14
+ def __init__(self, value: T) -> None:
15
+ super().__init__(message=f"Value '{value}' is not of type {type(value).__name__}", error_type="incorrect_value_type", )
@@ -0,0 +1,11 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ {% if template_domain_import %}
3
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
4
+ {% else %}
5
+ from {{ general.source_name }}.errors.domain_error import DomainError
6
+ {% endif %}
7
+
8
+
9
+ class InvalidIdFormatError(DomainError):
10
+ def __init__(self) -> None:
11
+ super().__init__(message="User id must be a valid UUID", error_type="invalid_id_format",)
@@ -0,0 +1,11 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ {% if template_domain_import %}
3
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
4
+ {% else %}
5
+ from {{ general.source_name }}.errors.domain_error import DomainError
6
+ {% endif %}
7
+
8
+
9
+ class InvalidNegativeValueError(DomainError):
10
+ def __init__(self, value: int) -> None:
11
+ super().__init__(message=f"Invalid negative value: {value}", error_type="invalid_negative_value",)
@@ -0,0 +1,12 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ {% if template_domain_import %}
3
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
4
+ {% else %}
5
+ from {{ general.source_name }}.errors.domain_error import DomainError
6
+ {% endif %}
7
+
8
+
9
+
10
+ class RabbitMqConnectionNotEstablishedError(DomainError):
11
+ def __init__(self) -> None:
12
+ super().__init__(message="RabbitMQ connection not established.", error_type="rabbit_mq_connection",)
@@ -0,0 +1,11 @@
1
+ {% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
2
+ {% if template_domain_import %}
3
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
4
+ {% else %}
5
+ from {{ general.source_name }}.errors.domain_error import DomainError
6
+ {% endif %}
7
+
8
+
9
+ class RequiredValueError(DomainError):
10
+ def __init__(self) -> None:
11
+ super().__init__(message="Value is required, can't be None", error_type="required_value",)
@@ -2,7 +2,7 @@
2
2
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
3
3
  from fastapi import FastAPI
4
4
  {% if "logger" in template.built_in_features %}
5
- from fastapi.exceptions import RequestValidationError
5
+ from fastapi.errors import RequestValidationError
6
6
  {% endif %}
7
7
 
8
8
  {% if template.name == template_types.STANDARD %}
@@ -40,9 +40,17 @@ from {{ general.source_name }}.api.lifespan import lifespan
40
40
  from {{ general.source_name }}.delivery.api.lifespan import lifespan
41
41
  {% endif %}
42
42
  {% endif %}
43
- from {{ general.source_name }}.{{ template_domain_import }}.exceptions.domain_error import DomainError
43
+ {% if template_domain_import %}
44
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
45
+ {% else %}
46
+ from {{ general.source_name }}.errors.domain_error import DomainError
47
+ {% endif %}
44
48
  {% if "logger" in template.built_in_features %}
49
+ {% if template_infra_import %}
45
50
  from {{ general.source_name }}.{{ template_infra_import }}.logger.file_logger import create_file_logger
51
+ {% else %}
52
+ from {{ general.source_name }}.logger.file_logger import create_file_logger
53
+ {% endif %}
46
54
  {% if template.name == template_types.STANDARD %}
47
55
  from {{ general.source_name }}.api.middleare.fast_api_log_middleware import FastapiLogMiddleware
48
56
  {% else %}
@@ -65,4 +73,3 @@ app.add_exception_handler(RequestValidationError, validation_error_handler)
65
73
  {% endif %}
66
74
  app.add_exception_handler(Exception, unexpected_exception_handler)
67
75
  app.add_exception_handler(DomainError, domain_error_handler)
68
-
@@ -3,12 +3,24 @@
3
3
  from fastapi import Request
4
4
  from fastapi.responses import JSONResponse
5
5
  {% if "logger" in template.built_in_features %}
6
- from fastapi.exceptions import RequestValidationError
6
+ from fastapi.errors import RequestValidationError
7
7
  from fastapi.exception_handlers import request_validation_exception_handler
8
+ {% if template_infra_import %}
8
9
  from {{ general.source_name }}.{{ template_infra_import }}.logger.file_logger import create_file_logger
10
+ {% else %}
11
+ from {{ general.source_name }}.logger.file_logger import create_file_logger
12
+ {% endif %}
9
13
  {% endif %}
14
+ {% if template_infra_import %}
10
15
  from {{ general.source_name }}.{{ template_infra_import }}.http.error_response import InternalServerError, UnprocessableEntityError
11
- from {{ general.source_name }}.{{ template_domain_import }}.exceptions.domain_error import DomainError
16
+ {% else %}
17
+ from {{ general.source_name }}.http.error_response import InternalServerError, UnprocessableEntityError
18
+ {% endif %}
19
+ {% if template_domain_import %}
20
+ from {{ general.source_name }}.{{ template_domain_import }}.errors.domain_error import DomainError
21
+ {% else %}
22
+ from {{ general.source_name }}.errors.domain_error import DomainError
23
+ {% endif %}
12
24
 
13
25
 
14
26
  {% if "logger" in template.built_in_features %}
@@ -4,7 +4,11 @@ import time
4
4
  from fastapi import Request, Response, FastAPI
5
5
  from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
6
6
 
7
+ {% if template_infra_import %}
7
8
  from {{ general.source_name }}.{{ template_infra_import }}.logger.file_logger import FileLogger
9
+ {% else %}
10
+ from {{ general.source_name }}.logger.file_logger import FileLogger
11
+ {% endif %}
8
12
 
9
13
 
10
14
  class FastapiLogMiddleware(BaseHTTPMiddleware):
@@ -4,7 +4,11 @@ from contextlib import asynccontextmanager
4
4
 
5
5
  from fastapi import FastAPI
6
6
 
7
+ {% if template_infra_import %}
7
8
  from {{ general.source_name }}.{{ template_infra_import }}.alembic_migrator import AlembicMigrator
9
+ {% else %}
10
+ from {{ general.source_name }}.alembic_migrator import AlembicMigrator
11
+ {% endif %}
8
12
 
9
13
 
10
14
  @asynccontextmanager
@@ -20,8 +20,10 @@ jobs:
20
20
  permissions:
21
21
  contents: write
22
22
  outputs:
23
- released: ${{ steps.released.outputs.released }}
24
- tag: ${{ steps.released.outputs.tag }}
23
+ released: {% raw %}${{ steps.released.outputs.released }}{% endraw %}
24
+
25
+ tag: {% raw %}${{ steps.released.outputs.tag }}{% endraw %}
26
+
25
27
 
26
28
  steps:
27
29
  - name: 🛡️ Harden runner
@@ -46,17 +48,23 @@ jobs:
46
48
  tag: true
47
49
  vcs_release: true
48
50
  config_file: pyproject.toml
49
- github_token: ${{ secrets.GITHUB_TOKEN }}
50
- git_committer_email: ${{ vars.GIT_COMMITTER_EMAIL }}
51
- git_committer_name: ${{ vars.GIT_COMMITTER_NAME }}
52
- ssh_public_signing_key: ${{ vars.SSH_PUBLIC_SIGNING_KEY }}
53
- ssh_private_signing_key: ${{ secrets.SSH_PRIVATE_SIGNING_KEY }}
51
+ github_token: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %}
52
+
53
+ git_committer_email: {% raw %}${{ vars.GIT_COMMITTER_EMAIL }}{% endraw %}
54
+
55
+ git_committer_name: {% raw %}${{ vars.GIT_COMMITTER_NAME }}{% endraw %}
56
+
57
+ ssh_public_signing_key: {% raw %}${{ vars.SSH_PUBLIC_SIGNING_KEY }}{% endraw %}
58
+
59
+ ssh_private_signing_key: {% raw %}${{ secrets.SSH_PRIVATE_SIGNING_KEY }}{% endraw %}
60
+
54
61
 
55
62
  build-and-publish:
56
63
  name: Publish to PyPI
57
64
  needs:
58
65
  - release
59
- if: needs.release.outputs.released == 'true'
66
+ if: {% raw %}needs.release.outputs.released == 'true'{% endraw %}
67
+
60
68
  runs-on: ubuntu-latest
61
69
  environment: release
62
70
  permissions:
@@ -73,7 +81,8 @@ jobs:
73
81
  with:
74
82
  fetch-depth: 0
75
83
  persist-credentials: false
76
- ref: refs/tags/${{ needs.release.outputs.tag }}
84
+ ref: refs/tags/{% raw %}${{ needs.release.outputs.tag }}{% endraw %}
85
+
77
86
 
78
87
  - name: 🛠️ Setup environment
79
88
  uses: ./.github/actions/python_setup
@@ -1,7 +1,11 @@
1
1
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
2
2
  import logging
3
3
 
4
+ {% if template_infra_import %}
4
5
  from {{ general.source_name }}.{{ template_infra_import }}.logger.file_rotating_handler import TimeRotatingFileHandler
6
+ {% else %}
7
+ from {{ general.source_name }}.logger.file_rotating_handler import TimeRotatingFileHandler
8
+ {% endif %}
5
9
 
6
10
 
7
11
  class FileLogger:
@@ -6,7 +6,11 @@ from logging.handlers import TimedRotatingFileHandler
6
6
  from pathlib import Path
7
7
  from typing import Self
8
8
 
9
+ {% if template_infra_import %}
9
10
  from {{ general.source_name }}.{{ template_infra_import }}.logger.json_formatter import JSONFormatter
11
+ {% else %}
12
+ from {{ general.source_name }}.logger.json_formatter import JSONFormatter
13
+ {% endif %}
10
14
 
11
15
 
12
16
  class TimeRotatingFileHandler(logging.Handler):
@@ -1,7 +1,11 @@
1
1
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
2
2
  import asyncio
3
3
 
4
+ {% if template_infra_import %}
4
5
  from {{ general.source_name }}.{{ template_infra_import }}.persistence.sqlalchemy.postgres_settings import PostgresSettings
6
+ {% else %}
7
+ from {{ general.source_name }}.persistence.sqlalchemy.postgres_settings import PostgresSettings
8
+ {% endif %}
5
9
  from alembic import command
6
10
  from alembic.config import Config
7
11
 
@@ -3,7 +3,11 @@ from collections.abc import AsyncGenerator
3
3
  import pytest
4
4
  from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine
5
5
 
6
+ {% if template_infra_import %}
6
7
  from {{ general.source_name }}.{{ template_infra_import }}.persistence.sqlalchemy.postgres_settings import PostgresSettings
8
+ {% else %}
9
+ from {{ general.source_name }}.persistence.sqlalchemy.postgres_settings import PostgresSettings
10
+ {% endif %}
7
11
 
8
12
 
9
13
  @pytest.fixture
@@ -8,7 +8,11 @@ from sqlalchemy.engine import Connection
8
8
  from sqlalchemy.ext.asyncio import async_engine_from_config
9
9
 
10
10
  from migrations.models_metadata import base
11
+ {% if template_infra_import %}
11
12
  from {{ general.source_name }}.{{ template_infra_import }}.persistence.sqlalchemy.postgres_settings import PostgresSettings
13
+ {% else %}
14
+ from {{ general.source_name }}.persistence.sqlalchemy.postgres_settings import PostgresSettings
15
+ {% endif %}
12
16
 
13
17
  # this is the Alembic Config object, which provides
14
18
  # access to the values within the .ini file in use.
@@ -6,6 +6,10 @@ have already been imported. To keep the env.py file clean, we import the Base.me
6
6
  needed models.
7
7
  """
8
8
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
9
+ {% if template_infra_import %}
9
10
  from {{ general.source_name }}.{{ template_infra_import }}.persistence.sqlalchemy.base import Base
11
+ {% else %}
12
+ from {{ general.source_name }}.persistence.sqlalchemy.base import Base
13
+ {% endif %}
10
14
 
11
15
  base = Base
@@ -2,9 +2,17 @@
2
2
  {% set template_infra_import = "shared.infra"|compute_base_path(template.name) %}
3
3
  from typing import TypeVar
4
4
 
5
+ {% if template_domain_import %}
5
6
  from {{ general.source_name }}.{{ template_domain_import }}.value_objects.uuid import Uuid
7
+ {% else %}
8
+ from {{ general.source_name }}.value_objects.uuid import Uuid
9
+ {% endif %}
10
+ {% if template_infra_import %}
6
11
  from {{ general.source_name }}.{{ template_infra_import }}.persistence.sqlalchemy.base import Base
7
- from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, asynce_sessionmaker
12
+ {% else %}
13
+ from {{ general.source_name }}.persistence.sqlalchemy.base import Base
14
+ {% endif %}
15
+ from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, async_sessionmaker
8
16
 
9
17
 
10
18
  Entity = TypeVar("Entity")
@@ -12,7 +20,7 @@ Entity = TypeVar("Entity")
12
20
 
13
21
  class SqlalchemyRepository[Model: Base]:
14
22
  _model_class: type[Model]
15
- _session_maker: asynce_sessionmaker[AssyncSession]
23
+ _session_maker: async_sessionmaker[AssyncSession]
16
24
 
17
25
  def __init__(self, engine: AsyncEngine, model_class: type[Model]) -> None:
18
26
  self._session_maker = async_sessionmaker(bind=engine)
@@ -2,9 +2,15 @@
2
2
  from sqlalchemy import create_engine, Engine
3
3
  from sqlalchemy.orm import sessionmaker, Session
4
4
 
5
+ {% if template_infra_import %}
5
6
  from {{ general.source_name }}.{{ template_infra_import }}.persistence.sqlalchemy.base import (
6
7
  Base,
7
8
  )
9
+ {% else %}
10
+ from {{ general.source_name }}.persistence.sqlalchemy.base import (
11
+ Base,
12
+ )
13
+ {% endif %}
8
14
 
9
15
 
10
16
  class SessionMaker: