instant-python 0.22.0__tar.gz → 0.23.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 (391) hide show
  1. instant_python-0.23.0/.github/dependabot.yml +40 -0
  2. {instant_python-0.22.0 → instant_python-0.23.0}/.github/workflows/ci.yml +17 -17
  3. {instant_python-0.22.0 → instant_python-0.23.0}/.github/workflows/pages.yml +5 -5
  4. {instant_python-0.22.0 → instant_python-0.23.0}/.github/workflows/release.yml +5 -5
  5. {instant_python-0.22.0 → instant_python-0.23.0}/CHANGELOG.md +47 -0
  6. {instant_python-0.22.0 → instant_python-0.23.0}/PKG-INFO +1 -1
  7. instant_python-0.23.0/instant_python/__init__.py +1 -0
  8. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/supported_built_in_features.py +1 -0
  9. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/github/ci.yml +8 -8
  10. instant_python-0.23.0/instant_python/templates/boilerplate/github/dependabot.yml +62 -0
  11. instant_python-0.23.0/instant_python/templates/boilerplate/github/pages.yml +63 -0
  12. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/github/release.yml +2 -2
  13. instant_python-0.23.0/instant_python/templates/boilerplate/mkdocs.yml +70 -0
  14. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/pyproject.toml +20 -0
  15. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/makefile +6 -1
  16. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml +2 -1
  17. instant_python-0.23.0/instant_python/templates/project_structure/documentation/documentation.yml +14 -0
  18. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +2 -1
  19. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/github/github_action.yml +11 -1
  20. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/standard_project/main_structure.yml +2 -1
  21. {instant_python-0.22.0 → instant_python-0.23.0}/pyproject.toml +2 -1
  22. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +4 -0
  23. instant_python-0.23.0/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.received.txt +56 -0
  24. {instant_python-0.22.0 → instant_python-0.23.0}/uv.lock +20 -16
  25. instant_python-0.22.0/instant_python/__init__.py +0 -1
  26. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/commands/code-review.md +0 -0
  27. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/commands/commit.md +0 -0
  28. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/commands/security-review.md +0 -0
  29. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/commands/technical-debt-review.md +0 -0
  30. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/adr/SKILL.md +0 -0
  31. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/complexity-review/REFERENCE.md +0 -0
  32. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/complexity-review/SKILL.md +0 -0
  33. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/design-doc/SKILL.md +0 -0
  34. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/hamburger-method/REFERENCE.md +0 -0
  35. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/hamburger-method/SKILL.md +0 -0
  36. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/micro-steps-coach/REFERENCE.md +0 -0
  37. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/micro-steps-coach/SKILL.md +0 -0
  38. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/mutation-testing/SKILL.md +0 -0
  39. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/story-splitting/REFERENCE.md +0 -0
  40. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/story-splitting/SKILL.md +0 -0
  41. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/test-desiderata/REFERENCE.md +0 -0
  42. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/test-desiderata/SKILL.md +0 -0
  43. {instant_python-0.22.0 → instant_python-0.23.0}/.agents/skills/xp-refactor/SKILL.md +0 -0
  44. {instant_python-0.22.0 → instant_python-0.23.0}/.github/FUNDING.yml +0 -0
  45. {instant_python-0.22.0 → instant_python-0.23.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  46. {instant_python-0.22.0 → instant_python-0.23.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  47. {instant_python-0.22.0 → instant_python-0.23.0}/.github/actions/python_setup/action.yml +0 -0
  48. {instant_python-0.22.0 → instant_python-0.23.0}/.github/pull_request_template.md +0 -0
  49. {instant_python-0.22.0 → instant_python-0.23.0}/.gitignore +0 -0
  50. {instant_python-0.22.0 → instant_python-0.23.0}/.pre-commit-config.yaml +0 -0
  51. {instant_python-0.22.0 → instant_python-0.23.0}/.python-version +0 -0
  52. {instant_python-0.22.0 → instant_python-0.23.0}/AGENTS.md +0 -0
  53. {instant_python-0.22.0 → instant_python-0.23.0}/CITATION.cff +0 -0
  54. {instant_python-0.22.0 → instant_python-0.23.0}/LICENSE +0 -0
  55. {instant_python-0.22.0 → instant_python-0.23.0}/README.md +0 -0
  56. {instant_python-0.22.0 → instant_python-0.23.0}/SECURITY.md +0 -0
  57. {instant_python-0.22.0 → instant_python-0.23.0}/codeql-config.yml +0 -0
  58. {instant_python-0.22.0 → instant_python-0.23.0}/docs/adrs/adr-guidelines.md +0 -0
  59. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
  60. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
  61. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
  62. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/changes.md.j2 +0 -0
  63. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/first_release.md.j2 +0 -0
  64. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/macros.md.j2 +0 -0
  65. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
  66. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/.release_notes.md.j2 +0 -0
  67. {instant_python-0.22.0 → instant_python-0.23.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
  68. {instant_python-0.22.0 → instant_python-0.23.0}/docs/design_docs/0001-metrics-middleware-refactor.md +0 -0
  69. {instant_python-0.22.0 → instant_python-0.23.0}/docs/design_docs/design-doc-guidelines.md +0 -0
  70. {instant_python-0.22.0 → instant_python-0.23.0}/docs/design_docs/technical-debt-review.md +0 -0
  71. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/assets/favicon.svg +0 -0
  72. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/assets/logo.svg +0 -0
  73. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/development/contributing.md +0 -0
  74. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/development/releases.md +0 -0
  75. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/development/security.md +0 -0
  76. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/downloads_macro.py +0 -0
  77. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/getting_started/first_steps.md +0 -0
  78. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/getting_started/installation.md +0 -0
  79. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/getting_started/privacy_and_metrics.md +0 -0
  80. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/guide/command_config.md +0 -0
  81. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/guide/command_init.md +0 -0
  82. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/guide/custom_projects.md +0 -0
  83. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/guide/default_features.md +0 -0
  84. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/guide/index.md +0 -0
  85. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/guide/template_reference.md +0 -0
  86. {instant_python-0.22.0 → instant_python-0.23.0}/docs/documentation/home/index.md +0 -0
  87. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/cli/__init__.py +0 -0
  88. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/cli/cli.py +0 -0
  89. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/cli/instant_python_typer.py +0 -0
  90. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/__init__.py +0 -0
  91. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/application/__init__.py +0 -0
  92. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/application/config_generator.py +0 -0
  93. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/delivery/__init__.py +0 -0
  94. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/delivery/cli.py +0 -0
  95. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/domain/__init__.py +0 -0
  96. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/domain/question_wizard.py +0 -0
  97. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/__init__.py +0 -0
  98. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
  99. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
  100. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
  101. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
  102. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
  103. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
  104. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
  105. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
  106. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
  107. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/__init__.py +0 -0
  108. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/application/__init__.py +0 -0
  109. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/application/project_initializer.py +0 -0
  110. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/delivery/__init__.py +0 -0
  111. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/delivery/cli.py +0 -0
  112. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/__init__.py +0 -0
  113. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/env_manager.py +0 -0
  114. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/node.py +0 -0
  115. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/project_formatter.py +0 -0
  116. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/project_renderer.py +0 -0
  117. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/project_structure.py +0 -0
  118. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/project_writer.py +0 -0
  119. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
  120. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/__init__.py +0 -0
  121. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/env_manager/__init__.py +0 -0
  122. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
  123. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
  124. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
  125. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
  126. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/formatter/__init__.py +0 -0
  127. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
  128. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/renderer/__init__.py +0 -0
  129. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
  130. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +0 -0
  131. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/version_control/__init__.py +0 -0
  132. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
  133. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/writer/__init__.py +0 -0
  134. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
  135. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/__init__.py +0 -0
  136. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/application/__init__.py +0 -0
  137. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/application/config_snapshot_creator.py +0 -0
  138. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/application/usage_metrics_sender.py +0 -0
  139. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/delivery/__init__.py +0 -0
  140. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/delivery/metrics_middleware.py +0 -0
  141. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/domain/__init__.py +0 -0
  142. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/domain/config_snapshot.py +0 -0
  143. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/domain/error_metrics_event.py +0 -0
  144. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/domain/metrics_reporter.py +0 -0
  145. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/domain/usage_metrics_data.py +0 -0
  146. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/infra/__init__.py +0 -0
  147. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/infra/post_hog_config.py +0 -0
  148. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/infra/post_hog_metrics_reporter.py +0 -0
  149. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/metrics/infra/user_identity_manager.py +0 -0
  150. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/__init__.py +0 -0
  151. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/application_error.py +0 -0
  152. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/__init__.py +0 -0
  153. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/config_repository.py +0 -0
  154. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/config_schema.py +0 -0
  155. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/dependency_config.py +0 -0
  156. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/general_config.py +0 -0
  157. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/git_config.py +0 -0
  158. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/domain/template_config.py +0 -0
  159. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/infra/__init__.py +0 -0
  160. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/infra/persistence/__init__.py +0 -0
  161. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/infra/persistence/yaml_config_repository.py +0 -0
  162. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/supported_licenses.py +0 -0
  163. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/supported_managers.py +0 -0
  164. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/supported_python_versions.py +0 -0
  165. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/shared/supported_templates.py +0 -0
  166. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/.gitignore +0 -0
  167. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/.pre-commit-config.yaml +0 -0
  168. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/.python-version +0 -0
  169. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
  170. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/LICENSE +0 -0
  171. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/README.md +0 -0
  172. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
  173. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/AGENTS.md +0 -0
  174. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/adr-guidelines.md +0 -0
  175. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/commands/code-review.md +0 -0
  176. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/commands/commit.md +0 -0
  177. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/commands/security-review.md +0 -0
  178. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/commands/technical-debt-review.md +0 -0
  179. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/design-doc-guidelines.md +0 -0
  180. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/adr/SKILL.md +0 -0
  181. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/complexity-review/REFERENCE.md +0 -0
  182. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/complexity-review/SKILL.md +0 -0
  183. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/design-doc/SKILL.md +0 -0
  184. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/hamburger-method/REFERENCE.md +0 -0
  185. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/hamburger-method/SKILL.md +0 -0
  186. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/micro-steps-coach/REFERENCE.md +0 -0
  187. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/micro-steps-coach/SKILL.md +0 -0
  188. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/mutation-testing/SKILL.md +0 -0
  189. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/story-splitting/REFERENCE.md +0 -0
  190. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/story-splitting/SKILL.md +0 -0
  191. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/test-desiderata/REFERENCE.md +0 -0
  192. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/test-desiderata/SKILL.md +0 -0
  193. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/agents/skills/xp-refactor/SKILL.md +0 -0
  194. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  195. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
  196. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
  197. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
  198. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
  199. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
  200. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
  201. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
  202. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
  203. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
  204. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
  205. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
  206. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
  207. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
  208. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
  209. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  210. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
  211. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
  212. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
  213. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
  214. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
  215. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  216. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
  217. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
  218. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
  219. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
  220. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
  221. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
  222. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
  223. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
  224. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
  225. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
  226. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
  227. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
  228. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
  229. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
  230. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  231. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
  232. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
  233. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  234. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
  235. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
  236. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
  237. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
  238. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
  239. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
  240. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
  241. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
  242. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
  243. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  244. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
  245. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
  246. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
  247. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
  248. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
  249. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
  250. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
  251. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
  252. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
  253. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
  254. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
  255. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
  256. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/agents/agents.yml +0 -0
  257. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/application.yml +0 -0
  258. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +0 -0
  259. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +0 -0
  260. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +0 -0
  261. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +0 -0
  262. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +0 -0
  263. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +0 -0
  264. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +0 -0
  265. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/source.yml +0 -0
  266. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/clean_architecture/test.yml +0 -0
  267. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
  268. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
  269. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
  270. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/config_files/python_version.yml +0 -0
  271. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/documentation/citation.yml +0 -0
  272. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/documentation/license.yml +0 -0
  273. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/documentation/readme.yml +0 -0
  274. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/documentation/security.yml +0 -0
  275. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -0
  276. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +0 -0
  277. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +0 -0
  278. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +0 -0
  279. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +0 -0
  280. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +0 -0
  281. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +0 -0
  282. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +0 -0
  283. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +0 -0
  284. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/source.yml +0 -0
  285. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/domain_driven_design/test.yml +0 -0
  286. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/errors.yml +0 -0
  287. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -0
  288. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/events/event_bus_infra.yml +0 -0
  289. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/events/mock_event_bus.yml +0 -0
  290. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
  291. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
  292. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
  293. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/github/github_issues_template.yml +0 -0
  294. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/github/makefile.yml +0 -0
  295. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
  296. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/logger.yml +0 -0
  297. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/macros.j2 +0 -0
  298. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/persistence/alembic_migrator.yml +0 -0
  299. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
  300. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +0 -0
  301. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +0 -0
  302. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
  303. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
  304. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/standard_project/layers/source_features.yml +0 -0
  305. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +0 -0
  306. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/standard_project/layers/test_features.yml +0 -0
  307. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/standard_project/source.yml +0 -0
  308. {instant_python-0.22.0 → instant_python-0.23.0}/instant_python/templates/project_structure/standard_project/test.yml +0 -0
  309. {instant_python-0.22.0 → instant_python-0.23.0}/makefile +0 -0
  310. {instant_python-0.22.0 → instant_python-0.23.0}/mkdocs.yml +0 -0
  311. {instant_python-0.22.0 → instant_python-0.23.0}/mypy.ini +0 -0
  312. {instant_python-0.22.0 → instant_python-0.23.0}/opencode.json +0 -0
  313. {instant_python-0.22.0 → instant_python-0.23.0}/schemas/ipy-schema.json +0 -0
  314. {instant_python-0.22.0 → instant_python-0.23.0}/schemas/main-structure-schema.json +0 -0
  315. {instant_python-0.22.0 → instant_python-0.23.0}/test/__init__.py +0 -0
  316. {instant_python-0.22.0 → instant_python-0.23.0}/test/cli/__init__.py +0 -0
  317. {instant_python-0.22.0 → instant_python-0.23.0}/test/cli/test_version_command.py +0 -0
  318. {instant_python-0.22.0 → instant_python-0.23.0}/test/config/__init__.py +0 -0
  319. {instant_python-0.22.0 → instant_python-0.23.0}/test/config/application/__init__.py +0 -0
  320. {instant_python-0.22.0 → instant_python-0.23.0}/test/config/application/test_config_generator.py +0 -0
  321. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/__init__.py +0 -0
  322. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/application/__init__.py +0 -0
  323. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/application/test_project_initializer.py +0 -0
  324. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/__init__.py +0 -0
  325. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/approvaltests_config.json +0 -0
  326. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
  327. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -0
  328. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
  329. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -0
  330. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/delivery/test_init_cli.py +0 -0
  331. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/domain/__init__.py +0 -0
  332. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/domain/mothers/__init__.py +0 -0
  333. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/domain/mothers/node_mother.py +0 -0
  334. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
  335. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/domain/test_node.py +0 -0
  336. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/__init__.py +0 -0
  337. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/env_manager/__init__.py +0 -0
  338. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/env_manager/mother/__init__.py +0 -0
  339. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
  340. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
  341. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/env_manager/test_system_console.py +0 -0
  342. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
  343. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/formatter/__init__.py +0 -0
  344. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
  345. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/renderer/__init__.py +0 -0
  346. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/renderer/test_jinja_environment.py +0 -0
  347. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
  348. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/version_control/__init__.py +0 -0
  349. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
  350. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
  351. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
  352. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
  353. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/writer/__init__.py +0 -0
  354. {instant_python-0.22.0 → instant_python-0.23.0}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
  355. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/__init__.py +0 -0
  356. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/application/__init__.py +0 -0
  357. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/application/test_config_snapshot_creator.py +0 -0
  358. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/application/test_usage_metrics_sender.py +0 -0
  359. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/domain/__init__.py +0 -0
  360. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/domain/config_snapshot_mother.py +0 -0
  361. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/domain/error_metrics_event_mother.py +0 -0
  362. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/domain/usage_metrics_event_mother.py +0 -0
  363. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/infra/__init__.py +0 -0
  364. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/infra/cassettes/error_posthog_reporter.yml +0 -0
  365. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/infra/cassettes/success_posthog_reporter.yml +0 -0
  366. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/infra/test_post_hog_config.py +0 -0
  367. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/infra/test_post_hog_metrics_reporter.py +0 -0
  368. {instant_python-0.22.0 → instant_python-0.23.0}/test/metrics/infra/test_user_identity_manager.py +0 -0
  369. {instant_python-0.22.0 → instant_python-0.23.0}/test/random_generator.py +0 -0
  370. {instant_python-0.22.0 → instant_python-0.23.0}/test/resources/base_ipy_config.yml +0 -0
  371. {instant_python-0.22.0 → instant_python-0.23.0}/test/resources/domain_error_template.py +0 -0
  372. {instant_python-0.22.0 → instant_python-0.23.0}/test/resources/hello_world.j2 +0 -0
  373. {instant_python-0.22.0 → instant_python-0.23.0}/test/resources/main_structure.yml +0 -0
  374. {instant_python-0.22.0 → instant_python-0.23.0}/test/resources/standard_project/main_structure.yml +0 -0
  375. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/__init__.py +0 -0
  376. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/__init__.py +0 -0
  377. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/mothers/__init__.py +0 -0
  378. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/mothers/config_schema_mother.py +0 -0
  379. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
  380. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/mothers/general_config_mother.py +0 -0
  381. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
  382. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
  383. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/test_config_schema.py +0 -0
  384. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/test_dependency_config.py +0 -0
  385. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/test_general_config.py +0 -0
  386. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/test_git_config.py +0 -0
  387. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/domain/test_template_configuration.py +0 -0
  388. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/persistence/__init__.py +0 -0
  389. {instant_python-0.22.0 → instant_python-0.23.0}/test/shared/persistence/test_yaml_config_repository.py +0 -0
  390. {instant_python-0.22.0 → instant_python-0.23.0}/test/utils.py +0 -0
  391. {instant_python-0.22.0 → instant_python-0.23.0}/tox.ini +0 -0
@@ -0,0 +1,40 @@
1
+ version: 2
2
+
3
+ updates:
4
+ - package-ecosystem: "uv"
5
+ directory: "/"
6
+ versioning-strategy: "increase"
7
+ open-pull-requests-limit: 5
8
+ commit-message:
9
+ prefix: "build"
10
+ schedule:
11
+ interval: "weekly"
12
+ day: "monday"
13
+ time: "06:00"
14
+ timezone: "Europe/Madrid"
15
+ cooldown:
16
+ semver-major-days: 90
17
+ semver-minor-days: 7
18
+ semver-patch-days: 3
19
+ groups:
20
+ development-minor-patch:
21
+ dependency-type: "development"
22
+ update-types:
23
+ - "minor"
24
+ - "patch"
25
+ production-minor-patch:
26
+ dependency-type: "production"
27
+ update-types:
28
+ - "minor"
29
+ - "patch"
30
+
31
+ - package-ecosystem: "github-actions"
32
+ directory: "/"
33
+ open-pull-requests-limit: 5
34
+ commit-message:
35
+ prefix: "ci"
36
+ schedule:
37
+ interval: "weekly"
38
+ day: "monday"
39
+ time: "06:00"
40
+ timezone: "Europe/Madrid"
@@ -15,12 +15,12 @@ jobs:
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
17
  - name: 🛡️ Harden runner
18
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
18
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
19
19
  with:
20
20
  egress-policy: audit
21
21
 
22
22
  - name: 📥 Checkout the repository
23
- uses: actions/checkout@v4
23
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
24
24
  with:
25
25
  ref: ${{ github.head_ref }}
26
26
  fetch-depth: 0
@@ -38,12 +38,12 @@ jobs:
38
38
  runs-on: ubuntu-latest
39
39
  steps:
40
40
  - name: 🛡️ Harden runner
41
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
41
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
42
42
  with:
43
43
  egress-policy: audit
44
44
 
45
45
  - name: 📥 Checkout the repository
46
- uses: actions/checkout@v4
46
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
47
47
  with:
48
48
  ref: ${{ github.head_ref }}
49
49
  fetch-depth: 0
@@ -65,19 +65,19 @@ jobs:
65
65
 
66
66
  steps:
67
67
  - name: 🛡️ Harden runner
68
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
68
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
69
69
  with:
70
70
  egress-policy: audit
71
71
 
72
72
  - name: 📥 Checkout the repository
73
- uses: actions/checkout@v4
73
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
74
74
  with:
75
75
  ref: ${{ github.head_ref }}
76
76
  fetch-depth: 0
77
77
  persist-credentials: false
78
78
 
79
79
  - name: ▶️ CodeQL Initialization
80
- uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
80
+ uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
81
81
  with:
82
82
  languages: python
83
83
  build-mode: none
@@ -85,7 +85,7 @@ jobs:
85
85
  config-file: ./codeql-config.yml
86
86
 
87
87
  - name: 🧐 CodeQL Analysis
88
- uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
88
+ uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
89
89
  with:
90
90
  category: '/language:python'
91
91
 
@@ -99,12 +99,12 @@ jobs:
99
99
 
100
100
  steps:
101
101
  - name: 🛡️ Harden runner
102
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
102
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
103
103
  with:
104
104
  egress-policy: audit
105
105
 
106
106
  - name: 📥 Checkout the repository
107
- uses: actions/checkout@v4
107
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
108
108
  with:
109
109
  fetch-depth: 0
110
110
  persist-credentials: false
@@ -123,12 +123,12 @@ jobs:
123
123
 
124
124
  steps:
125
125
  - name: 🛡️ Harden runner
126
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
126
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
127
127
  with:
128
128
  egress-policy: audit
129
129
 
130
130
  - name: 📥 Checkout the repository
131
- uses: actions/checkout@v4
131
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
132
132
  with:
133
133
  fetch-depth: 0
134
134
  persist-credentials: false
@@ -144,12 +144,12 @@ jobs:
144
144
  runs-on: ubuntu-latest
145
145
  steps:
146
146
  - name: 🛡️ Harden runner
147
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
147
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
148
148
  with:
149
149
  egress-policy: audit
150
150
 
151
151
  - name: 📥 Checkout the repository
152
- uses: actions/checkout@v4
152
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
153
153
  with:
154
154
  fetch-depth: 0
155
155
  persist-credentials: false
@@ -164,7 +164,7 @@ jobs:
164
164
  run: uv run pytest --cov --cov-report=xml --cov-branch test -ra -s
165
165
 
166
166
  - name: 📥 Upload coverage report to Codecov
167
- uses: codecov/codecov-action@v5
167
+ uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
168
168
  with:
169
169
  files: coverage.xml
170
170
  flags: unittests
@@ -180,12 +180,12 @@ jobs:
180
180
  python-version: [ '3.10', '3.11', '3.12', '3.13' ]
181
181
  steps:
182
182
  - name: 🛡️ Harden runner
183
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
183
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
184
184
  with:
185
185
  egress-policy: audit
186
186
 
187
187
  - name: 📥 Checkout the repository
188
- uses: actions/checkout@v4
188
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
189
189
  with:
190
190
  fetch-depth: 0
191
191
  persist-credentials: false
@@ -18,12 +18,12 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - name: 🛡️ Harden runner
21
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
21
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
22
22
  with:
23
23
  egress-policy: audit
24
24
 
25
25
  - name: 📥 Checkout the repository
26
- uses: actions/checkout@v4
26
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
27
27
  with:
28
28
  fetch-depth: 0
29
29
  persist-credentials: false
@@ -52,7 +52,7 @@ jobs:
52
52
  REDIRECT_EOF
53
53
 
54
54
  - name: 📤 Upload documentation artifact
55
- uses: actions/upload-pages-artifact@v3
55
+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
56
56
  with:
57
57
  path: site
58
58
 
@@ -71,10 +71,10 @@ jobs:
71
71
 
72
72
  steps:
73
73
  - name: 🛡️ Harden runner
74
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
74
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
75
75
  with:
76
76
  egress-policy: audit
77
77
 
78
78
  - name: 🚀 Deploy to GitHub Pages
79
79
  id: deployment
80
- uses: actions/deploy-pages@v4
80
+ uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
@@ -17,19 +17,19 @@ jobs:
17
17
 
18
18
  steps:
19
19
  - name: 🛡️ Harden runner
20
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
20
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
21
21
  with:
22
22
  egress-policy: audit
23
23
 
24
24
  - name: 📥 Checkout the repository
25
- uses: actions/checkout@v4
25
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
26
26
  with:
27
27
  fetch-depth: 0
28
28
  persist-credentials: false
29
29
 
30
30
  - name: 🔖 Create release
31
31
  id: released
32
- uses: python-semantic-release/python-semantic-release@2896129e02bb7809d2cf0c1b8e9e795ee27acbcf # v10.0.2
32
+ uses: python-semantic-release/python-semantic-release@350c48fcb3ffcdfd2e0a235206bc2ecea6b69df0 # v10.0.2
33
33
  with:
34
34
  build: true
35
35
  push: true
@@ -56,12 +56,12 @@ jobs:
56
56
 
57
57
  steps:
58
58
  - name: 🛡️ Harden runner
59
- uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
59
+ uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
60
60
  with:
61
61
  egress-policy: audit
62
62
 
63
63
  - name: 📥 Checkout the repository
64
- uses: actions/checkout@v4
64
+ uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
65
65
  with:
66
66
  fetch-depth: 0
67
67
  persist-credentials: false
@@ -2,6 +2,53 @@
2
2
 
3
3
  <!-- version list -->
4
4
 
5
+ ## v0.23.0 (2026-06-05)
6
+
7
+ ### ✨ Features
8
+
9
+ - **config**: Add new custom documentation to built in features selection
10
+ ([`73f9976`](https://github.com/dimanu-py/instant-python/commit/73f99763c39082d1d9b9b1bf3d63eaf55976bdf1))
11
+
12
+ - **templates**: Introduce custom documentation structure in main default applications when is
13
+ selected
14
+ ([`a6a101d`](https://github.com/dimanu-py/instant-python/commit/a6a101d5b8171af2113bad93951486ba2bac56b1))
15
+
16
+ - **templates**: Specify documentation folder structure to be created when custom documentation
17
+ feature is selected
18
+ ([`482aa99`](https://github.com/dimanu-py/instant-python/commit/482aa99e84bf5edb2ea9e7b4059727ec51708d71))
19
+
20
+ - **templates**: Add github action to publish documentation to github pages when built in feature
21
+ for custom docs is selected
22
+ ([`bae3778`](https://github.com/dimanu-py/instant-python/commit/bae37789a0845a281ee6a6f1c791ded35ef8648e))
23
+
24
+ - **templates**: Add mkdocs dependencies to pyproject.toml template when custom documentation built
25
+ in feature is selected
26
+ ([`4c52158`](https://github.com/dimanu-py/instant-python/commit/4c52158fdb6e429dfb0be5815e312360c7b3ea67))
27
+
28
+ - **templates**: Add new command to makefile template to allow serving documentation locally when
29
+ built in feature is selected
30
+ ([`390b4f7`](https://github.com/dimanu-py/instant-python/commit/390b4f798dd8d1d3342dfaba3e89ca84286c9aa9))
31
+
32
+ - **templates**: Add mkdocs basic template with single Home section and common features
33
+ ([`11901d8`](https://github.com/dimanu-py/instant-python/commit/11901d84b4c7b38fc419d61efd18f91ba36c33e1))
34
+
35
+ - **templates**: Add dependabot automatically when github actions built in feature is selected
36
+ ([`08db5de`](https://github.com/dimanu-py/instant-python/commit/08db5de21af8bfa7decfed1572a5df94da785344))
37
+
38
+ - **templates**: Avoid installing dependencies newer than 3 days when uv is selected
39
+ ([`feae9d7`](https://github.com/dimanu-py/instant-python/commit/feae9d790802b02bb723d2eecf6dd8d611ae9cc8))
40
+
41
+ ### 🪲 Bug Fixes
42
+
43
+ - **templates**: Correct invalid time format when dependabot.yml is updated
44
+ ([`aa4c67a`](https://github.com/dimanu-py/instant-python/commit/aa4c67a40bc858b6e0949dcfd3bf3980493e511c))
45
+
46
+ ### ♻️ Refactoring
47
+
48
+ - **templates**: Update github actions versions in templates to newer versions and using commit sha
49
+ ([`a6a96de`](https://github.com/dimanu-py/instant-python/commit/a6a96de5c49a8f94959f6222dd4a65beda47e210))
50
+
51
+
5
52
  ## v0.22.0 (2026-06-03)
6
53
 
7
54
  ### ✨ Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instant-python
3
- Version: 0.22.0
3
+ Version: 0.23.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/
@@ -0,0 +1 @@
1
+ __version__ = "0.23.0"
@@ -15,6 +15,7 @@ class SupportedBuiltInFeatures(str, Enum):
15
15
  CITATION = "citation_file"
16
16
  SECURITY = "security_file"
17
17
  AI_AGENTS = "ai_agents"
18
+ DOCS = "custom_documentation"
18
19
 
19
20
  @classmethod
20
21
  def get_supported_built_in_features(cls) -> list[str]:
@@ -20,7 +20,7 @@ jobs:
20
20
  egress-policy: audit
21
21
 
22
22
  - name: 📥 Checkout the repository
23
- uses: actions/checkout@v4
23
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
24
24
  with:
25
25
  ref: {% raw %}${{ github.head_ref }}{% endraw %}
26
26
 
@@ -43,7 +43,7 @@ jobs:
43
43
  egress-policy: audit
44
44
 
45
45
  - name: 📥 Checkout the repository
46
- uses: actions/checkout@v4
46
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
47
47
  with:
48
48
  ref: {% raw %}${{ github.head_ref }}{% endraw %}
49
49
 
@@ -65,7 +65,7 @@ jobs:
65
65
  egress-policy: audit
66
66
 
67
67
  - name: 📥 Checkout the repository
68
- uses: actions/checkout@v4
68
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
69
69
  with:
70
70
  ref: {% raw %}${{ github.head_ref }}{% endraw %}
71
71
 
@@ -92,7 +92,7 @@ jobs:
92
92
  egress-policy: audit
93
93
 
94
94
  - name: 📥 Checkout the repository
95
- uses: actions/checkout@v4
95
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
96
96
  with:
97
97
  ref: {% raw %}${{ github.head_ref }}{% endraw %}
98
98
 
@@ -128,7 +128,7 @@ jobs:
128
128
  egress-policy: audit
129
129
 
130
130
  - name: 📥 Checkout the repository
131
- uses: actions/checkout@v4
131
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
132
132
  with:
133
133
  fetch-depth: 0
134
134
  persist-credentials: false
@@ -153,7 +153,7 @@ jobs:
153
153
  egress-policy: audit
154
154
 
155
155
  - name: 📥 Checkout the repository
156
- uses: actions/checkout@v4
156
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
157
157
  with:
158
158
  fetch-depth: 0
159
159
  persist-credentials: false
@@ -174,7 +174,7 @@ jobs:
174
174
  egress-policy: audit
175
175
 
176
176
  - name: 📥 Checkout the repository
177
- uses: actions/checkout@v4
177
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
178
178
  with:
179
179
  fetch-depth: 0
180
180
  persist-credentials: false
@@ -189,7 +189,7 @@ jobs:
189
189
  run: {{ general.dependency_manager }} run pytest --cov --cov-report=xml --cov-branch test -ra -s
190
190
 
191
191
  - name: 📥 Upload coverage report to Codecov
192
- uses: codecov/codecov-action@v5
192
+ uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5
193
193
  with:
194
194
  files: coverage.xml
195
195
  flags: unittests
@@ -0,0 +1,62 @@
1
+ version: 2
2
+
3
+ updates:
4
+ - package-ecosystem: "{{ general.dependency_manager }}"
5
+ directory: "/"
6
+ versioning-strategy: "increase"
7
+ open-pull-requests-limit: 5
8
+ commit-message:
9
+ prefix: "build"
10
+ schedule:
11
+ interval: "weekly"
12
+ day: "monday"
13
+ time: "06:00"
14
+ timezone: "Europe/Madrid"
15
+ cooldown:
16
+ semver-major-days: 90
17
+ semver-minor-days: 7
18
+ semver-patch-days: 3
19
+ groups:
20
+ development-minor-patch:
21
+ dependency-type: "development"
22
+ update-types:
23
+ - "minor"
24
+ - "patch"
25
+ production-minor-patch:
26
+ dependency-type: "production"
27
+ update-types:
28
+ - "minor"
29
+ - "patch"
30
+
31
+ - package-ecosystem: "github-actions"
32
+ directory: "/"
33
+ open-pull-requests-limit: 5
34
+ commit-message:
35
+ prefix: "ci"
36
+ schedule:
37
+ interval: "weekly"
38
+ day: "monday"
39
+ time: "06:00"
40
+ timezone: "Europe/Madrid"
41
+
42
+ - package-ecosystem: "docker"
43
+ directory: "/"
44
+ open-pull-requests-limit: 5
45
+ commit-message:
46
+ prefix: "build"
47
+ schedule:
48
+ interval: "weekly"
49
+ day: "monday"
50
+ time: "06:00"
51
+ timezone: "Europe/Madrid"
52
+
53
+ - package-ecosystem: "docker-compose"
54
+ directory: "/"
55
+ open-pull-requests-limit: 5
56
+ commit-message:
57
+ prefix: "build"
58
+ schedule:
59
+ interval: "weekly"
60
+ day: "monday"
61
+ time: "06:00"
62
+ timezone: "Europe/Madrid"
@@ -0,0 +1,63 @@
1
+ name: Build and Deploy Documentation to GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ build:
14
+ name: Build documentation
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: read
18
+
19
+ steps:
20
+ - name: 🛡️ Harden runner
21
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
22
+ with:
23
+ egress-policy: audit
24
+
25
+ - name: 📥 Checkout the repository
26
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
27
+ with:
28
+ fetch-depth: 0
29
+ persist-credentials: false
30
+
31
+ - name: 🛠️ Setup environment
32
+ uses: ./.github/actions/python_setup
33
+
34
+ - name: 📖 Build documentation
35
+ run: uv run mkdocs build
36
+
37
+ - name: 📤 Upload documentation artifact
38
+ uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
39
+ with:
40
+ path: site
41
+
42
+ deploy:
43
+ name: Deploy to GitHub Pages
44
+ needs: build
45
+ if: github.ref == 'refs/heads/main'
46
+ runs-on: ubuntu-latest
47
+ permissions:
48
+ pages: write
49
+ id-token: write
50
+
51
+ environment:
52
+ name: github-pages
53
+ url: ${{ steps.deployment.outputs.page_url }}
54
+
55
+ steps:
56
+ - name: 🛡️ Harden runner
57
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
58
+ with:
59
+ egress-policy: audit
60
+
61
+ - name: 🚀 Deploy to GitHub Pages
62
+ id: deployment
63
+ uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5
@@ -32,7 +32,7 @@ jobs:
32
32
  egress-policy: audit
33
33
 
34
34
  - name: 📥 Checkout the repository
35
- uses: actions/checkout@v4
35
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
36
36
  with:
37
37
  fetch-depth: 0
38
38
  persist-credentials: false
@@ -77,7 +77,7 @@ jobs:
77
77
  egress-policy: audit
78
78
 
79
79
  - name: 📥 Checkout the repository
80
- uses: actions/checkout@v4
80
+ uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
81
81
  with:
82
82
  fetch-depth: 0
83
83
  persist-credentials: false
@@ -0,0 +1,70 @@
1
+ site_name: {{ general.slug }}
2
+ site_url: https://{{ git.username }}.github.io/{{ general.slug }}/
3
+ site_description: >
4
+ {{ general.description }}
5
+ repo_name: {{ general.slug }}
6
+ repo_url: https://github.com/{{ git.username }}/{{ general.slug }}
7
+ docs_dir: docs/documentation
8
+ plugins:
9
+ - search
10
+ - tags
11
+ - section-index
12
+ extra_javascript:
13
+ - https://cdn.jsdelivr.net/npm/chart.js
14
+ markdown_extensions:
15
+ - admonition
16
+ - pymdownx.details
17
+ - pymdownx.superfences:
18
+ - attr_list:
19
+ - pymdownx.emoji:
20
+ emoji_index: !!python/name:material.extensions.emoji.twemoji
21
+ emoji_generator: !!python/name:material.extensions.emoji.to_svg
22
+ - pymdownx.highlight:
23
+ anchor_linenums: true
24
+ line_spans: __span
25
+ pygments_lang_class: true
26
+ - pymdownx.inlinehilite:
27
+ - pymdownx.snippets:
28
+ - pymdownx.superfences:
29
+ theme:
30
+ name: material
31
+ font:
32
+ text: Roboto
33
+ code: Roboto Mono
34
+ favicon: assets/favicon.svg
35
+ logo: assets/logo.svg
36
+ icon:
37
+ logo: logo
38
+ features:
39
+ - navigation.path
40
+ - navigation.instant
41
+ - navigation.instant.prefetch
42
+ - navigation.instant.progress
43
+ - navigation.sections
44
+ - navigation.indexes
45
+ - navigation.tracking
46
+ - content.code.annotate
47
+ - toc.follow
48
+ - navigation.footer
49
+ - navigation.top
50
+ - content.code.copy
51
+ - content.tabs.link
52
+ - navigation.tabs
53
+ - navigation.tabs.sticky
54
+ - search.suggest
55
+ - search.highlight
56
+ palette:
57
+ - scheme: slate
58
+ toggle:
59
+ icon: material/weather-sunny
60
+ name: Dark Mode
61
+ primary: '#B4BEFE'
62
+ accent: '#FAB387'
63
+ - scheme: default
64
+ toggle:
65
+ icon: material/weather-night
66
+ name: Light Mode
67
+ primary: '#B4BEFE'
68
+ accent: '#FAB387'
69
+ nav:
70
+ - Home: HOME.md
@@ -31,6 +31,13 @@
31
31
  "pytest": ["github_actions", "makefile", "precommit_hook"],
32
32
  "pytest-asyncio": ["async_alembic", "async_sqlalchemy"],
33
33
  "object-mother-sindri": ["value_objects"]
34
+ },
35
+ "docs": {
36
+ "mkdocs": ["custom_documentation"],
37
+ "mkdocs-literate-nav": ["custom_documentation"],
38
+ "mkdocs-macros-plugin": ["custom_documentation"],
39
+ "mkdocs-material": ["custom_documentation"],
40
+ "mkdocs-section-index": ["custom_documentation"]
34
41
  }
35
42
  } %}
36
43
  {% macro get_dev_group_dependencies(group_name) -%}
@@ -48,6 +55,7 @@
48
55
  {% set release_deps = get_dev_group_dependencies("release") %}
49
56
  {% set lint_deps = get_dev_group_dependencies("lint") %}
50
57
  {% set test_deps = get_dev_group_dependencies("test") %}
58
+ {% set docs_deps = get_dev_group_dependencies("docs") %}
51
59
  [project]
52
60
  name = "{{ general.slug }}"
53
61
  version = "{{ general.version }}"
@@ -75,6 +83,9 @@ dev = [
75
83
  {% if test_deps.strip() %}
76
84
  {include-group = "test"},
77
85
  {% endif %}
86
+ {% if docs_deps.strip() %}
87
+ {include-group = "docs"},
88
+ {% endif %}
78
89
  ]
79
90
  {% if release_deps.strip() %}
80
91
  release = [
@@ -88,6 +99,15 @@ lint = [
88
99
  test = [
89
100
  {{ test_deps }}]
90
101
  {% endif %}
102
+ {% if docs_deps.strip() %}
103
+ docs = [
104
+ {{ docs_deps }}]
105
+ {% endif %}
106
+ {% endif %}
107
+
108
+ {% if general.dependency_manager == "uv" %}
109
+ [tool.uv]
110
+ exclude-newer = "3 days"
91
111
  {% endif %}
92
112
 
93
113
  {% if dependencies | has_dependency("ruff") or has_github_actions_or_makefile %}
@@ -3,6 +3,7 @@
3
3
  {% set has_pre_commit_hooks = "precommit_hook" in template.built_in_features %}
4
4
  {% set has_github_actions_or_makefile = ["github_actions", "makefile"] | is_in(template.built_in_features) %}
5
5
  {% set has_agents = "ai_agents" in template.built_in_features %}
6
+ {% set has_custom_docs = "custom_docs" in template.built_in_features %}
6
7
  .DEFAULT_GOAL := help
7
8
 
8
9
  .PHONY: help
@@ -183,7 +184,6 @@ search: ## Show package details.
183
184
  {% elif has_uv %}
184
185
  @uv pip show $$package
185
186
  {% endif %}
186
-
187
187
  {% if has_agents %}
188
188
  .PHONY: claude
189
189
  claude: ## Create symlinks for Claude Code compatibility (CLAUDE.md → AGENTS.md, .claude → .agents).
@@ -200,4 +200,9 @@ opencode: ## Create symlinks for OpenCode compatibility.
200
200
  @ln -s ../.agents/commands .opencode/commands
201
201
  @ls -la .opencode
202
202
 
203
+ {% endif %}
204
+ {% if has_custom_docs %}
205
+ .PHONY: docs-serve
206
+ docs-serve: ## Start server for documentation.
207
+ @uv run mkdocs serve
203
208
  {% endif %}