instant-python 0.19.0__tar.gz → 0.19.1__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 (328) hide show
  1. {instant_python-0.19.0 → instant_python-0.19.1}/CHANGELOG.md +115 -0
  2. {instant_python-0.19.0 → instant_python-0.19.1}/PKG-INFO +1 -1
  3. instant_python-0.19.1/instant_python/__init__.py +1 -0
  4. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +2 -1
  5. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/pyproject.toml +1 -1
  6. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/application.yml.j2 +3 -0
  7. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml.j2 +8 -0
  8. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/domain.yml.j2 +10 -0
  9. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/infra.yml.j2 +12 -0
  10. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml.j2 +3 -0
  11. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml.j2 +3 -0
  12. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml.j2 +3 -0
  13. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml.j2 +9 -0
  14. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +38 -0
  15. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +9 -0
  16. instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +9 -0
  17. {instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design → instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers}/bounded_context.yml.j2 +0 -3
  18. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml.j2 +8 -0
  19. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml.j2 +18 -0
  20. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml.j2 +10 -0
  21. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml.j2 +12 -0
  22. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml.j2 +8 -0
  23. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml.j2 +3 -0
  24. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml.j2 +3 -0
  25. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml.j2 +9 -0
  26. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +38 -0
  27. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +10 -0
  28. instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +9 -0
  29. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/events}/event_bus_domain.yml.j2 +0 -8
  30. instant_python-0.19.1/instant_python/templates/project_structure/events/mock_event_bus.yml.j2 +4 -0
  31. instant_python-0.19.1/instant_python/templates/project_structure/macros.j2 +73 -0
  32. instant_python-0.19.1/instant_python/templates/project_structure/persistence/alembic_migrator.yml.j2 +6 -0
  33. instant_python-0.19.1/instant_python/templates/project_structure/persistence/async_engine_conftest.yml.j2 +4 -0
  34. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/persistence}/async_sqlalchemy.yml.j2 +1 -1
  35. instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/source_features.yml.j2 +13 -0
  36. instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml.j2 +6 -0
  37. instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/test_features.yml.j2 +6 -0
  38. instant_python-0.19.1/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +38 -0
  39. instant_python-0.19.1/instant_python/templates/project_structure/standard_project/source.yml.j2 +5 -0
  40. instant_python-0.19.1/instant_python/templates/project_structure/standard_project/test.yml.j2 +5 -0
  41. {instant_python-0.19.0 → instant_python-0.19.1}/pyproject.toml +1 -1
  42. {instant_python-0.19.0 → instant_python-0.19.1}/uv.lock +1 -1
  43. instant_python-0.19.0/instant_python/__init__.py +0 -1
  44. instant_python-0.19.0/instant_python/templates/project_structure/alembic_migrator.yml.j2 +0 -6
  45. instant_python-0.19.0/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +0 -39
  46. instant_python-0.19.0/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +0 -51
  47. instant_python-0.19.0/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +0 -36
  48. instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +0 -39
  49. instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +0 -57
  50. instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +0 -36
  51. instant_python-0.19.0/instant_python/templates/project_structure/macros.j2 +0 -6
  52. instant_python-0.19.0/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +0 -39
  53. instant_python-0.19.0/instant_python/templates/project_structure/standard_project/source.yml.j2 +0 -28
  54. instant_python-0.19.0/instant_python/templates/project_structure/standard_project/test.yml.j2 +0 -23
  55. {instant_python-0.19.0 → instant_python-0.19.1}/.github/FUNDING.yml +0 -0
  56. {instant_python-0.19.0 → instant_python-0.19.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  57. {instant_python-0.19.0 → instant_python-0.19.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  58. {instant_python-0.19.0 → instant_python-0.19.1}/.github/actions/python_setup/action.yml +0 -0
  59. {instant_python-0.19.0 → instant_python-0.19.1}/.github/pull_request_template.md +0 -0
  60. {instant_python-0.19.0 → instant_python-0.19.1}/.github/workflows/ci.yml +0 -0
  61. {instant_python-0.19.0 → instant_python-0.19.1}/.github/workflows/pages.yml +0 -0
  62. {instant_python-0.19.0 → instant_python-0.19.1}/.github/workflows/release.yml +0 -0
  63. {instant_python-0.19.0 → instant_python-0.19.1}/.gitignore +0 -0
  64. {instant_python-0.19.0 → instant_python-0.19.1}/.pre-commit-config.yaml +0 -0
  65. {instant_python-0.19.0 → instant_python-0.19.1}/.python-version +0 -0
  66. {instant_python-0.19.0 → instant_python-0.19.1}/CITATION.cff +0 -0
  67. {instant_python-0.19.0 → instant_python-0.19.1}/LICENSE +0 -0
  68. {instant_python-0.19.0 → instant_python-0.19.1}/README.md +0 -0
  69. {instant_python-0.19.0 → instant_python-0.19.1}/SECURITY.md +0 -0
  70. {instant_python-0.19.0 → instant_python-0.19.1}/codeql-config.yml +0 -0
  71. {instant_python-0.19.0 → instant_python-0.19.1}/docs/assets/favicon.svg +0 -0
  72. {instant_python-0.19.0 → instant_python-0.19.1}/docs/assets/logo.svg +0 -0
  73. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/changelog_header.md.j2 +0 -0
  74. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/changelog_init.md.j2 +0 -0
  75. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/changelog_update.md.j2 +0 -0
  76. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/changes.md.j2 +0 -0
  77. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/first_release.md.j2 +0 -0
  78. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/macros.md.j2 +0 -0
  79. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
  80. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/.release_notes.md.j2 +0 -0
  81. {instant_python-0.19.0 → instant_python-0.19.1}/docs/changelog/CHANGELOG.md.j2 +0 -0
  82. {instant_python-0.19.0 → instant_python-0.19.1}/docs/development/contributing.md +0 -0
  83. {instant_python-0.19.0 → instant_python-0.19.1}/docs/development/releases.md +0 -0
  84. {instant_python-0.19.0 → instant_python-0.19.1}/docs/development/security.md +0 -0
  85. {instant_python-0.19.0 → instant_python-0.19.1}/docs/downloads_macro.py +0 -0
  86. {instant_python-0.19.0 → instant_python-0.19.1}/docs/getting_started/first_steps.md +0 -0
  87. {instant_python-0.19.0 → instant_python-0.19.1}/docs/getting_started/installation.md +0 -0
  88. {instant_python-0.19.0 → instant_python-0.19.1}/docs/guide/command_config.md +0 -0
  89. {instant_python-0.19.0 → instant_python-0.19.1}/docs/guide/command_init.md +0 -0
  90. {instant_python-0.19.0 → instant_python-0.19.1}/docs/guide/custom_projects.md +0 -0
  91. {instant_python-0.19.0 → instant_python-0.19.1}/docs/guide/default_features.md +0 -0
  92. {instant_python-0.19.0 → instant_python-0.19.1}/docs/guide/index.md +0 -0
  93. {instant_python-0.19.0 → instant_python-0.19.1}/docs/home/index.md +0 -0
  94. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/cli/__init__.py +0 -0
  95. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/cli/cli.py +0 -0
  96. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/cli/instant_python_typer.py +0 -0
  97. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/__init__.py +0 -0
  98. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/application/__init__.py +0 -0
  99. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/application/config_generator.py +0 -0
  100. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/delivery/__init__.py +0 -0
  101. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/delivery/cli.py +0 -0
  102. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/domain/__init__.py +0 -0
  103. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/domain/config_writer.py +0 -0
  104. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/domain/question_wizard.py +0 -0
  105. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/__init__.py +0 -0
  106. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/__init__.py +0 -0
  107. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
  108. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
  109. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
  110. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
  111. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
  112. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
  113. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
  114. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
  115. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/writer/__init__.py +0 -0
  116. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/config/infra/writer/yaml_config_writer.py +0 -0
  117. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/__init__.py +0 -0
  118. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/application/__init__.py +0 -0
  119. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/application/project_initializer.py +0 -0
  120. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/delivery/__init__.py +0 -0
  121. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/delivery/cli.py +0 -0
  122. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/__init__.py +0 -0
  123. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/config_repository.py +0 -0
  124. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/env_manager.py +0 -0
  125. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/node.py +0 -0
  126. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/project_formatter.py +0 -0
  127. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/project_renderer.py +0 -0
  128. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/project_structure.py +0 -0
  129. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/project_writer.py +0 -0
  130. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/domain/version_control_configurer.py +0 -0
  131. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/__init__.py +0 -0
  132. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/env_manager/__init__.py +0 -0
  133. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
  134. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
  135. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
  136. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
  137. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/formatter/__init__.py +0 -0
  138. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
  139. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/persistence/__init__.py +0 -0
  140. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/persistence/yaml_config_repository.py +0 -0
  141. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/renderer/__init__.py +0 -0
  142. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
  143. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +0 -0
  144. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/version_control/__init__.py +0 -0
  145. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
  146. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/writer/__init__.py +0 -0
  147. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
  148. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/__init__.py +0 -0
  149. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/application_error.py +0 -0
  150. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/domain/__init__.py +0 -0
  151. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/domain/config_schema.py +0 -0
  152. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/domain/dependency_config.py +0 -0
  153. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/domain/general_config.py +0 -0
  154. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/domain/git_config.py +0 -0
  155. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/domain/template_config.py +0 -0
  156. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/supported_built_in_features.py +0 -0
  157. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/supported_licenses.py +0 -0
  158. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/supported_managers.py +0 -0
  159. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/supported_python_versions.py +0 -0
  160. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/shared/supported_templates.py +0 -0
  161. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/.gitignore +0 -0
  162. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -0
  163. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/.python-version +0 -0
  164. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/CITATION.cff +0 -0
  165. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/LICENSE +0 -0
  166. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/README.md +0 -0
  167. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/SECURITY.md +0 -0
  168. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  169. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
  170. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
  171. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
  172. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
  173. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
  174. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
  175. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
  176. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
  177. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
  178. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
  179. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
  180. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
  181. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
  182. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  183. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
  184. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
  185. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
  186. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
  187. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
  188. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  189. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
  190. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
  191. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
  192. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
  193. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
  194. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
  195. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/github/action.yml +0 -0
  196. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
  197. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/github/ci.yml +0 -0
  198. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
  199. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/github/release.yml +0 -0
  200. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
  201. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
  202. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
  203. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
  204. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/mypy.ini +0 -0
  205. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  206. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
  207. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
  208. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  209. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
  210. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
  211. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
  212. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
  213. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
  214. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
  215. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
  216. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
  217. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/base.py +0 -0
  218. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  219. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
  220. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
  221. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/pytest.ini +0 -0
  222. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
  223. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
  224. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
  225. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
  226. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
  227. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/makefile +0 -0
  228. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
  229. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
  230. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
  231. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
  232. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
  233. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/config_files}/gitignore.yml.j2 +0 -0
  234. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/config_files}/mypy.yml.j2 +0 -0
  235. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/config_files}/pyproject.yml.j2 +0 -0
  236. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/config_files}/pytest.yml.j2 +0 -0
  237. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/config_files}/python_version.yml.j2 +0 -0
  238. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/documentation}/citation.yml.j2 +0 -0
  239. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/documentation}/license.yml.j2 +0 -0
  240. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/documentation}/readme.yml.j2 +0 -0
  241. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/documentation}/security.yml.j2 +0 -0
  242. /instant_python-0.19.0/instant_python/templates/project_structure/value_objects.yml.j2 → /instant_python-0.19.1/instant_python/templates/project_structure/errors.yml.j2 +0 -0
  243. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/events}/event_bus_infra.yml.j2 +0 -0
  244. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/fastapi}/fastapi_app.yml.j2 +0 -0
  245. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/fastapi}/fastapi_domain.yml.j2 +0 -0
  246. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/fastapi}/fastapi_infra.yml.j2 +0 -0
  247. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/github}/github_action.yml.j2 +0 -0
  248. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/github}/github_issues_template.yml.j2 +0 -0
  249. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/github}/makefile.yml.j2 +0 -0
  250. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/github}/precommit_hook.yml.j2 +0 -0
  251. {instant_python-0.19.0 → instant_python-0.19.1}/instant_python/templates/project_structure/logger.yml.j2 +0 -0
  252. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/persistence}/async_alembic.yml.j2 +0 -0
  253. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/persistence}/persistence.yml.j2 +0 -0
  254. {instant_python-0.19.0/instant_python/templates/project_structure → instant_python-0.19.1/instant_python/templates/project_structure/persistence}/synchronous_sqlalchemy.yml.j2 +0 -0
  255. {instant_python-0.19.0 → instant_python-0.19.1}/makefile +0 -0
  256. {instant_python-0.19.0 → instant_python-0.19.1}/mkdocs.yml +0 -0
  257. {instant_python-0.19.0 → instant_python-0.19.1}/mypy.ini +0 -0
  258. {instant_python-0.19.0 → instant_python-0.19.1}/scripts/add_dependency.py +0 -0
  259. {instant_python-0.19.0 → instant_python-0.19.1}/scripts/remove_dependency.py +0 -0
  260. {instant_python-0.19.0 → instant_python-0.19.1}/test/__init__.py +0 -0
  261. {instant_python-0.19.0 → instant_python-0.19.1}/test/cli/__init__.py +0 -0
  262. {instant_python-0.19.0 → instant_python-0.19.1}/test/cli/test_version_command.py +0 -0
  263. {instant_python-0.19.0 → instant_python-0.19.1}/test/config/__init__.py +0 -0
  264. {instant_python-0.19.0 → instant_python-0.19.1}/test/config/application/__init__.py +0 -0
  265. {instant_python-0.19.0 → instant_python-0.19.1}/test/config/application/test_config_generator.py +0 -0
  266. {instant_python-0.19.0 → instant_python-0.19.1}/test/config/infra/__init__.py +0 -0
  267. {instant_python-0.19.0 → instant_python-0.19.1}/test/config/infra/writer/__init__.py +0 -0
  268. {instant_python-0.19.0 → instant_python-0.19.1}/test/config/infra/writer/test_yaml_config_writer.py +0 -0
  269. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/__init__.py +0 -0
  270. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/application/__init__.py +0 -0
  271. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/application/test_project_initializer.py +0 -0
  272. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/__init__.py +0 -0
  273. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/approvaltests_config.json +0 -0
  274. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
  275. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -0
  276. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
  277. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -0
  278. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +0 -0
  279. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/delivery/test_init_cli.py +0 -0
  280. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/domain/__init__.py +0 -0
  281. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/domain/mothers/__init__.py +0 -0
  282. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/domain/mothers/node_mother.py +0 -0
  283. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
  284. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/domain/test_node.py +0 -0
  285. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/__init__.py +0 -0
  286. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/env_manager/__init__.py +0 -0
  287. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/env_manager/mother/__init__.py +0 -0
  288. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
  289. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
  290. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/env_manager/test_system_console.py +0 -0
  291. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
  292. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/formatter/__init__.py +0 -0
  293. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
  294. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/persistence/__init__.py +0 -0
  295. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/persistence/approvaltests_config.json +0 -0
  296. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/persistence/approved_files/TestYamlConfigRepository.test_should_read_existing_config_file.approved.txt +0 -0
  297. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/persistence/test_yaml_config_repository.py +0 -0
  298. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/renderer/__init__.py +0 -0
  299. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/renderer/test_jinja_environment.py +0 -0
  300. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
  301. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/version_control/__init__.py +0 -0
  302. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
  303. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
  304. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
  305. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
  306. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/writer/__init__.py +0 -0
  307. {instant_python-0.19.0 → instant_python-0.19.1}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
  308. {instant_python-0.19.0 → instant_python-0.19.1}/test/random_generator.py +0 -0
  309. {instant_python-0.19.0 → instant_python-0.19.1}/test/resources/base_ipy_config.yml +0 -0
  310. {instant_python-0.19.0 → instant_python-0.19.1}/test/resources/domain_error_template.py +0 -0
  311. {instant_python-0.19.0 → instant_python-0.19.1}/test/resources/hello_world.j2 +0 -0
  312. {instant_python-0.19.0 → instant_python-0.19.1}/test/resources/main_structure.yml.j2 +0 -0
  313. {instant_python-0.19.0 → instant_python-0.19.1}/test/resources/standard_project/main_structure.yml.j2 +0 -0
  314. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/__init__.py +0 -0
  315. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/__init__.py +0 -0
  316. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/mothers/__init__.py +0 -0
  317. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/mothers/config_schema_mother.py +0 -0
  318. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
  319. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/mothers/general_config_mother.py +0 -0
  320. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/mothers/git_config_mother.py +0 -0
  321. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/mothers/template_config_mother.py +0 -0
  322. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/test_config_schema.py +0 -0
  323. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/test_dependency_config.py +0 -0
  324. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/test_general_config.py +0 -0
  325. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/test_git_config.py +0 -0
  326. {instant_python-0.19.0 → instant_python-0.19.1}/test/shared/domain/test_template_configuration.py +0 -0
  327. {instant_python-0.19.0 → instant_python-0.19.1}/test/utils.py +0 -0
  328. {instant_python-0.19.0 → instant_python-0.19.1}/tox.ini +0 -0
