instant-python 0.8.1__tar.gz → 0.9.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 (373) hide show
  1. instant_python-0.9.0/.github/ISSUE_TEMPLATE/bug_report.yml +67 -0
  2. instant_python-0.9.0/.github/ISSUE_TEMPLATE/feature_request.yml +21 -0
  3. {instant_python-0.8.1 → instant_python-0.9.0}/.github/actions/python_setup/action.yml +9 -4
  4. instant_python-0.9.0/.github/pull_request_template.md +30 -0
  5. instant_python-0.9.0/.github/workflows/ci.yml +226 -0
  6. instant_python-0.9.0/.github/workflows/release.yml +75 -0
  7. instant_python-0.9.0/.pre-commit-config.yaml +73 -0
  8. {instant_python-0.8.1 → instant_python-0.9.0}/CHANGELOG.md +50 -2
  9. instant_python-0.9.0/CITATION.cff +21 -0
  10. {instant_python-0.8.1 → instant_python-0.9.0}/PKG-INFO +2 -2
  11. instant_python-0.9.0/SECURITY.md +43 -0
  12. instant_python-0.9.0/codeql-config.yml +3 -0
  13. instant_python-0.9.0/docs/changelog/.components/changelog_header.md.j2 +7 -0
  14. instant_python-0.9.0/docs/changelog/.components/changelog_init.md.j2 +21 -0
  15. instant_python-0.9.0/docs/changelog/.components/changelog_update.md.j2 +59 -0
  16. instant_python-0.9.0/docs/changelog/.components/changes.md.j2 +127 -0
  17. instant_python-0.9.0/docs/changelog/.components/first_release.md.j2 +18 -0
  18. instant_python-0.9.0/docs/changelog/.components/macros.md.j2 +187 -0
  19. instant_python-0.9.0/docs/changelog/.components/versioned_changes.md.j2 +20 -0
  20. instant_python-0.9.0/docs/changelog/.release_notes.md.j2 +60 -0
  21. instant_python-0.9.0/docs/changelog/CHANGELOG.md.j2 +22 -0
  22. instant_python-0.9.0/docs/guide/command_init.md +622 -0
  23. instant_python-0.9.0/docs/home/contributing.md +205 -0
  24. instant_python-0.9.0/docs/home/releases.md +35 -0
  25. instant_python-0.9.0/docs/home/security.md +43 -0
  26. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/jinja_environment.py +1 -0
  27. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_built_in_features.py +4 -0
  28. instant_python-0.9.0/instant_python/templates/boilerplate/.pre-commit-config.yml +71 -0
  29. instant_python-0.9.0/instant_python/templates/boilerplate/CITATION.cff +13 -0
  30. instant_python-0.9.0/instant_python/templates/boilerplate/SECURITY.md +43 -0
  31. instant_python-0.8.1/instant_python/templates/boilerplate/event_bus/aggregate_root.py → instant_python-0.9.0/instant_python/templates/boilerplate/event_bus/event_aggregate.py +2 -1
  32. instant_python-0.9.0/instant_python/templates/boilerplate/exceptions/domain_error.py +6 -0
  33. instant_python-0.9.0/instant_python/templates/boilerplate/exceptions/error.py +24 -0
  34. instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/application.py +68 -0
  35. instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/error_handlers.py +64 -0
  36. instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/error_response.py +31 -0
  37. instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +33 -0
  38. instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/success_response.py +13 -0
  39. instant_python-0.9.0/instant_python/templates/boilerplate/github/action.yml +35 -0
  40. instant_python-0.9.0/instant_python/templates/boilerplate/github/bug_report.yml +60 -0
  41. instant_python-0.9.0/instant_python/templates/boilerplate/github/ci.yml +199 -0
  42. instant_python-0.9.0/instant_python/templates/boilerplate/github/feature_request.yml +21 -0
  43. instant_python-0.9.0/instant_python/templates/boilerplate/github/release.yml +93 -0
  44. instant_python-0.9.0/instant_python/templates/boilerplate/logger/file_logger.py +56 -0
  45. instant_python-0.9.0/instant_python/templates/boilerplate/logger/file_rotating_handler.py +37 -0
  46. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/logger/json_formatter.py +2 -2
  47. instant_python-0.9.0/instant_python/templates/boilerplate/pyproject.toml +107 -0
  48. instant_python-0.9.0/instant_python/templates/boilerplate/scripts/add_dependency.py +45 -0
  49. instant_python-0.9.0/instant_python/templates/boilerplate/scripts/local_setup.py +12 -0
  50. instant_python-0.9.0/instant_python/templates/boilerplate/scripts/makefile +184 -0
  51. instant_python-0.9.0/instant_python/templates/boilerplate/scripts/post-merge.py +40 -0
  52. instant_python-0.9.0/instant_python/templates/boilerplate/scripts/pre-commit.py +15 -0
  53. instant_python-0.9.0/instant_python/templates/boilerplate/scripts/remove_dependency.py +40 -0
  54. instant_python-0.9.0/instant_python/templates/boilerplate/value_object/aggregate.py +99 -0
  55. instant_python-0.9.0/instant_python/templates/boilerplate/value_object/int_value_object.py +23 -0
  56. instant_python-0.9.0/instant_python/templates/boilerplate/value_object/string_value_object.py +17 -0
  57. instant_python-0.9.0/instant_python/templates/boilerplate/value_object/uuid.py +25 -0
  58. instant_python-0.9.0/instant_python/templates/boilerplate/value_object/validation.py +7 -0
  59. instant_python-0.9.0/instant_python/templates/boilerplate/value_object/value_object.py +119 -0
  60. instant_python-0.9.0/instant_python/templates/project_structure/citation.yml.j2 +3 -0
  61. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +17 -4
  62. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +2 -2
  63. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +17 -4
  64. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +2 -2
  65. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/event_bus_domain.yml.j2 +20 -4
  66. instant_python-0.9.0/instant_python/templates/project_structure/fastapi_app.yml.j2 +28 -0
  67. instant_python-0.8.1/instant_python/templates/project_structure/fastapi_app.yml.j2 → instant_python-0.9.0/instant_python/templates/project_structure/fastapi_domain.yml.j2 +3 -3
  68. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/fastapi_infra.yml.j2 +2 -2
  69. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/github_action.yml.j2 +2 -2
  70. instant_python-0.9.0/instant_python/templates/project_structure/github_issues_template.yml.j2 +12 -0
  71. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/logger.yml.j2 +4 -1
  72. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/makefile.yml.j2 +7 -16
  73. instant_python-0.8.1/instant_python/templates/project_structure/pre_commit.yml.j2 → instant_python-0.9.0/instant_python/templates/project_structure/precommit_hook.yml.j2 +1 -1
  74. instant_python-0.9.0/instant_python/templates/project_structure/security.yml.j2 +3 -0
  75. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +18 -5
  76. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/standard_project/source.yml.j2 +2 -2
  77. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/value_objects.yml.j2 +26 -9
  78. instant_python-0.9.0/makefile +120 -0
  79. {instant_python-0.8.1 → instant_python-0.9.0}/mkdocs.yml +1 -0
  80. {instant_python-0.8.1 → instant_python-0.9.0}/pyproject.toml +52 -9
  81. instant_python-0.9.0/scripts/add_dependency.py +24 -0
  82. instant_python-0.9.0/scripts/remove_dependency.py +22 -0
  83. instant_python-0.9.0/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_fastapi_with_logger.json.approved.txt +1 -0
  84. instant_python-0.9.0/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_fastapi_with_migrator.json.approved.txt +1 -0
  85. instant_python-0.9.0/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_only_with_fastapi.json.approved.txt +1 -0
  86. instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi/application.py +21 -0
  87. {instant_python-0.8.1/instant_python/templates → instant_python-0.9.0/test/project_creator/resources}/boilerplate/fastapi/http_response.py +23 -6
  88. instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi/lifespan.py +11 -0
  89. instant_python-0.9.0/test/project_creator/resources/boilerplate/logger/__init__.py +0 -0
  90. {instant_python-0.8.1/instant_python/templates → instant_python-0.9.0/test/project_creator/resources}/boilerplate/logger/logger.py +11 -6
  91. instant_python-0.9.0/test/project_creator/resources/boilerplate/persistence/alembic_migrator.py +18 -0
  92. instant_python-0.9.0/test/project_creator/resources/clean_architecture/main_structure.yml.j2 +69 -0
  93. instant_python-0.9.0/test/project_creator/resources/config_fastapi_with_logger.yml +26 -0
  94. instant_python-0.9.0/test/project_creator/resources/config_fastapi_with_migrator.yml +26 -0
  95. instant_python-0.9.0/test/project_creator/resources/config_with_only_fastapi.yml +25 -0
  96. instant_python-0.9.0/test/project_creator/resources/rendered_project_structure_fastapi_with_logger.json +64 -0
  97. instant_python-0.9.0/test/project_creator/resources/rendered_project_structure_fastapi_with_migrator.json +62 -0
  98. instant_python-0.9.0/test/project_creator/resources/rendered_project_structure_only_with_fastapi.json +52 -0
  99. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/test_file_system.py +20 -5
  100. instant_python-0.9.0/test/render/__init__.py +0 -0
  101. instant_python-0.9.0/tox.ini +12 -0
  102. {instant_python-0.8.1 → instant_python-0.9.0}/uv.lock +641 -14
  103. instant_python-0.8.1/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
  104. instant_python-0.8.1/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
  105. instant_python-0.8.1/.github/workflows/publish.yml +0 -21
  106. instant_python-0.8.1/.github/workflows/release.yml +0 -75
  107. instant_python-0.8.1/.github/workflows/test_lint.yml +0 -125
  108. instant_python-0.8.1/cz.yaml +0 -21
  109. instant_python-0.8.1/docs/guide/command_init.md +0 -386
  110. instant_python-0.8.1/docs/home/contributing.md +0 -13
  111. instant_python-0.8.1/docs/home/releases.md +0 -37
  112. instant_python-0.8.1/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -33
  113. instant_python-0.8.1/instant_python/templates/boilerplate/fastapi/application.py +0 -25
  114. instant_python-0.8.1/instant_python/templates/boilerplate/fastapi/status_code.py +0 -9
  115. instant_python-0.8.1/instant_python/templates/boilerplate/github/action.yml +0 -22
  116. instant_python-0.8.1/instant_python/templates/boilerplate/github/lint.yml +0 -30
  117. instant_python-0.8.1/instant_python/templates/boilerplate/github/test.yml +0 -30
  118. instant_python-0.8.1/instant_python/templates/boilerplate/pyproject.toml +0 -63
  119. instant_python-0.8.1/instant_python/templates/boilerplate/scripts/add_dependency.sh +0 -37
  120. instant_python-0.8.1/instant_python/templates/boilerplate/scripts/local_setup.sh +0 -15
  121. instant_python-0.8.1/instant_python/templates/boilerplate/scripts/makefile +0 -125
  122. instant_python-0.8.1/instant_python/templates/boilerplate/scripts/post-merge +0 -11
  123. instant_python-0.8.1/instant_python/templates/boilerplate/scripts/pre-commit +0 -4
  124. instant_python-0.8.1/instant_python/templates/boilerplate/scripts/remove_dependency.sh +0 -36
  125. instant_python-0.8.1/instant_python/templates/boilerplate/value_object/int_value_object.py +0 -14
  126. instant_python-0.8.1/instant_python/templates/boilerplate/value_object/string_value_object.py +0 -19
  127. instant_python-0.8.1/instant_python/templates/boilerplate/value_object/uuid.py +0 -17
  128. instant_python-0.8.1/instant_python/templates/boilerplate/value_object/value_object.py +0 -48
  129. instant_python-0.8.1/instant_python/templates/project_structure/fastapi_domain.yml.j2 +0 -7
  130. instant_python-0.8.1/makefile +0 -69
  131. instant_python-0.8.1/scripts/add_dependency.sh +0 -18
  132. instant_python-0.8.1/scripts/remove_dependency.sh +0 -18
  133. instant_python-0.8.1/test/project_creator/resources/boilerplate/exceptions/domain_error.py +0 -22
  134. instant_python-0.8.1/test/render/resources/clean_architecture/main_structure.yml.j2 +0 -22
  135. instant_python-0.8.1/tox.ini +0 -18
  136. {instant_python-0.8.1 → instant_python-0.9.0}/.github/FUNDING.yml +0 -0
  137. {instant_python-0.8.1 → instant_python-0.9.0}/.github/workflows/pages.yml +0 -0
  138. {instant_python-0.8.1 → instant_python-0.9.0}/.gitignore +0 -0
  139. {instant_python-0.8.1 → instant_python-0.9.0}/.python-version +0 -0
  140. {instant_python-0.8.1 → instant_python-0.9.0}/LICENSE +0 -0
  141. {instant_python-0.8.1 → instant_python-0.9.0}/README.md +0 -0
  142. {instant_python-0.8.1 → instant_python-0.9.0}/docs/assets/favicon.svg +0 -0
  143. {instant_python-0.8.1 → instant_python-0.9.0}/docs/assets/logo.svg +0 -0
  144. {instant_python-0.8.1 → instant_python-0.9.0}/docs/downloads_macro.py +0 -0
  145. {instant_python-0.8.1 → instant_python-0.9.0}/docs/examples/configuration.md +0 -0
  146. {instant_python-0.8.1 → instant_python-0.9.0}/docs/examples/custom_template.md +0 -0
  147. {instant_python-0.8.1 → instant_python-0.9.0}/docs/guide/command_config.md +0 -0
  148. {instant_python-0.8.1 → instant_python-0.9.0}/docs/home/getting_started.md +0 -0
  149. {instant_python-0.8.1 → instant_python-0.9.0}/docs/home/index.md +0 -0
  150. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/__init__.py +0 -0
  151. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/cli.py +0 -0
  152. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/commands/__init__.py +0 -0
  153. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/commands/config.py +0 -0
  154. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/commands/init.py +0 -0
  155. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/__init__.py +0 -0
  156. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/configuration_schema.py +0 -0
  157. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/dependency/__init__.py +0 -0
  158. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/dependency/dependency_configuration.py +0 -0
  159. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/dependency/not_dev_dependency_included_in_group.py +0 -0
  160. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/__init__.py +0 -0
  161. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/general_configuration.py +0 -0
  162. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/invalid_dependency_manager_value.py +0 -0
  163. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/invalid_license_value.py +0 -0
  164. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/invalid_python_version_value.py +0 -0
  165. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/git/__init__.py +0 -0
  166. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/git/git_configuration.py +0 -0
  167. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/git/git_user_or_email_not_present.py +0 -0
  168. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/__init__.py +0 -0
  169. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/config_key_not_present.py +0 -0
  170. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/configuration_file_not_found.py +0 -0
  171. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/empty_configuration_not_allowed.py +0 -0
  172. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/missing_mandatory_fields.py +0 -0
  173. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/parser.py +0 -0
  174. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/__init__.py +0 -0
  175. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/boolean_question.py +0 -0
  176. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/choice_question.py +0 -0
  177. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/conditional_question.py +0 -0
  178. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/free_text_question.py +0 -0
  179. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/multiple_choice_question.py +0 -0
  180. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/question.py +0 -0
  181. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/questionary.py +0 -0
  182. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question_wizard.py +0 -0
  183. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/__init__.py +0 -0
  184. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/dependencies_step.py +0 -0
  185. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/general_step.py +0 -0
  186. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/git_step.py +0 -0
  187. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/steps.py +0 -0
  188. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/template_step.py +0 -0
  189. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/__init__.py +0 -0
  190. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/bounded_context_not_applicable.py +0 -0
  191. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/bounded_context_not_especified.py +0 -0
  192. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/invalid_built_in_features_values.py +0 -0
  193. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/invalid_template_value.py +0 -0
  194. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/template_configuration.py +0 -0
  195. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/__init__.py +0 -0
  196. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/command_execution_error.py +0 -0
  197. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/dependency_manager.py +0 -0
  198. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/dependency_manager_factory.py +0 -0
  199. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/pdm_dependency_manager.py +0 -0
  200. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/unknown_dependency_manager_error.py +0 -0
  201. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/uv_dependency_manager.py +0 -0
  202. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/formatter/__init__.py +0 -0
  203. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/formatter/project_formatter.py +0 -0
  204. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/git/__init__.py +0 -0
  205. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/git/git_configurer.py +0 -0
  206. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/instant_python_typer.py +0 -0
  207. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/__init__.py +0 -0
  208. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/directory.py +0 -0
  209. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/file.py +0 -0
  210. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/file_has_not_been_created.py +0 -0
  211. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/file_system.py +0 -0
  212. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/node.py +0 -0
  213. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/unknown_node_typer_error.py +0 -0
  214. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/__init__.py +0 -0
  215. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/custom_project_renderer.py +0 -0
  216. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/jinja_custom_filters.py +0 -0
  217. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/jinja_project_renderer.py +0 -0
  218. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/template_file_not_found_error.py +0 -0
  219. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/unknown_template_error.py +0 -0
  220. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/__init__.py +0 -0
  221. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/application_error.py +0 -0
  222. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/error_types.py +0 -0
  223. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_licenses.py +0 -0
  224. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_managers.py +0 -0
  225. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_python_versions.py +0 -0
  226. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_templates.py +0 -0
  227. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/.gitignore +0 -0
  228. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/.python-version +0 -0
  229. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/LICENSE +0 -0
  230. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/README.md +0 -0
  231. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
  232. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
  233. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
  234. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
  235. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
  236. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
  237. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
  238. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
  239. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
  240. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
  241. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
  242. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
  243. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
  244. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
  245. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
  246. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
  247. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +0 -0
  248. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +0 -0
  249. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +0 -0
  250. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
  251. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
  252. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
  253. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
  254. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
  255. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
  256. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
  257. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
  258. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
  259. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
  260. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
  261. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
  262. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
  263. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
  264. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
  265. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
  266. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
  267. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
  268. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
  269. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
  270. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
  271. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/pytest.ini +0 -0
  272. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/random_generator.py +0 -0
  273. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
  274. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
  275. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
  276. /instant_python-0.8.1/instant_python/templates/boilerplate/scripts/pre-push → /instant_python-0.9.0/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
  277. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
  278. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/value_object/__init__.py +0 -0
  279. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/alembic_migrator.yml.j2 +0 -0
  280. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/async_alembic.yml.j2 +0 -0
  281. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/async_sqlalchemy.yml.j2 +0 -0
  282. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +0 -0
  283. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 +0 -0
  284. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +0 -0
  285. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/event_bus_infra.yml.j2 +0 -0
  286. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/gitignore.yml.j2 +0 -0
  287. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/license.yml.j2 +0 -0
  288. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/macros.j2 +0 -0
  289. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/mypy.yml.j2 +0 -0
  290. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/pyproject.yml.j2 +0 -0
  291. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/pytest.yml.j2 +0 -0
  292. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/python_version.yml.j2 +0 -0
  293. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/readme.yml.j2 +0 -0
  294. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/standard_project/test.yml.j2 +0 -0
  295. {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 +0 -0
  296. {instant_python-0.8.1 → instant_python-0.9.0}/mypy.ini +0 -0
  297. {instant_python-0.8.1 → instant_python-0.9.0}/test/__init__.py +0 -0
  298. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/__init__.py +0 -0
  299. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/dependency/__init__.py +0 -0
  300. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/dependency/dependency_configuration_mother.py +0 -0
  301. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/dependency/test_dependency_configuration.py +0 -0
  302. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/general/__init__.py +0 -0
  303. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/general/general_configuration_mother.py +0 -0
  304. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/general/test_general_configuration.py +0 -0
  305. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/git/__init__.py +0 -0
  306. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/git/git_configuration_mother.py +0 -0
  307. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/git/test_git_configuration.py +0 -0
  308. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/__init__.py +0 -0
  309. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/approvaltests_config.json +0 -0
  310. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/approved_files/TestParser.test_should_parse_configuration.approved.txt +0 -0
  311. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/__init__.py +0 -0
  312. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/config.yml +0 -0
  313. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/empty_config.yml +0 -0
  314. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_dependencies_fields_config.yml +0 -0
  315. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_general_fields_config.yml +0 -0
  316. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_git_fields_config.yml +0 -0
  317. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_keys_config.yml +0 -0
  318. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_template_fields_config.yml +0 -0
  319. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/test_parser.py +0 -0
  320. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/__init__.py +0 -0
  321. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_boolean_question.py +0 -0
  322. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_choice_question.py +0 -0
  323. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_free_text_question.py +0 -0
  324. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_multiple_choice_question.py +0 -0
  325. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/template/__init__.py +0 -0
  326. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/template/template_configuration_mother.py +0 -0
  327. {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/template/test_template_configuration.py +0 -0
  328. {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/__init__.py +0 -0
  329. {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/mock_pdm_dependency_manager.py +0 -0
  330. {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/mock_uv_dependency_manager.py +0 -0
  331. {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/test_pdm_dependency_manager.py +0 -0
  332. {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/test_uv_dependency_manager.py +0 -0
  333. {instant_python-0.8.1 → instant_python-0.9.0}/test/formatter/__init__.py +0 -0
  334. {instant_python-0.8.1 → instant_python-0.9.0}/test/formatter/mock_project_formatter.py +0 -0
  335. {instant_python-0.8.1 → instant_python-0.9.0}/test/formatter/test_project_formatter.py +0 -0
  336. {instant_python-0.8.1 → instant_python-0.9.0}/test/git/__init__.py +0 -0
  337. {instant_python-0.8.1 → instant_python-0.9.0}/test/git/mock_git_configurer.py +0 -0
  338. {instant_python-0.8.1 → instant_python-0.9.0}/test/git/test_git_configurer.py +0 -0
  339. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/__init__.py +0 -0
  340. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/approvaltests_config.json +0 -0
  341. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_custom_project_structure.json.approved.txt +0 -0
  342. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure.json.approved.txt +0 -0
  343. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/approved_files/TestFileSystem.test_should_create_folders_and_files.approved.txt +0 -0
  344. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/approved_files/TestFileSystem.test_should_generate_file_system_tree.approved.txt +0 -0
  345. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/directory_mother.py +0 -0
  346. {instant_python-0.8.1/instant_python/templates → instant_python-0.9.0/test/project_creator/resources}/boilerplate/exceptions/domain_error.py +0 -0
  347. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/boilerplate/exceptions/domain_error_simple.py +0 -0
  348. {instant_python-0.8.1/test/render → instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi}/__init__.py +0 -0
  349. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/config.yml +0 -0
  350. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/rendered_custom_project_structure.json +0 -0
  351. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/rendered_project_structure.json +0 -0
  352. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/test_directory.py +0 -0
  353. {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/test_file.py +0 -0
  354. {instant_python-0.8.1 → instant_python-0.9.0}/test/random_generator.py +0 -0
  355. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approvaltests_config.json +0 -0
  356. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestCustomProjectRenderer.test_should_render_custom_template.approved.txt +0 -0
  357. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.clean_architecture_config.yml.approved.txt +0 -0
  358. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.domain_driven_design_config.yml.approved.txt +0 -0
  359. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.received.txt +0 -0
  360. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.standard_project_with_dependency_config.yml.approved.txt +0 -0
  361. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.standard_project_with_git_config.yml.approved.txt +0 -0
  362. {instant_python-0.8.1/test/project_creator → instant_python-0.9.0/test/render}/resources/clean_architecture/main_structure.yml.j2 +0 -0
  363. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/clean_architecture_config.yml +0 -0
  364. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/custom_template.yml +0 -0
  365. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/domain_driven_design/main_structure.yml.j2 +0 -0
  366. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/domain_driven_design_config.yml +0 -0
  367. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/standard_project/main_structure.yml.j2 +0 -0
  368. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/standard_project_with_dependency_config.yml +0 -0
  369. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/standard_project_with_git_config.yml +0 -0
  370. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/test_template.j2 +0 -0
  371. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/test_custom_project_renderer.py +0 -0
  372. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/test_jinja_environment.py +0 -0
  373. {instant_python-0.8.1 → instant_python-0.9.0}/test/render/test_jinja_project_renderer.py +0 -0
@@ -0,0 +1,67 @@
1
+ name: 🐛 Bug Report
2
+ description: Create a report to help us improve.
3
+ labels:
4
+ - bug
5
+ - pending
6
+
7
+ body:
8
+ - type: textarea
9
+ id: description
10
+ validations:
11
+ required: true
12
+ attributes:
13
+ label: ✏️ Description
14
+ description: |
15
+ Please provide a clear and concise description of the bug you are experiencing.
16
+
17
+ Specify what is the expected behavior and what is actually happening. You can add
18
+ screenshots to help illustrate the issue.
19
+
20
+ Please provide as much detail as possible to make understanding and solving your problem as quick as possible. 🙏
21
+
22
+ - type: textarea
23
+ id: reproduce
24
+ attributes:
25
+ label: ✅ Steps To Reproduce
26
+ render: Python
27
+ description: >
28
+ Please list the steps needed to reproduce the bug you are experiencing.
29
+
30
+ If applicable, please add a self-contained,
31
+ [minimal, reproducible, example](https://stackoverflow.com/help/minimal-reproducible-example)
32
+ demonstrating the bug.\
33
+
34
+ placeholder: >
35
+ # 1. Install the package using pip
36
+ # 2. Run the script with the following command:
37
+ # python script.py
38
+ # 3. Observe the output\
39
+
40
+ - type: dropdown
41
+ id: python-version
42
+ attributes:
43
+ label: 🐍 Which version of Python are you using?
44
+ options:
45
+ - 3.8
46
+ - 3.9
47
+ - 3.10
48
+ - 3.11
49
+ - 3.12
50
+ - 3.13
51
+ - other
52
+ validations:
53
+ required: true
54
+
55
+ - type: input
56
+ id: ipy-version
57
+ validations:
58
+ required: true
59
+ attributes:
60
+ label: 📦 Which version of Instant Python are you using?
61
+
62
+ - type: input
63
+ id: os
64
+ validations:
65
+ required: true
66
+ attributes:
67
+ label: 🖥️ Which operating system are you using?
@@ -0,0 +1,21 @@
1
+ name: 🚀 Feature Request
2
+ description: Suggest a new idea for Instant Python.
3
+ labels:
4
+ - enhancement
5
+ - pending
6
+
7
+ body:
8
+ - type: textarea
9
+ id: description
10
+ validations:
11
+ required: true
12
+ attributes:
13
+ label: ✏️ Description
14
+ description: |
15
+ Please give as much detail as possible about the feature you would like to suggest.
16
+
17
+ You might like to add:
18
+ * A clear and concise description of the idea that should be implemented
19
+ * An example of how the feature should work
20
+ * Any relevant links or resources that can help understand the feature better
21
+ * A list of scenarios or validations that the feature should cover as well as any restrictions or limitations that should be considered
@@ -9,12 +9,17 @@ outputs: {}
9
9
  runs:
10
10
  using: composite
11
11
  steps:
12
- - uses: actions/setup-python@v5
12
+ - name: 🐍 Setup Python
13
+ uses: actions/setup-python@v5
13
14
  with:
14
15
  python-version: ${{ inputs.python-version }}
15
- - name: Install dependency manager
16
+
17
+ - name: 🔨 Install dependency manager
16
18
  run: python -m pip install uv
17
19
  shell: bash
18
- - name: Install dependencies
19
- run: uv sync --all-groups
20
+
21
+ - name: 📦 Install dependencies
22
+ run: |
23
+ uv sync --all-groups
24
+ uv run -m pre_commit install --hook-type pre-commit --hook-type commit-msg --hook-type pre-push
20
25
  shell: bash
@@ -0,0 +1,30 @@
1
+ # Description
2
+
3
+ ## Type of change
4
+
5
+ - [ ] **✨ feat**: New feature (non-breaking change).
6
+ - [ ] **🐛 fix**: Bug fix (non-breaking change).
7
+ - [ ] **📝 docs**: Documentation update.
8
+ - [ ] **♻️ refactor**: Code change that neither fixes a bug nor adds a new feature.
9
+ - [ ] **⚡️ perf**: Performance improvement.
10
+ - [ ] **🧪 test**: Update suite of tests.
11
+ - [ ] **📦️ build**: Changes that affect the build system (new dependencies, tools, ...).
12
+ - [ ] **💚 ci**: Pipeline changes (GitHub Actions, make commands, ...).
13
+ - [ ] **💥 BREAKING CHANGE**: Feature, fix, ... that breaks backward compatibility.
14
+ - [ ] **👽️ others**: Other type of change.
15
+
16
+ ## Related Issues / Discussions / Resources
17
+
18
+ ## Pre-merge Checklist
19
+
20
+ - [ ] I have read and followed the [`Contributor Guidelines`](https://github.com/dimanu-py/instant-python/blob/main/docs/home/contributing.md).
21
+ - [ ] My pull requests and commits follow the [Conventional Commits](https://www.conventionalcommits.org) and [Conventional Comments](https://conventionalcomments.org) guidelines.
22
+ - [ ] My code follows the coding guidelines of the project ([PEP 8](https://peps.python.org/pep-0008), [PEP 257](https://peps.python.org/pep-0257), ...).
23
+ - [ ] My changes generate no new warnings (execution, linter, formatter, ...).
24
+ - [ ] I have updated the suite of tests required for this change.
25
+ - [ ] I have made corresponding changes to the documentation.
26
+ - [ ] I considered security & backwards-compatibility; if **breaking**, explain in the "Description" section above.
27
+
28
+ ## 📃 Additional Resources
29
+
30
+ - [The Anatomy of a Perfect Pull Request](https://hugooodias.medium.com/the-anatomy-of-a-perfect-pull-request-567382bb6067)
@@ -0,0 +1,226 @@
1
+ name: CI - Testing and Code analysis
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ permissions:
9
+ contents: write
10
+ id-token: write
11
+
12
+ jobs:
13
+ lint:
14
+ name: lint
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - name: 🛡️ Harden runner
18
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
19
+ with:
20
+ egress-policy: audit
21
+
22
+ - name: 📥 Checkout the repository
23
+ uses: actions/checkout@v4
24
+ with:
25
+ ref: ${{ github.head_ref }}
26
+ fetch-depth: 0
27
+ persist-credentials: false
28
+
29
+ - name: 🛠️ Setup environment
30
+ uses: ./.github/actions/python_setup
31
+
32
+ - name: 🧐 Check linting
33
+ id: check_lint
34
+ run: uvx ruff check --exclude "instant_python/templates,test/**/resources/**" instant_python test
35
+
36
+ format:
37
+ name: format
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - name: 🛡️ Harden runner
41
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
42
+ with:
43
+ egress-policy: audit
44
+
45
+ - name: 📥 Checkout the repository
46
+ uses: actions/checkout@v4
47
+ with:
48
+ ref: ${{ github.head_ref }}
49
+ fetch-depth: 0
50
+ persist-credentials: false
51
+
52
+ - name: 🛠️ Setup environment
53
+ uses: ./.github/actions/python_setup
54
+
55
+ - name: 🧐 Check code format
56
+ id: check_format
57
+ run: uvx ruff format --check --exclude "instant_python/templates,test/**/resources/**" instant_python test
58
+
59
+ analyze-code-quality:
60
+ name: analyze-code-quality
61
+ runs-on: ubuntu-latest
62
+ permissions:
63
+ contents: read
64
+ security-events: write
65
+
66
+ steps:
67
+ - name: 🛡️ Harden runner
68
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
69
+ with:
70
+ egress-policy: audit
71
+
72
+ - name: 📥 Checkout the repository
73
+ uses: actions/checkout@v4
74
+ with:
75
+ ref: ${{ github.head_ref }}
76
+ fetch-depth: 0
77
+ persist-credentials: false
78
+
79
+ - name: ▶️ CodeQL Initialization
80
+ uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
81
+ with:
82
+ languages: python
83
+ build-mode: none
84
+ queries: +security-extended,security-and-quality
85
+ config-file: ./codeql-config.yml
86
+
87
+ - name: 🧐 CodeQL Analysis
88
+ uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
89
+ with:
90
+ category: '/language:python'
91
+
92
+ secrets:
93
+ name: secrets-scan
94
+ runs-on: ubuntu-latest
95
+ permissions:
96
+ contents: read
97
+ security-events: write
98
+ pull-requests: write
99
+
100
+ steps:
101
+ - name: 🛡️ Harden runner
102
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
103
+ with:
104
+ egress-policy: audit
105
+
106
+ - name: 📥 Checkout the repository
107
+ uses: actions/checkout@v4
108
+ with:
109
+ fetch-depth: 0
110
+ persist-credentials: false
111
+
112
+ - name: 🛠️ Setup environment
113
+ uses: ./.github/actions/python_setup
114
+
115
+ - name: 🏃 Run secrets scanner
116
+ run: make secrets
117
+
118
+ audit:
119
+ name: audit-dependencies
120
+ runs-on: ubuntu-latest
121
+ permissions:
122
+ contents: read
123
+
124
+ steps:
125
+ - name: 🛡️ Harden runner
126
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
127
+ with:
128
+ egress-policy: audit
129
+
130
+ - name: 📥 Checkout the repository
131
+ uses: actions/checkout@v4
132
+ with:
133
+ fetch-depth: 0
134
+ persist-credentials: false
135
+
136
+ - name: 🛠️ Setup environment
137
+ uses: ./.github/actions/python_setup
138
+
139
+ - name: 🏃 Run audit
140
+ run: make audit
141
+
142
+ test:
143
+ name: test
144
+ runs-on: ubuntu-latest
145
+ steps:
146
+ - name: 🛡️ Harden runner
147
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
148
+ with:
149
+ egress-policy: audit
150
+
151
+ - name: 📥 Checkout the repository
152
+ uses: actions/checkout@v4
153
+ with:
154
+ fetch-depth: 0
155
+ persist-credentials: false
156
+
157
+ - name: 🛠️ Setup environment
158
+ uses: ./.github/actions/python_setup
159
+
160
+ - name: 📦 Install test dependencies
161
+ run: uv pip install pytest pytest-cov
162
+
163
+ - name: 🏃 Run tests
164
+ run: uv run pytest --cov --cov-report=xml --cov-branch test -ra -s
165
+
166
+ - name: 📥 Upload coverage report to Codecov
167
+ uses: codecov/codecov-action@v5
168
+ with:
169
+ files: coverage.xml
170
+ flags: unittests
171
+ name: codecov-coverage
172
+ token: ${{ secrets.CODECOV_TOKEN }}
173
+ slug: dimanu-py/instant-python
174
+
175
+ rollback:
176
+ name: rollback
177
+ runs-on: ubuntu-latest
178
+ needs: [ test ]
179
+ if: ${{ always() && needs.test.result == 'failure' }}
180
+ steps:
181
+ - name: 🛡️ Harden runner
182
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
183
+ with:
184
+ egress-policy: audit
185
+
186
+ - name: 📥 Checkout the repository
187
+ uses: actions/checkout@v4
188
+ with:
189
+ fetch-depth: 0
190
+ persist-credentials: false
191
+
192
+ - name: ⏪️ Reset to previous commit
193
+ run: |
194
+ git config user.name ${{ vars.GIT_COMMITTER_NAME }}
195
+ git config user.email ${{ vars.GIT_COMMITTER_EMAIL }}
196
+ git reset --hard ${{ github.event.before }}
197
+ git push --force-with-lease origin main
198
+ env:
199
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
200
+
201
+ tox-test:
202
+ name: tox
203
+ runs-on: ubuntu-latest
204
+ strategy:
205
+ matrix:
206
+ python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13' ]
207
+ steps:
208
+ - name: 🛡️ Harden runner
209
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
210
+ with:
211
+ egress-policy: audit
212
+
213
+ - name: 📥 Checkout the repository
214
+ uses: actions/checkout@v4
215
+ with:
216
+ fetch-depth: 0
217
+ persist-credentials: false
218
+
219
+ - name: 🛠️ Setup environment
220
+ uses: ./.github/actions/python_setup
221
+
222
+ - name: Set up Python ${{ matrix.python-version }}
223
+ uses: actions/setup-python@v4
224
+
225
+ - name: 🏃 Run tox
226
+ run: make tox
@@ -0,0 +1,75 @@
1
+ name: Release and Publish
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ jobs:
7
+ release:
8
+ if: "!startsWith(github.event.head_commit.message, 'bump:')"
9
+ runs-on: ubuntu-latest
10
+ permissions:
11
+ contents: write
12
+ outputs:
13
+ released: ${{ steps.released.outputs.released }}
14
+ tag: ${{ steps.released.outputs.tag }}
15
+
16
+ steps:
17
+ - name: 🛡️ Harden runner
18
+ uses: step-security/harden-runner@6c439dc8bdf85cadbbce9ed30d1c7b959517bc49 # v2.12.2
19
+ with:
20
+ egress-policy: audit
21
+
22
+ - name: 📥 Checkout the repository
23
+ uses: actions/checkout@v4
24
+ with:
25
+ fetch-depth: 0
26
+ persist-credentials: false
27
+
28
+ - name: 🔖 Create release
29
+ id: released
30
+ uses: python-semantic-release/python-semantic-release@2896129e02bb7809d2cf0c1b8e9e795ee27acbcf # v10.0.2
31
+ with:
32
+ build: true
33
+ push: true
34
+ changelog: true
35
+ commit: true
36
+ tag: true
37
+ vcs_release: true
38
+ config_file: pyproject.toml
39
+ github_token: ${{ secrets.GITHUB_TOKEN }}
40
+ git_committer_email: ${{ vars.GIT_COMMITTER_EMAIL }}
41
+ git_committer_name: ${{ vars.GIT_COMMITTER_NAME }}
42
+ ssh_public_signing_key: ${{ vars.SSH_PUBLIC_SIGNING_KEY }}
43
+ ssh_private_signing_key: ${{ secrets.SSH_PRIVATE_SIGNING_KEY }}
44
+
45
+ build-and-publish:
46
+ name: Publish to PyPI
47
+ needs:
48
+ - release
49
+ if: needs.release.outputs.released == 'true'
50
+ runs-on: ubuntu-latest
51
+ environment: release
52
+ permissions:
53
+ id-token: write
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: 📥 Checkout the repository
62
+ uses: actions/checkout@v4
63
+ with:
64
+ fetch-depth: 0
65
+ persist-credentials: false
66
+ ref: refs/tags/${{ needs.release.outputs.tag }}
67
+
68
+ - name: 🛠️ Setup environment
69
+ uses: ./.github/actions/python_setup
70
+
71
+ - name: 🏃 Build package
72
+ run: uv build
73
+
74
+ - name: 🚀 Publish
75
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,73 @@
1
+ fail_fast: true
2
+
3
+ default_language_version:
4
+ python: python3.12
5
+
6
+ exclude: ^instant_python/templates/
7
+
8
+ repos:
9
+ - repo: https://github.com/pre-commit/pre-commit-hooks
10
+ rev: cef0300fd0fc4d2a87a85fa2093c6b283ea36f4b # v5.0.0
11
+ hooks:
12
+ - id: check-added-large-files
13
+ name: 📦 Large Files Checker
14
+ args:
15
+ - --maxkb=100
16
+ stages:
17
+ - pre-commit
18
+
19
+ - id: check-case-conflict
20
+ name: 🔠 Case Conflict Checker
21
+ stages:
22
+ - pre-commit
23
+
24
+ - id: check-toml
25
+ name: 📄 TOML Files Checker
26
+ files: '.*\.toml'
27
+ stages:
28
+ - pre-commit
29
+
30
+ - id: check-yaml
31
+ name: 📄 YAML Files Checker
32
+ files: '.*\.ya?ml'
33
+ args:
34
+ - --unsafe
35
+ stages:
36
+ - pre-commit
37
+ - id: check-merge-conflict
38
+ name: 🔀 Merge Conflict Checker
39
+ stages:
40
+ - pre-commit
41
+
42
+ - repo: https://github.com/gitleaks/gitleaks
43
+ rev: 782f3104786efdce0f809bce8a9ff31f2fa1c9ed # v8.27.0
44
+ hooks:
45
+ - id: gitleaks
46
+ name: 🔍 Secrets Checker
47
+ entry: gitleaks detect --no-git --redact --verbose
48
+ stages:
49
+ - pre-commit
50
+
51
+ - repo: https://github.com/commitizen-tools/commitizen
52
+ rev: a0cc4901b0faaced74c713a9e355555fc4de0880 # v4.7.1
53
+ hooks:
54
+ - id: commitizen
55
+ name: 📝 Conventional Commit Message Checker
56
+ stages:
57
+ - commit-msg
58
+
59
+ - repo: local
60
+ hooks:
61
+ - id: lint
62
+ name: 🧹 Code Linter
63
+ entry: make check-lint
64
+ language: system
65
+ stages:
66
+ - pre-push
67
+
68
+ - id: format
69
+ name: 🎨 Code Formatter
70
+ entry: make check-format
71
+ language: system
72
+ stages:
73
+ - pre-push
@@ -1,3 +1,53 @@
1
+ # CHANGELOG
2
+
3
+ ## v0.8.2 (2025-07-16)
4
+
5
+ ### 🪲 Bug Fixes
6
+
7
+ - **render**: Create jinja environment with autoscape argument enabled to avoid potential XSS
8
+ attacks
9
+ ([`976d459`](https://github.com/dimanu-py/instant-python/commit/976d459538ae8eea403c65300304e6405fec46b6))
10
+
11
+ - **templates**: Format correctly if statement in application.py template
12
+ ([`409d606`](https://github.com/dimanu-py/instant-python/commit/409d6064d97ef016c34dab57d3c9456a47e6542f))
13
+
14
+ - **templates**: Include logger and migrator in fastapi application only if they are selected too
15
+ for DDD and standard project templates
16
+ ([`f5a8087`](https://github.com/dimanu-py/instant-python/commit/f5a80870d0ecdd2f47419ad5e51d20131649b422))
17
+
18
+ - **templates**: Include logger and migrator in fastapi application only if they are selected as
19
+ built in feature too in clean architecture template
20
+ ([`191d81f`](https://github.com/dimanu-py/instant-python/commit/191d81fd8ace560f3a6359bc9cf767c73c310d50))
21
+
22
+ ### ⚙️ Build System
23
+
24
+ - Update semantic release to not update major version if is zero and to allow 0 major version
25
+ ([`34d251e`](https://github.com/dimanu-py/instant-python/commit/34d251e8a57eafa595a0c54e314238f389218dd6))
26
+
27
+ - Remove test hook in precommit config
28
+ ([`b8d451d`](https://github.com/dimanu-py/instant-python/commit/b8d451db1a024ae41a6958dbf9513801f3b69627))
29
+
30
+ - Remove final echo from makefile commands to let output of the command itself inform the user
31
+ ([`cd895ad`](https://github.com/dimanu-py/instant-python/commit/cd895adacfe1e470a746165380369c9c365996e8))
32
+
33
+ - Remove -e command from echo in makefile
34
+ ([`6a624a3`](https://github.com/dimanu-py/instant-python/commit/6a624a3cacf8b96adaeba20bb635b7e43d853002))
35
+
36
+ - Exclude resources folder from being formatted or linted
37
+ ([`cf00038`](https://github.com/dimanu-py/instant-python/commit/cf000382ba13a0bc4dbda8eb346e9cdeb4fe4541))
38
+
39
+ - Remove AST check from pre commit hook
40
+ ([`b46437e`](https://github.com/dimanu-py/instant-python/commit/b46437e804a1d54f13444e92827bd15d9fb2fd57))
41
+
42
+ - Add docs-serve command to makefile
43
+ ([`9430934`](https://github.com/dimanu-py/instant-python/commit/943093498f168f49cc8b2593ea17911321f2e012))
44
+
45
+ - Improve messages of make command and add build and clean commands
46
+ ([`6a0e428`](https://github.com/dimanu-py/instant-python/commit/6a0e4285d3bb43f9e88dad32fd2f93732ab271c8))
47
+
48
+ - Remove commitizen config as is not longer needed
49
+ ([`0ed6a8b`](https://github.com/dimanu-py/instant-python/commit/0ed6a8bd50c6ebf30b71e4734fd3e4a81123b280))
50
+
1
51
  ## 0.8.1 (2025-07-01)
2
52
 
3
53
  ### 🐛 Bug Fixes
@@ -558,7 +608,6 @@
558
608
  - **project-generator**: delegate template management to TemplateManager
559
609
  - **cli**: call BasicPrompter and ProjectGenerator inside cli app
560
610
 
561
-
562
611
  ### ✨ Features
563
612
 
564
613
  - **project-generator**: create new custom function to generate import path in templates
@@ -657,4 +706,3 @@
657
706
  - **prompter**: create class to encapsulate user answers
658
707
  - **prompter**: create basic class that asks project requirements to user
659
708
  - **cli**: create basic typer application with no implementation
660
-
@@ -0,0 +1,21 @@
1
+ cff-version: 1.2.0
2
+ title: Instant Python
3
+ message: If you use this software, please cite it using the metadata below.
4
+ type: software
5
+ authors:
6
+ - given-names: Diego
7
+ family-names: Martínez
8
+ repository-code: https://github.com/dimanu-py/instant-python/
9
+ url: https://pypi.org/project/instant-python/
10
+ abstract: >
11
+ Instant Python is a command-line tool that generates the base structure of a Python project
12
+ within seconds.
13
+ It helps you quickly set up a new Python project with a specific structure, including
14
+ configuration files, directories, dependencies management, initial code files and much more.
15
+ keywords:
16
+ - python
17
+ - boilerplate
18
+ - project-generator
19
+ - code-generator
20
+ - cli
21
+ license: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: instant-python
3
- Version: 0.8.1
3
+ Version: 0.9.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/
@@ -219,7 +219,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
219
219
  Classifier: Topic :: System :: Installation/Setup
220
220
  Classifier: Topic :: System :: Shells
221
221
  Requires-Python: >=3.9
222
- Requires-Dist: jinja2>=3.1.5
222
+ Requires-Dist: jinja2>=3.1.6
223
223
  Requires-Dist: pyyaml>=6.0.2
224
224
  Requires-Dist: questionary>=2.1.0
225
225
  Requires-Dist: typer>=0.15.1
@@ -0,0 +1,43 @@
1
+ # Security Policy
2
+
3
+ Thank you for helping keep **Instant Python** package and its users safe.
4
+ We take security issues seriously and appreciate responsible disclosures.
5
+
6
+ ## Reporting a Vulnerability
7
+
8
+ > [!NOTE]
9
+ > **Please do NOT open public issues for security reports.**
10
+ > Use one of the private channels below so we can coordinate a safe disclosure.
11
+
12
+ | Channel | How it works |
13
+ | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
14
+ | **GitHub Security Advisory** | 1. Navigate to the repository's **“Security → Advisories”** tab<br>2. Click **“Report a vulnerability”** and fill in the form |
15
+
16
+ Include the following, if possible:
17
+
18
+ 1. A **concise description** of the issue and its impact.
19
+ 2. **Reproduction steps** or a proof-of-concept script.
20
+ 3. Any **mitigation** ideas you've identified.
21
+
22
+ ## Our Disclosure Process
23
+
24
+ 1. **Acknowledge** report within 24–48 hours.
25
+ 2. **Triage & validate** the issue; request additional info if needed.
26
+ 3. **Fix & prepare**: develop a patch and regression tests.
27
+ 4. **Coordinate release**:
28
+ - Agree on a disclosure date with the reporter (usually ≤ 30 days).
29
+ - Publish a CVE (if applicable) and a new PyPI release.
30
+ - Post a security advisory and update CHANGELOG.
31
+ 5. **Credit** the reporter (optional & with consent).
32
+
33
+ ## Responsible Disclosure
34
+
35
+ We kindly ask you to:
36
+
37
+ - Allow us reasonable time to remediate before any public disclosure.
38
+ - Avoid violating user privacy, destroying data, or disrupting production services while researching.
39
+ - Test only on your own instances or in minimal, isolated cases.
40
+
41
+ We are committed to keeping this project and its users safe and will strive to resolve all legitimate reports swiftly and transparently.
42
+
43
+ _Thank you for keeping the **Instant Python** package community secure!_
@@ -0,0 +1,3 @@
1
+ paths-ignore:
2
+ - "instant_python/templates/**"
3
+ - "test/**/resources/**"
@@ -0,0 +1,7 @@
1
+ # CHANGELOG
2
+
3
+ {% if ctx.changelog_mode == "update"
4
+ %}{{ insertion_flag ~ "\n"
5
+ }}{#
6
+ #}{% endif
7
+ %}