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.
- instant_python-0.9.0/.github/ISSUE_TEMPLATE/bug_report.yml +67 -0
- instant_python-0.9.0/.github/ISSUE_TEMPLATE/feature_request.yml +21 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/.github/actions/python_setup/action.yml +9 -4
- instant_python-0.9.0/.github/pull_request_template.md +30 -0
- instant_python-0.9.0/.github/workflows/ci.yml +226 -0
- instant_python-0.9.0/.github/workflows/release.yml +75 -0
- instant_python-0.9.0/.pre-commit-config.yaml +73 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/CHANGELOG.md +50 -2
- instant_python-0.9.0/CITATION.cff +21 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/PKG-INFO +2 -2
- instant_python-0.9.0/SECURITY.md +43 -0
- instant_python-0.9.0/codeql-config.yml +3 -0
- instant_python-0.9.0/docs/changelog/.components/changelog_header.md.j2 +7 -0
- instant_python-0.9.0/docs/changelog/.components/changelog_init.md.j2 +21 -0
- instant_python-0.9.0/docs/changelog/.components/changelog_update.md.j2 +59 -0
- instant_python-0.9.0/docs/changelog/.components/changes.md.j2 +127 -0
- instant_python-0.9.0/docs/changelog/.components/first_release.md.j2 +18 -0
- instant_python-0.9.0/docs/changelog/.components/macros.md.j2 +187 -0
- instant_python-0.9.0/docs/changelog/.components/versioned_changes.md.j2 +20 -0
- instant_python-0.9.0/docs/changelog/.release_notes.md.j2 +60 -0
- instant_python-0.9.0/docs/changelog/CHANGELOG.md.j2 +22 -0
- instant_python-0.9.0/docs/guide/command_init.md +622 -0
- instant_python-0.9.0/docs/home/contributing.md +205 -0
- instant_python-0.9.0/docs/home/releases.md +35 -0
- instant_python-0.9.0/docs/home/security.md +43 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/jinja_environment.py +1 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_built_in_features.py +4 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/.pre-commit-config.yml +71 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/CITATION.cff +13 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/SECURITY.md +43 -0
- 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
- instant_python-0.9.0/instant_python/templates/boilerplate/exceptions/domain_error.py +6 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/exceptions/error.py +24 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/application.py +68 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/error_handlers.py +64 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/error_response.py +31 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +33 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/fastapi/success_response.py +13 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/github/action.yml +35 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/github/bug_report.yml +60 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/github/ci.yml +199 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/github/feature_request.yml +21 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/github/release.yml +93 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/logger/file_logger.py +56 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/logger/file_rotating_handler.py +37 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/logger/json_formatter.py +2 -2
- instant_python-0.9.0/instant_python/templates/boilerplate/pyproject.toml +107 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/scripts/add_dependency.py +45 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/scripts/local_setup.py +12 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/scripts/makefile +184 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/scripts/post-merge.py +40 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/scripts/pre-commit.py +15 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/scripts/remove_dependency.py +40 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/value_object/aggregate.py +99 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/value_object/int_value_object.py +23 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/value_object/string_value_object.py +17 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/value_object/uuid.py +25 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/value_object/validation.py +7 -0
- instant_python-0.9.0/instant_python/templates/boilerplate/value_object/value_object.py +119 -0
- instant_python-0.9.0/instant_python/templates/project_structure/citation.yml.j2 +3 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +17 -4
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +2 -2
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +17 -4
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +2 -2
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/event_bus_domain.yml.j2 +20 -4
- instant_python-0.9.0/instant_python/templates/project_structure/fastapi_app.yml.j2 +28 -0
- 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
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/fastapi_infra.yml.j2 +2 -2
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/github_action.yml.j2 +2 -2
- instant_python-0.9.0/instant_python/templates/project_structure/github_issues_template.yml.j2 +12 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/logger.yml.j2 +4 -1
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/makefile.yml.j2 +7 -16
- 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
- instant_python-0.9.0/instant_python/templates/project_structure/security.yml.j2 +3 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +18 -5
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/standard_project/source.yml.j2 +2 -2
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/value_objects.yml.j2 +26 -9
- instant_python-0.9.0/makefile +120 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/mkdocs.yml +1 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/pyproject.toml +52 -9
- instant_python-0.9.0/scripts/add_dependency.py +24 -0
- instant_python-0.9.0/scripts/remove_dependency.py +22 -0
- 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
- 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
- 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
- instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi/application.py +21 -0
- {instant_python-0.8.1/instant_python/templates → instant_python-0.9.0/test/project_creator/resources}/boilerplate/fastapi/http_response.py +23 -6
- instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi/lifespan.py +11 -0
- instant_python-0.9.0/test/project_creator/resources/boilerplate/logger/__init__.py +0 -0
- {instant_python-0.8.1/instant_python/templates → instant_python-0.9.0/test/project_creator/resources}/boilerplate/logger/logger.py +11 -6
- instant_python-0.9.0/test/project_creator/resources/boilerplate/persistence/alembic_migrator.py +18 -0
- instant_python-0.9.0/test/project_creator/resources/clean_architecture/main_structure.yml.j2 +69 -0
- instant_python-0.9.0/test/project_creator/resources/config_fastapi_with_logger.yml +26 -0
- instant_python-0.9.0/test/project_creator/resources/config_fastapi_with_migrator.yml +26 -0
- instant_python-0.9.0/test/project_creator/resources/config_with_only_fastapi.yml +25 -0
- instant_python-0.9.0/test/project_creator/resources/rendered_project_structure_fastapi_with_logger.json +64 -0
- instant_python-0.9.0/test/project_creator/resources/rendered_project_structure_fastapi_with_migrator.json +62 -0
- instant_python-0.9.0/test/project_creator/resources/rendered_project_structure_only_with_fastapi.json +52 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/test_file_system.py +20 -5
- instant_python-0.9.0/test/render/__init__.py +0 -0
- instant_python-0.9.0/tox.ini +12 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/uv.lock +641 -14
- instant_python-0.8.1/.github/ISSUE_TEMPLATE/bug_report.md +0 -33
- instant_python-0.8.1/.github/ISSUE_TEMPLATE/feature_request.md +0 -23
- instant_python-0.8.1/.github/workflows/publish.yml +0 -21
- instant_python-0.8.1/.github/workflows/release.yml +0 -75
- instant_python-0.8.1/.github/workflows/test_lint.yml +0 -125
- instant_python-0.8.1/cz.yaml +0 -21
- instant_python-0.8.1/docs/guide/command_init.md +0 -386
- instant_python-0.8.1/docs/home/contributing.md +0 -13
- instant_python-0.8.1/docs/home/releases.md +0 -37
- instant_python-0.8.1/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -33
- instant_python-0.8.1/instant_python/templates/boilerplate/fastapi/application.py +0 -25
- instant_python-0.8.1/instant_python/templates/boilerplate/fastapi/status_code.py +0 -9
- instant_python-0.8.1/instant_python/templates/boilerplate/github/action.yml +0 -22
- instant_python-0.8.1/instant_python/templates/boilerplate/github/lint.yml +0 -30
- instant_python-0.8.1/instant_python/templates/boilerplate/github/test.yml +0 -30
- instant_python-0.8.1/instant_python/templates/boilerplate/pyproject.toml +0 -63
- instant_python-0.8.1/instant_python/templates/boilerplate/scripts/add_dependency.sh +0 -37
- instant_python-0.8.1/instant_python/templates/boilerplate/scripts/local_setup.sh +0 -15
- instant_python-0.8.1/instant_python/templates/boilerplate/scripts/makefile +0 -125
- instant_python-0.8.1/instant_python/templates/boilerplate/scripts/post-merge +0 -11
- instant_python-0.8.1/instant_python/templates/boilerplate/scripts/pre-commit +0 -4
- instant_python-0.8.1/instant_python/templates/boilerplate/scripts/remove_dependency.sh +0 -36
- instant_python-0.8.1/instant_python/templates/boilerplate/value_object/int_value_object.py +0 -14
- instant_python-0.8.1/instant_python/templates/boilerplate/value_object/string_value_object.py +0 -19
- instant_python-0.8.1/instant_python/templates/boilerplate/value_object/uuid.py +0 -17
- instant_python-0.8.1/instant_python/templates/boilerplate/value_object/value_object.py +0 -48
- instant_python-0.8.1/instant_python/templates/project_structure/fastapi_domain.yml.j2 +0 -7
- instant_python-0.8.1/makefile +0 -69
- instant_python-0.8.1/scripts/add_dependency.sh +0 -18
- instant_python-0.8.1/scripts/remove_dependency.sh +0 -18
- instant_python-0.8.1/test/project_creator/resources/boilerplate/exceptions/domain_error.py +0 -22
- instant_python-0.8.1/test/render/resources/clean_architecture/main_structure.yml.j2 +0 -22
- instant_python-0.8.1/tox.ini +0 -18
- {instant_python-0.8.1 → instant_python-0.9.0}/.github/FUNDING.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/.github/workflows/pages.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/.gitignore +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/.python-version +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/LICENSE +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/README.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/assets/favicon.svg +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/assets/logo.svg +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/downloads_macro.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/examples/configuration.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/examples/custom_template.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/guide/command_config.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/home/getting_started.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/docs/home/index.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/cli.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/commands/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/commands/config.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/commands/init.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/configuration_schema.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/dependency/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/dependency/dependency_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/dependency/not_dev_dependency_included_in_group.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/general_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/invalid_dependency_manager_value.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/invalid_license_value.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/general/invalid_python_version_value.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/git/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/git/git_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/git/git_user_or_email_not_present.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/config_key_not_present.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/configuration_file_not_found.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/empty_configuration_not_allowed.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/missing_mandatory_fields.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/parser/parser.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/boolean_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/choice_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/conditional_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/free_text_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/multiple_choice_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question/questionary.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/question_wizard.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/dependencies_step.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/general_step.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/git_step.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/steps.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/step/template_step.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/bounded_context_not_applicable.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/bounded_context_not_especified.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/invalid_built_in_features_values.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/invalid_template_value.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/configuration/template/template_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/command_execution_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/dependency_manager_factory.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/pdm_dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/unknown_dependency_manager_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/dependency_manager/uv_dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/formatter/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/formatter/project_formatter.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/git/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/git/git_configurer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/instant_python_typer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/directory.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/file.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/file_has_not_been_created.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/file_system.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/node.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/project_creator/unknown_node_typer_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/custom_project_renderer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/jinja_custom_filters.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/jinja_project_renderer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/template_file_not_found_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/render/unknown_template_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/error_types.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_managers.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/pytest.ini +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/random_generator.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
- /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
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/boilerplate/value_object/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/alembic_migrator.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/async_alembic.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/async_sqlalchemy.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/event_bus_infra.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/gitignore.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/license.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/macros.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/mypy.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/pyproject.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/pytest.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/python_version.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/readme.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/standard_project/test.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/mypy.ini +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/dependency/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/dependency/dependency_configuration_mother.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/dependency/test_dependency_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/general/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/general/general_configuration_mother.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/general/test_general_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/git/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/git/git_configuration_mother.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/git/test_git_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/approvaltests_config.json +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/approved_files/TestParser.test_should_parse_configuration.approved.txt +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/empty_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_dependencies_fields_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_general_fields_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_git_fields_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_keys_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/resources/missing_template_fields_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/parser/test_parser.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_boolean_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_choice_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_free_text_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/question/test_multiple_choice_question.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/template/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/template/template_configuration_mother.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/configuration/template/test_template_configuration.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/mock_pdm_dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/mock_uv_dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/test_pdm_dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/dependency_manager/test_uv_dependency_manager.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/formatter/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/formatter/mock_project_formatter.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/formatter/test_project_formatter.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/git/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/git/mock_git_configurer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/git/test_git_configurer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/approvaltests_config.json +0 -0
- {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
- {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
- {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
- {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
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/directory_mother.py +0 -0
- {instant_python-0.8.1/instant_python/templates → instant_python-0.9.0/test/project_creator/resources}/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/boilerplate/exceptions/domain_error_simple.py +0 -0
- {instant_python-0.8.1/test/render → instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi}/__init__.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/rendered_custom_project_structure.json +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/resources/rendered_project_structure.json +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/test_directory.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/project_creator/test_file.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/random_generator.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approvaltests_config.json +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestCustomProjectRenderer.test_should_render_custom_template.approved.txt +0 -0
- {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
- {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
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.received.txt +0 -0
- {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
- {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
- {instant_python-0.8.1/test/project_creator → instant_python-0.9.0/test/render}/resources/clean_architecture/main_structure.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/clean_architecture_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/custom_template.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/domain_driven_design/main_structure.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/domain_driven_design_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/standard_project/main_structure.yml.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/standard_project_with_dependency_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/standard_project_with_git_config.yml +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/resources/test_template.j2 +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/test_custom_project_renderer.py +0 -0
- {instant_python-0.8.1 → instant_python-0.9.0}/test/render/test_jinja_environment.py +0 -0
- {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
|
-
-
|
|
12
|
+
- name: 🐍 Setup Python
|
|
13
|
+
uses: actions/setup-python@v5
|
|
13
14
|
with:
|
|
14
15
|
python-version: ${{ inputs.python-version }}
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
- name: 🔨 Install dependency manager
|
|
16
18
|
run: python -m pip install uv
|
|
17
19
|
shell: bash
|
|
18
|
-
|
|
19
|
-
|
|
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.
|
|
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.
|
|
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!_
|