@@ -2,6 +2,121 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.19.1 (2025-11-27)
6
+
7
+ ### 🪲 Bug Fixes
8
+
9
+ - **templates**: Correct indentation level for source and test templates in standard project
10
+ ([`54b36ca`](https://github.com/dimanu-py/instant-python/commit/54b36cac14dc9a12157223207b47236b063262ef))
11
+
12
+ - **templates**: Remove aggregate and value object file from event bus folder structure now that
13
+ these implementation have delegated to sindripy
14
+ ([`13a7780`](https://github.com/dimanu-py/instant-python/commit/13a7780f0263edf83ac5751c26bf6d5f04073b2a))
15
+
16
+ - **templates**: Modify EventAggregate template to use Aggregate from sindripy instead of legacy
17
+ aggregate that doesn't exist anymore
18
+ ([`dcbf2d3`](https://github.com/dimanu-py/instant-python/commit/dcbf2d3f913327a2f909ab48526f32c958e26db2))
19
+
20
+ - **templates**: Include sindripy dependency when event bus feature is selected to be able to use
21
+ the Aggregate implementation
22
+ ([`b5c3000`](https://github.com/dimanu-py/instant-python/commit/b5c30002596fc639316f93d403b4bedc18cb1e7c))
23
+
24
+ ### ♻️ Refactoring
25
+
26
+ - **templates**: Rename value objects template to errors now that it only contains errors and value
27
+ objects are handled with sindripy
28
+ ([`df8458b`](https://github.com/dimanu-py/instant-python/commit/df8458b18497574f48a075550e3d75e0a11e58e1))
29
+
30
+ - **templates**: Move new advanced macros to root of templates folder and use it along project
31
+ structure templates
32
+ ([`736314c`](https://github.com/dimanu-py/instant-python/commit/736314c5612b7d7518e780d8026951372a189755))
33
+
34
+ - **templates**: Remove legacy templates now that they are better organized
35
+ ([`c1b6c44`](https://github.com/dimanu-py/instant-python/commit/c1b6c44a04837f06db6a4db91d1e6d389b352be5))
36
+
37
+ - **templates**: Update main templates for standard project structure using new macros and organized
38
+ templates folder
39
+ ([`4fe22f3`](https://github.com/dimanu-py/instant-python/commit/4fe22f3b4bb4efca55531b52b8612aa29d2a3047))
40
+
41
+ - **templates**: Add advanced macros to be able to reuse render logic for templates and avoid
42
+ conditionals
43
+ ([`76cc909`](https://github.com/dimanu-py/instant-python/commit/76cc9090ef73f7e17ef7736ec64a50a86d6dea65))
44
+
45
+ - **templates**: Separate and modularize structure of standard project template in layers
46
+ ([`7123c85`](https://github.com/dimanu-py/instant-python/commit/7123c85bfbbabecd0ad1245b58ac668546343721))
47
+
48
+ - **templates**: Update main templates for ddd project structure using new macros and organized
49
+ templates folder
50
+ ([`613f361`](https://github.com/dimanu-py/instant-python/commit/613f36175902befddf45d8a0b56ef9069ae30df1))
51
+
52
+ - **templates**: Add advanced macros to be able to reuse render logic for templates and avoid
53
+ conditionals
54
+ ([`f96a178`](https://github.com/dimanu-py/instant-python/commit/f96a1787d978e6e56fae478a26ddf6d858f14da9))
55
+
56
+ - **templates**: Separate and modularize structure of ddd template in layers
57
+ ([`66044d5`](https://github.com/dimanu-py/instant-python/commit/66044d56011e28b695b5a0b7af591415732ad426))
58
+
59
+ - **templates**: Move config files for projects templates to specific folder for better organization
60
+ ([`5bc4e15`](https://github.com/dimanu-py/instant-python/commit/5bc4e15fcbdd6f20eaf69ffe24ae92866175c138))
61
+
62
+ - **templates**: Move github related templates to specific folder for better organization
63
+ ([`ee42c25`](https://github.com/dimanu-py/instant-python/commit/ee42c2556037af6ba69bb0a973cf67c0659b9e0e))
64
+
65
+ - **templates**: Move fastapi templates to specific folders for better organization
66
+ ([`7437c95`](https://github.com/dimanu-py/instant-python/commit/7437c9513f7e963e41f51a28a6ba90a432cef12c))
67
+
68
+ - **templates**: Move documentation templates such as readme, citation and security to specific
69
+ folders for better organization
70
+ ([`3608d27`](https://github.com/dimanu-py/instant-python/commit/3608d2777cd324a51f3d841cd5c92a651d6ee7e5))
71
+
72
+ - **templates**: Modify test structure to include application folder too
73
+ ([`b0bc458`](https://github.com/dimanu-py/instant-python/commit/b0bc45873d3ee57b86282fccba8ddc89b54a1d80))
74
+
75
+ - **templates**: Remove conditional logic to include features in infra tests for clean architecture
76
+ and use render_children_for macro to make it clearer and easier to extend
77
+ ([`87fe7fc`](https://github.com/dimanu-py/instant-python/commit/87fe7fc32b65f8933699402d508a4770f5a0c748))
78
+
79
+ - **templates**: Update test infra template to include mock event bus from template
80
+ ([`20fd887`](https://github.com/dimanu-py/instant-python/commit/20fd88768cd12acaea632bb6af16de37d9a1ae96))
81
+
82
+ - **templates**: Do not include mock event bus in test domain folder for clean architecture template
83
+ ([`20e1d73`](https://github.com/dimanu-py/instant-python/commit/20e1d73cf632f022d8541b3ed625217cb17b15b1))
84
+
85
+ - **templates**: Modify template paths for event features pointing to better organized folders
86
+ ([`35e56ac`](https://github.com/dimanu-py/instant-python/commit/35e56ac685d7d88fe7d0a3b2dcd54c9c409bde8a))
87
+
88
+ - **templates**: Organize events templates inside a specific folder to keep them better organized
89
+ ([`2552a60`](https://github.com/dimanu-py/instant-python/commit/2552a60e49df586ec890a628e51db10002820907))
90
+
91
+ - **templates**: Update template paths in clean architecture project structure to use new organized
92
+ persistence templates
93
+ ([`ad4fced`](https://github.com/dimanu-py/instant-python/commit/ad4fced04cc5c127acbd2b2c96d79e514454d9ac))
94
+
95
+ - **templates**: Organize persistence templates inside a specific folder to keep them better
96
+ organized
97
+ ([`b3ff817`](https://github.com/dimanu-py/instant-python/commit/b3ff8170ad24c280796a3f21dac341bd4e7be95f))
98
+
99
+ - **templates**: Remove legacy templates for clean architecture structure now that new version is
100
+ stable
101
+ ([`d5293fc`](https://github.com/dimanu-py/instant-python/commit/d5293fc4ca28164859521978532554d34f22fa0b))
102
+
103
+ - **templates**: Modify jinja macro to be able to handle cases where one template file has to be
104
+ included in more than once scenario so it's not get created two times
105
+ ([`99e6572`](https://github.com/dimanu-py/instant-python/commit/99e6572e16e9388dc5e3491a1b8bc3dbfc11a25e))
106
+
107
+ - **templates**: Rename old main structure, source and test templates files to mark them as legacy
108
+ but having them as backup
109
+ ([`2ea3614`](https://github.com/dimanu-py/instant-python/commit/2ea361497d722b2eb15ad57d5bdaf2e44a2c1e6f))
110
+
111
+ - **templates**: Separate clean architecture source and test structure in separate folders to handle
112
+ easily each folder and its features
113
+ ([`f92b499`](https://github.com/dimanu-py/instant-python/commit/f92b4992b57ecdf62689b58a044264e298591452))
114
+
115
+ - **templates**: Write advanced macros to render children blocks and built in features for clean
116
+ architecture
117
+ ([`720bf69`](https://github.com/dimanu-py/instant-python/commit/720bf694ebfa12105d58f46549977dc072c786aa))
118
+
119
+
5
120
  ## v0.19.0 (2025-11-24)
6
121
 
7
122
  ### ✨ Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instant-python
3
- Version: 0.19.0
3
+ Version: 0.19.1
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/
@@ -0,0 +1 @@
1
+ __version__ = "0.19.1"
@@ -1,11 +1,12 @@
1
+ from sindripy.value_objects import Aggregate
1
2
  from {{ general.source_name }}{{ "shared.domain.event.domain_event" | resolve_import_path(template.name) }} import DomainEvent
2
- from {{ general.source_name }}{{ "shared.domain.value_objects.aggregate" | resolve_import_path(template.name) }} import Aggregate
3
3
 
4
4
 
5
5
  class EventAggregate(Aggregate):
6
6
  _domain_events: list[DomainEvent]
7
7
 
8
8
  def __init__(self) -> None:
9
+ super().__init__()
9
10
  self._domain_events = []
10
11
 
11
12
  def record(self, event: DomainEvent) -> None:
@@ -1,7 +1,7 @@
1
1
  {% set feature_to_main_dependencies = {
2
2
  "async_sqlalchemy": ["sqlalchemy", "asyncpg", "psycopg2-binary", "pydantic", "pydantic-settings"],
3
3
  "async_alembic": ["alembic", "pydantic", "pydantic-settings"],
4
- "event_bus": ["pika"],
4
+ "event_bus": ["pika", "sindripy"],
5
5
  "fastapi_application": ["fastapi[standard]"],
6
6
  "value_objects": ["sindripy"]
7
7
  } %}
@@ -0,0 +1,3 @@
1
+ - name: application
2
+ type: directory
3
+ python: True
@@ -0,0 +1,8 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set delivery_features = [
3
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_app.yml.j2"}
4
+ ] %}
5
+ - name: delivery
6
+ type: directory
7
+ python: True
8
+ {{ macros.render_children_for(delivery_features, 2) }}
@@ -0,0 +1,10 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set domain_features = [
3
+ {"feature": "value_objects", "template": "errors.yml.j2"},
4
+ {"feature": "event_bus", "template": "events/event_bus_domain.yml.j2"},
5
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_domain.yml.j2"}
6
+ ] %}
7
+ - name: domain
8
+ type: directory
9
+ python: True
10
+ {{ macros.render_children_for(domain_features, 2) }}
@@ -0,0 +1,12 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set infra_features = [
3
+ {"feature": "event_bus", "template": "events/event_bus_infra.yml.j2"},
4
+ {"feature": "logger", "template": "logger.yml.j2"},
5
+ {"feature": "async_sqlalchemy", "template": "persistence/async_sqlalchemy.yml.j2"},
6
+ {"feature": "async_alembic", "template": "persistence/alembic_migrator.yml.j2"},
7
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_infra.yml.j2"}
8
+ ] %}
9
+ - name: infra
10
+ type: directory
11
+ python: True
12
+ {{ macros.render_children_for(infra_features, 2) }}
@@ -0,0 +1,3 @@
1
+ - name: application
2
+ type: directory
3
+ python: True
@@ -0,0 +1,3 @@
1
+ - name: delivery
2
+ type: directory
3
+ python: True
@@ -0,0 +1,9 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set infra_features = [
3
+ {"feature": "event_bus", "template": "events/mock_event_bus.yml.j2"},
4
+ {"feature": "async_sqlalchemy", "template": "persistence/async_engine_conftest.yml.j2"},
5
+ ] %}
6
+ - name: infra
7
+ type: directory
8
+ python: True
9
+ {{ macros.render_children_for(infra_features, 2) }}
@@ -0,0 +1,38 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {# === Core Project Structure === #}
3
+ {{ macros.include_block("clean_architecture/source.yml.j2", 0) }}
4
+ {{ macros.include_block("clean_architecture/test.yml.j2", 0) }}
5
+ {# === Base Configuration Files === #}
6
+ {{ macros.include_block("config_files/pyproject.yml.j2", 0) }}
7
+ {{ macros.include_block("config_files/python_version.yml.j2", 0) }}
8
+ {{ macros.include_block("documentation/license.yml.j2", 0) }}
9
+ {# === CI/CD and Automation Features === #}
10
+ {% set ci_cd_features = [
11
+ {"feature": "github_actions", "template": "github/github_action.yml.j2"},
12
+ {"feature": "github_actions", "template": "github/makefile.yml.j2"},
13
+ {"feature": "github_issues_template", "template": "github/github_issues_template.yml.j2"},
14
+ {"feature": "makefile", "template": "github/makefile.yml.j2"},
15
+ {"feature": "precommit_hook", "template": "github/precommit_hook.yml.j2"},
16
+ {"feature": "precommit_hook", "template": "github/makefile.yml.j2"}
17
+ ] %}
18
+ {{ macros.render_features(ci_cd_features, 0) }}
19
+ {# === Git Features === #}
20
+ {% if git.initialize %}
21
+ {{ macros.include_block("config_files/gitignore.yml.j2", 0) }}
22
+ {{ macros.include_block("documentation/readme.yml.j2", 0) }}
23
+ {% endif %}
24
+ {# === Testing and Type Checking === #}
25
+ {% if dependencies | has_dependency("pytest") %}
26
+ {{ macros.include_block("config_files/pytest.yml.j2", 0) }}
27
+ {% endif %}
28
+ {% if dependencies | has_dependency("mypy") %}
29
+ {{ macros.include_block("config_files/mypy.yml.j2", 0) }}
30
+ {% endif %}
31
+ {# === Database Migration === #}
32
+ {{ macros.render_feature_if_enabled("async_alembic", "persistence/async_alembic.yml.j2", 0) }}
33
+ {# === Documentation and Metadata === #}
34
+ {% set doc_features = [
35
+ {"feature": "citation_file", "template": "documentation/citation.yml.j2"},
36
+ {"feature": "security_file", "template": "documentation/security.yml.j2"}
37
+ ] %}
38
+ {{ macros.render_features(doc_features, 0) }}
@@ -0,0 +1,9 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ - name: {{ general.source_name }}
3
+ type: directory
4
+ python: True
5
+ children:
6
+ {{ macros.include_block("clean_architecture/layers/delivery.yml.j2", 4) }}
7
+ {{ macros.include_block("clean_architecture/layers/domain.yml.j2", 4) }}
8
+ {{ macros.include_block("clean_architecture/layers/application.yml.j2", 4) }}
9
+ {{ macros.include_block("clean_architecture/layers/infra.yml.j2", 4) }}
@@ -0,0 +1,9 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ - name: test
3
+ type: directory
4
+ python: True
5
+ children:
6
+ {{ macros.include_block("clean_architecture/layers/test_delivery.yml.j2", 4) }}
7
+ {{ macros.include_block("clean_architecture/layers/test_domain.yml.j2", 4) }}
8
+ {{ macros.include_block("clean_architecture/layers/test_application.yml.j2", 4) }}
9
+ {{ macros.include_block("clean_architecture/layers/test_infra.yml.j2", 4) }}
@@ -2,9 +2,6 @@
2
2
  type: directory
3
3
  python: True
4
4
  children:
5
- - name: shared
6
- type: directory
7
- python: True
8
5
  - name: {{ template.aggregate_name }}
9
6
  type: directory
10
7
  python: True
@@ -0,0 +1,8 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set delivery_features = [
3
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_app.yml.j2"}
4
+ ] %}
5
+ - name: delivery
6
+ type: directory
7
+ python: True
8
+ {{ macros.render_children_for(delivery_features, 2) }}
@@ -0,0 +1,18 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set domain_related_features = ["value_objects", "event_bus", "fastapi_application"] %}
3
+ {%- set infra_related_features = ["event_bus", "logger", "async_sqlalchemy", "async_alembic", "fastapi_application"] %}
4
+ {%- set has_domain = domain_related_features | is_in(template.built_in_features) -%}
5
+ {%- set has_infra = infra_related_features | is_in(template.built_in_features) -%}
6
+ - name: shared
7
+ type: directory
8
+ python: True
9
+ {% if has_domain or has_infra %}
10
+ children:
11
+ {% if has_domain %}
12
+ {{ macros.include_block("domain_driven_design/layers/shared_domain.yml.j2", 4) }}
13
+ {% endif %}
14
+ {% if has_infra %}
15
+ {{ macros.include_block("domain_driven_design/layers/shared_infra.yml.j2", 4) }}
16
+ {% endif %}
17
+ {% endif %}
18
+
@@ -0,0 +1,10 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set domain_features = [
3
+ {"feature": "value_objects", "template": "errors.yml.j2"},
4
+ {"feature": "event_bus", "template": "events/event_bus_domain.yml.j2"},
5
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_domain.yml.j2"}
6
+ ] %}
7
+ - name: domain
8
+ type: directory
9
+ python: True
10
+ {{ macros.render_children_for(domain_features, 2) }}
@@ -0,0 +1,12 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set infra_features = [
3
+ {"feature": "event_bus", "template": "events/event_bus_infra.yml.j2"},
4
+ {"feature": "logger", "template": "logger.yml.j2"},
5
+ {"feature": "async_sqlalchemy", "template": "persistence/async_sqlalchemy.yml.j2"},
6
+ {"feature": "async_alembic", "template": "persistence/alembic_migrator.yml.j2"},
7
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_infra.yml.j2"}
8
+ ] %}
9
+ - name: infra
10
+ type: directory
11
+ python: True
12
+ {{ macros.render_children_for(infra_features, 2) }}
@@ -0,0 +1,8 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ - name: shared
3
+ type: directory
4
+ python: True
5
+ children:
6
+ {{ macros.include_block("domain_driven_design/layers/test_shared_delivery.yml.j2", 4) }}
7
+ {{ macros.include_block("domain_driven_design/layers/test_shared_domain.yml.j2", 4) }}
8
+ {{ macros.include_block("domain_driven_design/layers/test_shared_infra.yml.j2", 4) }}
@@ -0,0 +1,9 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set infra_features = [
3
+ {"feature": "event_bus", "template": "events/mock_event_bus.yml.j2"},
4
+ {"feature": "async_sqlalchemy", "template": "persistence/async_engine_conftest.yml.j2"},
5
+ ] %}
6
+ - name: infra
7
+ type: directory
8
+ python: True
9
+ {{ macros.render_children_for(infra_features, 2) }}
@@ -0,0 +1,38 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {# === Core Project Structure === #}
3
+ {{ macros.include_block("domain_driven_design/source.yml.j2", 0) }}
4
+ {{ macros.include_block("domain_driven_design/test.yml.j2", 0) }}
5
+ {# === Base Configuration Files === #}
6
+ {{ macros.include_block("config_files/pyproject.yml.j2", 0) }}
7
+ {{ macros.include_block("config_files/python_version.yml.j2", 0) }}
8
+ {{ macros.include_block("documentation/license.yml.j2", 0) }}
9
+ {# === CI/CD and Automation Features === #}
10
+ {% set ci_cd_features = [
11
+ {"feature": "github_actions", "template": "github/github_action.yml.j2"},
12
+ {"feature": "github_actions", "template": "github/makefile.yml.j2"},
13
+ {"feature": "github_issues_template", "template": "github/github_issues_template.yml.j2"},
14
+ {"feature": "makefile", "template": "github/makefile.yml.j2"},
15
+ {"feature": "precommit_hook", "template": "github/precommit_hook.yml.j2"},
16
+ {"feature": "precommit_hook", "template": "github/makefile.yml.j2"}
17
+ ] %}
18
+ {{ macros.render_features(ci_cd_features, 0) }}
19
+ {# === Git Features === #}
20
+ {% if git.initialize %}
21
+ {{ macros.include_block("config_files/gitignore.yml.j2", 0) }}
22
+ {{ macros.include_block("documentation/readme.yml.j2", 0) }}
23
+ {% endif %}
24
+ {# === Testing and Type Checking === #}
25
+ {% if dependencies | has_dependency("pytest") %}
26
+ {{ macros.include_block("config_files/pytest.yml.j2", 0) }}
27
+ {% endif %}
28
+ {% if dependencies | has_dependency("mypy") %}
29
+ {{ macros.include_block("config_files/mypy.yml.j2", 0) }}
30
+ {% endif %}
31
+ {# === Database Migration === #}
32
+ {{ macros.render_feature_if_enabled("async_alembic", "persistence/async_alembic.yml.j2", 0) }}
33
+ {# === Documentation and Metadata === #}
34
+ {% set doc_features = [
35
+ {"feature": "citation_file", "template": "documentation/citation.yml.j2"},
36
+ {"feature": "security_file", "template": "documentation/security.yml.j2"}
37
+ ] %}
38
+ {{ macros.render_features(doc_features, 0) }}
@@ -0,0 +1,10 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ - name: {{ general.source_name }}
3
+ type: directory
4
+ python: True
5
+ children:
6
+ {{ macros.include_block("domain_driven_design/layers/delivery.yml.j2", 4) }}
7
+ {{ macros.include_block("domain_driven_design/layers/shared.yml.j2", 4) }}
8
+ {%- if template.specify_bounded_context %}
9
+ {{ macros.include_block("domain_driven_design/layers/bounded_context.yml.j2", 4) }}
10
+ {%- endif %}
@@ -0,0 +1,9 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ - name: test
3
+ type: directory
4
+ python: True
5
+ children:
6
+ {{ macros.include_block("domain_driven_design/layers/test_shared.yml.j2", 4) }}
7
+ {%- if template.specify_bounded_context %}
8
+ {{ macros.include_block("domain_driven_design/layers/bounded_context.yml.j2", 4) }}
9
+ {%- endif %}
@@ -42,14 +42,6 @@
42
42
  type: directory
43
43
  python: True
44
44
  children:
45
- - name: aggregate
46
- type: file
47
- extension: .py
48
- template: value_object/aggregate.py
49
- - name: value_object
50
- type: file
51
- extension: .py
52
- template: value_object/value_object.py
53
45
  - name: event_aggregate
54
46
  type: file
55
47
  extension: .py
@@ -0,0 +1,4 @@
1
+ - name: mock_event_bus
2
+ type: file
3
+ extension: .py
4
+ template: event_bus/mock_event_bus.py
@@ -0,0 +1,73 @@
1
+ {#
2
+ Macro to include a template and indent its content
3
+
4
+ Args:
5
+ template_name: Name of the template file to include
6
+ indent: Number of spaces to indent the content
7
+ #}
8
+ {%- macro include_block(template_name, indent) -%}
9
+ {%- set content -%}
10
+ {%- include template_name -%}
11
+ {%- endset -%}
12
+ {{ content | indent(indent, true) }}
13
+ {%- endmacro -%}
14
+
15
+ {#
16
+ Renders a specific feature if it's enabled in template.built_in_features
17
+
18
+ Args:
19
+ feature_name: Name of the feature to check
20
+ template_path: Path to the template file to include
21
+ indent_level: Number of spaces to indent the content
22
+ #}
23
+ {%- macro render_feature_if_enabled(feature_name, template_path, indent=0) -%}
24
+ {%- if feature_name in template.built_in_features -%}
25
+ {{ include_block(template_path, indent) }}
26
+ {%- endif -%}
27
+ {%- endmacro -%}
28
+
29
+ {#
30
+ Renders multiple features from a list
31
+
32
+ Args:
33
+ features: List of dicts with 'feature' and 'template' keys
34
+ indent_level: Number of spaces to indent the content
35
+
36
+ Example:
37
+ {% set features = [
38
+ {"feature": "event_bus", "template": "event_bus_domain.yml.j2"},
39
+ {"feature": "value_objects", "template": "errors.yml.j2"}
40
+ ] %}
41
+ {{ render_features(features, 8) }}
42
+ #}
43
+ {%- macro render_features(features, indent=0) -%}
44
+ {%- set rendered_templates = [] -%}
45
+ {%- for item in features -%}
46
+ {%- if item.feature in template.built_in_features and item.template not in rendered_templates -%}
47
+ {{ include_block(item.template, indent) }}
48
+ {% set _ = rendered_templates.append(item.template) -%}
49
+ {%- endif -%}
50
+ {%- endfor -%}
51
+ {%- endmacro -%}
52
+
53
+ {#
54
+ Conditional wrapper for children nodes
55
+ Only renders the "children:" key and content if there are active features
56
+
57
+ Args:
58
+ features: List of features to check
59
+ indent_level: Base indentation for the children key
60
+ #}
61
+ {%- macro render_children_for(features, indent=0) -%}
62
+ {%- set active_features = [] -%}
63
+ {%- for item in features -%}
64
+ {%- if item.feature in template.built_in_features -%}
65
+ {%- set _ = active_features.append(item) -%}
66
+ {%- endif -%}
67
+ {%- endfor -%}
68
+ {%- if active_features | length > 0 %}
69
+ {{ "children:" | indent(indent, true) }}
70
+ {{ render_features(active_features, indent + 2) }}
71
+ {%- endif -%}
72
+ {%- endmacro -%}
73
+
@@ -0,0 +1,6 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {{ macros.include_block("persistence/persistence.yml.j2", 0) }}
3
+ - name: alembic_migrator
4
+ type: file
5
+ extension: .py
6
+ template: persistence/alembic_migrator.py
@@ -0,0 +1,4 @@
1
+ - name: conftest
2
+ type: file
3
+ extension: .py
4
+ template: persistence/async/async_engine_fixture.py
@@ -1,5 +1,5 @@
1
1
  {% import "macros.j2" as macros with context %}
2
- {{ macros.include_and_indent("persistence.yml.j2", 0) }}
2
+ {{ macros.include_block("persistence/persistence.yml.j2", 0) }}
3
3
  - name: sqlalchemy
4
4
  type: directory
5
5
  python: True
@@ -0,0 +1,13 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set source_features = [
3
+ {"feature": "value_objects", "template": "errors.yml.j2"},
4
+ {"feature": "event_bus", "template": "events/event_bus_domain.yml.j2"},
5
+ {"feature": "event_bus", "template": "events/event_bus_infra.yml.j2"},
6
+ {"feature": "logger", "template": "logger.yml.j2"},
7
+ {"feature": "async_sqlalchemy", "template": "persistence/async_sqlalchemy.yml.j2"},
8
+ {"feature": "async_alembic", "template": "persistence/alembic_migrator.yml.j2"},
9
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_app.yml.j2"},
10
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_infra.yml.j2"},
11
+ {"feature": "fastapi_application", "template": "fastapi/fastapi_domain.yml.j2"}
12
+ ] %}
13
+ {{ macros.render_children_for(source_features, 2) }}
@@ -0,0 +1,6 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ - name: event
3
+ type: directory
4
+ python: True
5
+ children:
6
+ {{ macros.include_block("events/mock_event_bus.yml.j2", 4) }}
@@ -0,0 +1,6 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {%- set test_features = [
3
+ {"feature": "async_sqlalchemy", "template": "persistence/async_engine_conftest.yml.j2"},
4
+ {"feature": "event_bus", "template": "standard_project/layers/test_event_bus.yml.j2"}
5
+ ] %}
6
+ {{ macros.render_children_for(test_features, 2) }}
@@ -0,0 +1,38 @@
1
+ {% import "macros.j2" as macros with context %}
2
+ {# === Core Project Structure === #}
3
+ {{ macros.include_block("standard_project/source.yml.j2", 0) }}
4
+ {{ macros.include_block("standard_project/test.yml.j2", 0) }}
5
+ {# === Base Configuration Files === #}
6
+ {{ macros.include_block("config_files/pyproject.yml.j2", 0) }}
7
+ {{ macros.include_block("config_files/python_version.yml.j2", 0) }}
8
+ {{ macros.include_block("documentation/license.yml.j2", 0) }}
9
+ {# === CI/CD and Automation Features === #}
10
+ {% set ci_cd_features = [
11
+ {"feature": "github_actions", "template": "github/github_action.yml.j2"},
12
+ {"feature": "github_actions", "template": "github/makefile.yml.j2"},
13
+ {"feature": "github_issues_template", "template": "github/github_issues_template.yml.j2"},
14
+ {"feature": "makefile", "template": "github/makefile.yml.j2"},
15
+ {"feature": "precommit_hook", "template": "github/precommit_hook.yml.j2"},
16
+ {"feature": "precommit_hook", "template": "github/makefile.yml.j2"}
17
+ ] %}
18
+ {{ macros.render_features(ci_cd_features, 0) }}
19
+ {# === Git Features === #}
20
+ {% if git.initialize %}
21
+ {{ macros.include_block("config_files/gitignore.yml.j2", 0) }}
22
+ {{ macros.include_block("documentation/readme.yml.j2", 0) }}
23
+ {% endif %}
24
+ {# === Testing and Type Checking === #}
25
+ {% if dependencies | has_dependency("pytest") %}
26
+ {{ macros.include_block("config_files/pytest.yml.j2", 0) }}
27
+ {% endif %}
28
+ {% if dependencies | has_dependency("mypy") %}
29
+ {{ macros.include_block("config_files/mypy.yml.j2", 0) }}
30
+ {% endif %}
31
+ {# === Database Migration === #}
32
+ {{ macros.render_feature_if_enabled("async_alembic", "persistence/async_alembic.yml.j2", 0) }}
33
+ {# === Documentation and Metadata === #}
34
+ {% set doc_features = [
35
+ {"feature": "citation_file", "template": "documentation/citation.yml.j2"},
36
+ {"feature": "security_file", "template": "documentation/security.yml.j2"}
37
+ ] %}
38
+ {{ macros.render_features(doc_features, 0) }}