instant-python 0.9.0__tar.gz → 0.9.2__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 → instant_python-0.9.2}/.github/workflows/release.yml +3 -1
- {instant_python-0.9.0 → instant_python-0.9.2}/CHANGELOG.md +165 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/PKG-INFO +4 -2
- {instant_python-0.9.0/instant_python → instant_python-0.9.2/instant_python/cli}/cli.py +1 -1
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/fastapi/success_response.py +1 -1
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/github/ci.yml +1 -1
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/github/release.yml +15 -23
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/pyproject.toml +4 -2
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/pytest.ini +1 -1
- instant_python-0.9.2/instant_python/templates/boilerplate/random_generator.py +18 -0
- instant_python-0.9.2/instant_python/templates/boilerplate/value_object/int_primitives_mother.py +8 -0
- instant_python-0.9.2/instant_python/templates/boilerplate/value_object/string_primitives_mother.py +8 -0
- instant_python-0.9.2/instant_python/templates/boilerplate/value_object/test_int_value_object.py +85 -0
- instant_python-0.9.2/instant_python/templates/boilerplate/value_object/test_string_value_object.py +75 -0
- instant_python-0.9.2/instant_python/templates/boilerplate/value_object/test_uuid_value_object.py +88 -0
- instant_python-0.9.2/instant_python/templates/boilerplate/value_object/uuid_primitives_mother.py +12 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/value_object/value_object.py +8 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +9 -4
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +3 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/makefile.yml.j2 +1 -1
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/standard_project/test.yml.j2 +4 -0
- instant_python-0.9.2/instant_python/templates/project_structure/test_value_objects.yml.j2 +26 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/pyproject.toml +8 -9
- instant_python-0.9.2/test/render/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/tox.ini +1 -1
- {instant_python-0.9.0 → instant_python-0.9.2}/uv.lock +33 -1
- instant_python-0.9.0/instant_python/templates/boilerplate/random_generator.py +0 -9
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/FUNDING.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/actions/python_setup/action.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/pull_request_template.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/workflows/ci.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.github/workflows/pages.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.gitignore +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.pre-commit-config.yaml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/.python-version +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/CITATION.cff +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/LICENSE +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/README.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/SECURITY.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/codeql-config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/assets/favicon.svg +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/assets/logo.svg +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/changelog_header.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/changelog_init.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/changelog_update.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/changes.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/first_release.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/macros.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/.release_notes.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/changelog/CHANGELOG.md.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/downloads_macro.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/examples/configuration.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/examples/custom_template.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/guide/command_config.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/guide/command_init.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/home/contributing.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/home/getting_started.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/home/index.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/home/releases.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/docs/home/security.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/__init__.py +0 -0
- {instant_python-0.9.0/instant_python/commands → instant_python-0.9.2/instant_python/cli}/__init__.py +0 -0
- {instant_python-0.9.0/instant_python → instant_python-0.9.2/instant_python/cli}/instant_python_typer.py +0 -0
- {instant_python-0.9.0/instant_python/configuration → instant_python-0.9.2/instant_python/commands}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/commands/config.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/commands/init.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/dependency → instant_python-0.9.2/instant_python/configuration}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/configuration_schema.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/general → instant_python-0.9.2/instant_python/configuration/dependency}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/dependency/dependency_configuration.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/dependency/not_dev_dependency_included_in_group.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/git → instant_python-0.9.2/instant_python/configuration/general}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/general/general_configuration.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/general/invalid_dependency_manager_value.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/general/invalid_license_value.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/general/invalid_python_version_value.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/parser → instant_python-0.9.2/instant_python/configuration/git}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/git/git_configuration.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/git/git_user_or_email_not_present.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/question → instant_python-0.9.2/instant_python/configuration/parser}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/parser/config_key_not_present.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/parser/configuration_file_not_found.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/parser/empty_configuration_not_allowed.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/parser/missing_mandatory_fields.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/parser/parser.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/step → instant_python-0.9.2/instant_python/configuration/question}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/boolean_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/choice_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/conditional_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/free_text_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/multiple_choice_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question/questionary.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/question_wizard.py +0 -0
- {instant_python-0.9.0/instant_python/configuration/template → instant_python-0.9.2/instant_python/configuration/step}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/step/dependencies_step.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/step/general_step.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/step/git_step.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/step/steps.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/step/template_step.py +0 -0
- {instant_python-0.9.0/instant_python/dependency_manager → instant_python-0.9.2/instant_python/configuration/template}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/template/bounded_context_not_applicable.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/template/bounded_context_not_especified.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/template/invalid_built_in_features_values.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/template/invalid_template_value.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/configuration/template/template_configuration.py +0 -0
- {instant_python-0.9.0/instant_python/formatter → instant_python-0.9.2/instant_python/dependency_manager}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/dependency_manager/command_execution_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/dependency_manager/dependency_manager.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/dependency_manager/dependency_manager_factory.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/dependency_manager/pdm_dependency_manager.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/dependency_manager/unknown_dependency_manager_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/dependency_manager/uv_dependency_manager.py +0 -0
- {instant_python-0.9.0/instant_python/git → instant_python-0.9.2/instant_python/formatter}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/formatter/project_formatter.py +0 -0
- {instant_python-0.9.0/instant_python/project_creator → instant_python-0.9.2/instant_python/git}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/git/git_configurer.py +0 -0
- {instant_python-0.9.0/instant_python/render → instant_python-0.9.2/instant_python/project_creator}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/project_creator/directory.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/project_creator/file.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/project_creator/file_has_not_been_created.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/project_creator/file_system.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/project_creator/node.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/project_creator/unknown_node_typer_error.py +0 -0
- {instant_python-0.9.0/instant_python/shared → instant_python-0.9.2/instant_python/render}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/render/custom_project_renderer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/render/jinja_custom_filters.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/render/jinja_environment.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/render/jinja_project_renderer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/render/template_file_not_found_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/render/unknown_template_error.py +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/event_bus → instant_python-0.9.2/instant_python/shared}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/error_types.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/supported_built_in_features.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/supported_managers.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/CITATION.cff +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/SECURITY.md +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/exceptions → instant_python-0.9.2/instant_python/templates/boilerplate/event_bus}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/fastapi → instant_python-0.9.2/instant_python/templates/boilerplate/exceptions}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/incorrect_value_type_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/invalid_id_format_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/invalid_negative_value_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/logger → instant_python-0.9.2/instant_python/templates/boilerplate/fastapi}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/github/action.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/persistence → instant_python-0.9.2/instant_python/templates/boilerplate/logger}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/persistence/async → instant_python-0.9.2/instant_python/templates/boilerplate/persistence}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/persistence/synchronous → instant_python-0.9.2/instant_python/templates/boilerplate/persistence/async}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.9.0/instant_python/templates/boilerplate/value_object → instant_python-0.9.2/instant_python/templates/boilerplate/persistence/synchronous}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/makefile +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
- {instant_python-0.9.0/test → instant_python-0.9.2/instant_python/templates/boilerplate/value_object}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/value_object/aggregate.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/value_object/int_value_object.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/value_object/string_value_object.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/value_object/uuid.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/value_object/validation.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/alembic_migrator.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/async_alembic.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/async_sqlalchemy.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/citation.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/event_bus_domain.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/event_bus_infra.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/fastapi_app.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/fastapi_domain.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/fastapi_infra.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/github_action.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/github_issues_template.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/gitignore.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/license.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/logger.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/macros.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/mypy.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/precommit_hook.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/pyproject.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/pytest.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/python_version.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/readme.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/security.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/standard_project/source.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/project_structure/value_objects.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/makefile +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/mkdocs.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/mypy.ini +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/scripts/add_dependency.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/scripts/remove_dependency.py +0 -0
- {instant_python-0.9.0/test/configuration → instant_python-0.9.2/test}/__init__.py +0 -0
- {instant_python-0.9.0/test/configuration/dependency → instant_python-0.9.2/test/configuration}/__init__.py +0 -0
- {instant_python-0.9.0/test/configuration/general → instant_python-0.9.2/test/configuration/dependency}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/dependency/dependency_configuration_mother.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/dependency/test_dependency_configuration.py +0 -0
- {instant_python-0.9.0/test/configuration/git → instant_python-0.9.2/test/configuration/general}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/general/general_configuration_mother.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/general/test_general_configuration.py +0 -0
- {instant_python-0.9.0/test/configuration/parser → instant_python-0.9.2/test/configuration/git}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/git/git_configuration_mother.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/git/test_git_configuration.py +0 -0
- {instant_python-0.9.0/test/configuration/parser/resources → instant_python-0.9.2/test/configuration/parser}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/approvaltests_config.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/approved_files/TestParser.test_should_parse_configuration.approved.txt +0 -0
- {instant_python-0.9.0/test/configuration/question → instant_python-0.9.2/test/configuration/parser/resources}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/empty_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/missing_dependencies_fields_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/missing_general_fields_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/missing_git_fields_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/missing_keys_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/resources/missing_template_fields_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/parser/test_parser.py +0 -0
- {instant_python-0.9.0/test/configuration/template → instant_python-0.9.2/test/configuration/question}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/question/test_boolean_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/question/test_choice_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/question/test_free_text_question.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/question/test_multiple_choice_question.py +0 -0
- {instant_python-0.9.0/test/dependency_manager → instant_python-0.9.2/test/configuration/template}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/template/template_configuration_mother.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/configuration/template/test_template_configuration.py +0 -0
- {instant_python-0.9.0/test/formatter → instant_python-0.9.2/test/dependency_manager}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/dependency_manager/mock_pdm_dependency_manager.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/dependency_manager/mock_uv_dependency_manager.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/dependency_manager/test_pdm_dependency_manager.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/dependency_manager/test_uv_dependency_manager.py +0 -0
- {instant_python-0.9.0/test/git → instant_python-0.9.2/test/formatter}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/formatter/mock_project_formatter.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/formatter/test_project_formatter.py +0 -0
- {instant_python-0.9.0/test/project_creator → instant_python-0.9.2/test/git}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/git/mock_git_configurer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/git/test_git_configurer.py +0 -0
- {instant_python-0.9.0/test/project_creator/resources/boilerplate/fastapi → instant_python-0.9.2/test/project_creator}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/approvaltests_config.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/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.9.0 → instant_python-0.9.2}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure.json.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_fastapi_with_logger.json.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_fastapi_with_migrator.json.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/approved_files/TestFileSystem.test_should_create_file_system_in_disk.rendered_project_structure_only_with_fastapi.json.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/approved_files/TestFileSystem.test_should_create_folders_and_files.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/approved_files/TestFileSystem.test_should_generate_file_system_tree.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/directory_mother.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/exceptions/domain_error_simple.py +0 -0
- {instant_python-0.9.0/test/project_creator/resources/boilerplate/logger → instant_python-0.9.2/test/project_creator/resources/boilerplate/fastapi}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/fastapi/http_response.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.9.0/test/render → instant_python-0.9.2/test/project_creator/resources/boilerplate/logger}/__init__.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/logger/logger.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/clean_architecture/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/config_fastapi_with_logger.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/config_fastapi_with_migrator.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/config_with_only_fastapi.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/rendered_custom_project_structure.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/rendered_project_structure.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/rendered_project_structure_fastapi_with_logger.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/rendered_project_structure_fastapi_with_migrator.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/resources/rendered_project_structure_only_with_fastapi.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/test_directory.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/test_file.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/project_creator/test_file_system.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/random_generator.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approvaltests_config.json +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approved_files/TestCustomProjectRenderer.test_should_render_custom_template.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.clean_architecture_config.yml.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.domain_driven_design_config.yml.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.received.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.standard_project_with_dependency_config.yml.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/approved_files/TestJinjaProjectRenderer.test_should_render_template_for.standard_project_with_git_config.yml.approved.txt +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/clean_architecture/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/clean_architecture_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/custom_template.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/domain_driven_design/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/domain_driven_design_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/standard_project/main_structure.yml.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/standard_project_with_dependency_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/standard_project_with_git_config.yml +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/resources/test_template.j2 +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/test_custom_project_renderer.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/test_jinja_environment.py +0 -0
- {instant_python-0.9.0 → instant_python-0.9.2}/test/render/test_jinja_project_renderer.py +0 -0
|
@@ -2,6 +2,8 @@ name: Release and Publish
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_dispatch:
|
|
5
|
+
release:
|
|
6
|
+
types: [published]
|
|
5
7
|
|
|
6
8
|
jobs:
|
|
7
9
|
release:
|
|
@@ -46,7 +48,7 @@ jobs:
|
|
|
46
48
|
name: Publish to PyPI
|
|
47
49
|
needs:
|
|
48
50
|
- release
|
|
49
|
-
if: needs.release.outputs.released == 'true'
|
|
51
|
+
if: needs.release.outputs.released == 'true' || github.event_name == 'release'
|
|
50
52
|
runs-on: ubuntu-latest
|
|
51
53
|
environment: release
|
|
52
54
|
permissions:
|
|
@@ -1,5 +1,170 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## v0.9.1 (2025-07-18)
|
|
4
|
+
|
|
5
|
+
### 🪲 Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **cli**: Update command in tox.ini file to be able to make reference to new location for application entry point ([`a8baef2`](https://github.com/dimanu-py/instant-python/commit/a8baef2eb88018cb6a0210122348e753dc10cacb))
|
|
8
|
+
|
|
9
|
+
- **templates**: Update pyproject.toml template to include optional build dependencies when github actions built-in feature is selected ([`b765ec8`](https://github.com/dimanu-py/instant-python/commit/b765ec81f3e61ce170873eaed371910e41e2e871))
|
|
10
|
+
|
|
11
|
+
- **templates**: Update release action template to work running build command to update uv.lock ([`9824451`](https://github.com/dimanu-py/instant-python/commit/982445188567c61d31ffc11d04ccdab163fb1ee4))
|
|
12
|
+
|
|
13
|
+
### ⚙️ Build System
|
|
14
|
+
|
|
15
|
+
- Update changelog section in semantic release config ([`7a413cf`](https://github.com/dimanu-py/instant-python/commit/7a413cf7a95b4da30ef23efafdf94cb2e2118168))
|
|
16
|
+
|
|
17
|
+
- Update application entry point ([`8b5330a`](https://github.com/dimanu-py/instant-python/commit/8b5330a99ae432dc0e04c19f67ccc55e5ee9fe5a))
|
|
18
|
+
|
|
19
|
+
### ♻️ Refactoring
|
|
20
|
+
|
|
21
|
+
- **cli**: Move cli files to its own folder ([`81b8c3c`](https://github.com/dimanu-py/instant-python/commit/81b8c3c3839bf548a5ffac3432615d392ad2a05e))
|
|
22
|
+
|
|
23
|
+
- **templates**: Update name of test workflow ([`80225f5`](https://github.com/dimanu-py/instant-python/commit/80225f51014aef1d06660803aa0fec65633f41bd))
|
|
24
|
+
|
|
25
|
+
## v0.9.0 (2025-07-18)
|
|
26
|
+
|
|
27
|
+
### ✨ Features
|
|
28
|
+
|
|
29
|
+
- **templates**: Add github action release to project structure for github actions ([`9e3309f`](https://github.com/dimanu-py/instant-python/commit/9e3309f8154a72954427f947ae61753d37253060))
|
|
30
|
+
|
|
31
|
+
- **templates**: Include python semantic release library in default dependencies if github actions is selected ([`5374ba4`](https://github.com/dimanu-py/instant-python/commit/5374ba4e77f8790dc6d5b691d3f511889df87f24))
|
|
32
|
+
|
|
33
|
+
- **shared**: Add github issues template as possible built in feature ([`9d97ce5`](https://github.com/dimanu-py/instant-python/commit/9d97ce53baded8ed6e782ea437daa9110c74c316))
|
|
34
|
+
|
|
35
|
+
- **templates**: Add template for release with python semantic release ([`23569a0`](https://github.com/dimanu-py/instant-python/commit/23569a0bafb33b1726beab47bf11e6f7fde95065))
|
|
36
|
+
|
|
37
|
+
- **templates**: Include github issues template into project structure templates ([`36a2975`](https://github.com/dimanu-py/instant-python/commit/36a2975e726db3172965e2f8866b2af48488c193))
|
|
38
|
+
|
|
39
|
+
- **templates**: Add templates for github issues templates ([`fec68e4`](https://github.com/dimanu-py/instant-python/commit/fec68e48418875c57e98a16dbc041e3eeeffdea9))
|
|
40
|
+
|
|
41
|
+
- **templates**: Include pip audit and precommit as default dependencies if they are selected as built in features ([`86a8af5`](https://github.com/dimanu-py/instant-python/commit/86a8af5592c03046d0228131beb4b9718bd00f57))
|
|
42
|
+
|
|
43
|
+
- **templates**: Include audit command in makefile template if github actions is selected ([`8035fab`](https://github.com/dimanu-py/instant-python/commit/8035fab7a66b1735da07d6a750bc754b1f6c4d48))
|
|
44
|
+
|
|
45
|
+
- **templates**: Modify project structure for github action including joined ci workflow ([`4ae4bd7`](https://github.com/dimanu-py/instant-python/commit/4ae4bd77d292697761dd4b631a6f87b32dc0796e))
|
|
46
|
+
|
|
47
|
+
- **templates**: Join lint and test github workflows into one single file and include more security and code quality jobs ([`a21eafe`](https://github.com/dimanu-py/instant-python/commit/a21eafebc11da2fe2d440acdfc96e3d6910e8bdc))
|
|
48
|
+
|
|
49
|
+
- **shared**: Include security as supported built in feature ([`5cfa228`](https://github.com/dimanu-py/instant-python/commit/5cfa228abca91b5e0d09ca7f68baa0a910f5da26))
|
|
50
|
+
|
|
51
|
+
- **templates**: Include security template into project structures ([`65c9b84`](https://github.com/dimanu-py/instant-python/commit/65c9b849f2b37faf5c0fcae8993e9981b71da829))
|
|
52
|
+
|
|
53
|
+
- **templates**: Create security file template ([`21b1bb0`](https://github.com/dimanu-py/instant-python/commit/21b1bb0257e1caa23db66e645e9e047010c10920))
|
|
54
|
+
|
|
55
|
+
- **shared**: Add citation as supported built in feature ([`893abab`](https://github.com/dimanu-py/instant-python/commit/893abab4e16a66b0da7e8b9e26d2f2ed452453d5))
|
|
56
|
+
|
|
57
|
+
- **templates**: Add citation project structure template to default templates ([`0a798d5`](https://github.com/dimanu-py/instant-python/commit/0a798d57642eb990f42b2e614d840f543829c767))
|
|
58
|
+
|
|
59
|
+
- **templates**: Add citation file template ([`888e8c6`](https://github.com/dimanu-py/instant-python/commit/888e8c696ad1ab2ce9916fa4a85c6ceae529cf14))
|
|
60
|
+
|
|
61
|
+
- **shared**: Add precommit option in SupportedBuiltInFeatures enum ([`f69cadb`](https://github.com/dimanu-py/instant-python/commit/f69cadb733634a6ecb4e9ab092e2a2bb375f98c9))
|
|
62
|
+
|
|
63
|
+
- **templates**: Include precommit template project structure in all default templates ([`8601841`](https://github.com/dimanu-py/instant-python/commit/8601841cb74c7a3a68b1d06daa89c25b3b23c0f3))
|
|
64
|
+
|
|
65
|
+
- **templates**: Include specific make commands in template based on installed dependencies and selected built in features ([`62688c0`](https://github.com/dimanu-py/instant-python/commit/62688c072cb6bfa1d00e7f6a08f82a1ed975aa8e))
|
|
66
|
+
|
|
67
|
+
- **templates**: Include pre commit hook in makefile if it's selected as built in features ([`2c391fb`](https://github.com/dimanu-py/instant-python/commit/2c391fb6c1c69990ae551c6bf8621bb1b40811d1))
|
|
68
|
+
|
|
69
|
+
- **templates**: Update pre commit config file to be included as built in feature ([`972aaa4`](https://github.com/dimanu-py/instant-python/commit/972aaa4131e54d3e875b14e3d117ea30a23bc0e9))
|
|
70
|
+
|
|
71
|
+
- **templates**: Include new base aggregate in value objects and when in EDA project structure ([`4f038ef`](https://github.com/dimanu-py/instant-python/commit/4f038ef59fd4f0c54ba2880c4a505984560a4254))
|
|
72
|
+
|
|
73
|
+
- **templates**: Create base aggregate class and make aggregate for event driven architecture inherit from it ([`44f843d`](https://github.com/dimanu-py/instant-python/commit/44f843de0c6fcf739309f37350e9ba8b4c7bc650))
|
|
74
|
+
|
|
75
|
+
- **templates**: Include error handlers in fastapi application template for project structure ([`add3634`](https://github.com/dimanu-py/instant-python/commit/add36343fb11e4be42c96dca42ef00153d178187))
|
|
76
|
+
|
|
77
|
+
- **templates**: Separate template files for fastapi error handlers ([`cfd7d14`](https://github.com/dimanu-py/instant-python/commit/cfd7d14cd1f515b513774df5f25f2180baee2cb3))
|
|
78
|
+
|
|
79
|
+
- **templates**: Include new model for value objects in project structure ([`39d2ba1`](https://github.com/dimanu-py/instant-python/commit/39d2ba101aab089addd80ce38ee1753c0dff7883))
|
|
80
|
+
|
|
81
|
+
- **templates**: Update value object templates to use new version that autovalidates using @validate decorator ([`186ecd5`](https://github.com/dimanu-py/instant-python/commit/186ecd518b8c9ca685a4db04598eb55e27fc3316))
|
|
82
|
+
|
|
83
|
+
- **templates**: Update project structure templates that were using old version of domain error an include error base class as well as rename the folder to errors instead of exceptions ([`5c363b6`](https://github.com/dimanu-py/instant-python/commit/5c363b6e126942531f6bb1ca5990ede9dc92bf18))
|
|
84
|
+
|
|
85
|
+
- **templates**: Implement new error template as base class for errors and let domain error inherit from it ([`1e15d5d`](https://github.com/dimanu-py/instant-python/commit/1e15d5d58dbb583fb681df648ddda573ef2c1679))
|
|
86
|
+
|
|
87
|
+
- **templates**: Update logger project structure template to include new handler and new logger implementation ([`b33bd1e`](https://github.com/dimanu-py/instant-python/commit/b33bd1e4021006b236607d28dd7472431bfc3ddf))
|
|
88
|
+
|
|
89
|
+
- **templates**: Include log middleware in fastapi application project structure if logger is selected ([`4ca7641`](https://github.com/dimanu-py/instant-python/commit/4ca76411a0f906ec51aac38653ec29cec9cdf9b1))
|
|
90
|
+
|
|
91
|
+
- **templates**: Update fastapi main application template to include log middleware if logger is selected too ([`c92810c`](https://github.com/dimanu-py/instant-python/commit/c92810ce79b199892a03ce7e29dd03daacf00130))
|
|
92
|
+
|
|
93
|
+
- **templates**: Create fastapi log middleware template ([`b196afc`](https://github.com/dimanu-py/instant-python/commit/b196afce1838180439c2a4a900816fdda5063ef5))
|
|
94
|
+
|
|
95
|
+
- **templates**: Modify fastapi main application template with new logger ([`021039d`](https://github.com/dimanu-py/instant-python/commit/021039de56a92bf018dbbbd68d57bc60bbd2126d))
|
|
96
|
+
|
|
97
|
+
- **templates**: Add new templates for logger implementation ([`d937478`](https://github.com/dimanu-py/instant-python/commit/d9374786fd1cb95c89933331b678ef6fa0e2d7cf))
|
|
98
|
+
|
|
99
|
+
- **templates**: Remove http_response and status_code templates ([`5f75969`](https://github.com/dimanu-py/instant-python/commit/5f759699f15818cf0b73e9c88e13cc4ff567dc57))
|
|
100
|
+
|
|
101
|
+
- **templates**: Use new response model in fastapi error handlers ([`ef4e543`](https://github.com/dimanu-py/instant-python/commit/ef4e54308ae783360fb0eaa75fab8642c896a0d7))
|
|
102
|
+
|
|
103
|
+
- **templates**: Substitute http_response and status_code templates from fastapi infra for success and error responses model ([`2c086be`](https://github.com/dimanu-py/instant-python/commit/2c086bebdb646d34447f82f2cdf93aef894b0e66))
|
|
104
|
+
|
|
105
|
+
- **templates**: Add ErrorResponse and SuccessResponse templates for fastapi application ([`9ec98f1`](https://github.com/dimanu-py/instant-python/commit/9ec98f1e8db59386f76c636825f889f117ff9871))
|
|
106
|
+
|
|
107
|
+
### 🪲 Bug Fixes
|
|
108
|
+
|
|
109
|
+
- **templates**: Add semantic release config to pyproject template if github actions is selected ([`a6533ce`](https://github.com/dimanu-py/instant-python/commit/a6533ceeb62b2877b5698f4ca39eb1e4cdb2a374))
|
|
110
|
+
|
|
111
|
+
- **templates**: Fix indentations in github actions templates ([`cd0d882`](https://github.com/dimanu-py/instant-python/commit/cd0d88293612e4e83206615b903ff40af69b5dac))
|
|
112
|
+
|
|
113
|
+
- **templates**: Add {% raw %} and {% endraw %} tags in github actions templates when they access repository variables ([`46ec5c1`](https://github.com/dimanu-py/instant-python/commit/46ec5c1489b937065b6ebd8a1723ae581adc9445))
|
|
114
|
+
|
|
115
|
+
- **templates**: Correct forma of helper scripts when makefile built in feature is selected and include custom hooks only if precommit feature is not selected ([`fe15d7e`](https://github.com/dimanu-py/instant-python/commit/fe15d7e7521bd70879490e1a96973477524518f3))
|
|
116
|
+
|
|
117
|
+
- **templates**: Correct error in conditional in makefile template ([`b126eed`](https://github.com/dimanu-py/instant-python/commit/b126eed146787cf254070e4169afbde1433b5ce2))
|
|
118
|
+
|
|
119
|
+
- **templates**: Use selected dependency manager for new make commands ([`80bf833`](https://github.com/dimanu-py/instant-python/commit/80bf8333d06facae66b3f15992f0d59bc5bab785))
|
|
120
|
+
|
|
121
|
+
- **templates**: Include makefile if precommit built in feature is selected ([`9dcec97`](https://github.com/dimanu-py/instant-python/commit/9dcec97973b1a91a78d2bdf11a3bd20e097e8c68))
|
|
122
|
+
|
|
123
|
+
- **templates**: Write correct name for aggregate template file in value objects project structure ([`d651243`](https://github.com/dimanu-py/instant-python/commit/d651243d7baf602f262ed63d31bc4b0d0c2c2952))
|
|
124
|
+
|
|
125
|
+
- **render**: Create jinja environment with autoscape argument enabled to avoid potential XSS attacks ([`976d459`](https://github.com/dimanu-py/instant-python/commit/976d459538ae8eea403c65300304e6405fec46b6))
|
|
126
|
+
|
|
127
|
+
- **templates**: Format correctly if statement in application.py template ([`409d606`](https://github.com/dimanu-py/instant-python/commit/409d6064d97ef016c34dab57d3c9456a47e6542f))
|
|
128
|
+
|
|
129
|
+
- **templates**: Include logger and migrator in fastapi application only if they are selected too for DDD and standard project templates ([`f5a8087`](https://github.com/dimanu-py/instant-python/commit/f5a80870d0ecdd2f47419ad5e51d20131649b422))
|
|
130
|
+
|
|
131
|
+
- **templates**: Include logger and migrator in fastapi application only if they are selected as built in feature too in clean architecture template ([`191d81f`](https://github.com/dimanu-py/instant-python/commit/191d81fd8ace560f3a6359bc9cf767c73c310d50))
|
|
132
|
+
|
|
133
|
+
### ⚙️ Build System
|
|
134
|
+
|
|
135
|
+
- Modify release job and semantic release configuration to be able to update uv.lock with the new version ([`2d52828`](https://github.com/dimanu-py/instant-python/commit/2d5282804956e4e5ab31c20b320663f9184f0a84))
|
|
136
|
+
|
|
137
|
+
- Update version in uv.lock ([`9d1bd2c`](https://github.com/dimanu-py/instant-python/commit/9d1bd2c380293c7e1635a03da0654e7084b9e1eb))
|
|
138
|
+
|
|
139
|
+
- Update semantic release to not update major version if is zero and to allow 0 major version ([`34d251e`](https://github.com/dimanu-py/instant-python/commit/34d251e8a57eafa595a0c54e314238f389218dd6))
|
|
140
|
+
|
|
141
|
+
- Remove test hook in precommit config ([`b8d451d`](https://github.com/dimanu-py/instant-python/commit/b8d451db1a024ae41a6958dbf9513801f3b69627))
|
|
142
|
+
|
|
143
|
+
- Remove final echo from makefile commands to let output of the command itself inform the user ([`cd895ad`](https://github.com/dimanu-py/instant-python/commit/cd895adacfe1e470a746165380369c9c365996e8))
|
|
144
|
+
|
|
145
|
+
- Remove -e command from echo in makefile ([`6a624a3`](https://github.com/dimanu-py/instant-python/commit/6a624a3cacf8b96adaeba20bb635b7e43d853002))
|
|
146
|
+
|
|
147
|
+
- Exclude resources folder from being formatted or linted ([`cf00038`](https://github.com/dimanu-py/instant-python/commit/cf000382ba13a0bc4dbda8eb346e9cdeb4fe4541))
|
|
148
|
+
|
|
149
|
+
- Remove AST check from pre commit hook ([`b46437e`](https://github.com/dimanu-py/instant-python/commit/b46437e804a1d54f13444e92827bd15d9fb2fd57))
|
|
150
|
+
|
|
151
|
+
- Add docs-serve command to makefile ([`9430934`](https://github.com/dimanu-py/instant-python/commit/943093498f168f49cc8b2593ea17911321f2e012))
|
|
152
|
+
|
|
153
|
+
- Improve messages of make command and add build and clean commands ([`6a0e428`](https://github.com/dimanu-py/instant-python/commit/6a0e4285d3bb43f9e88dad32fd2f93732ab271c8))
|
|
154
|
+
|
|
155
|
+
- Remove commitizen config as is not longer needed ([`0ed6a8b`](https://github.com/dimanu-py/instant-python/commit/0ed6a8bd50c6ebf30b71e4734fd3e4a81123b280))
|
|
156
|
+
|
|
157
|
+
### ♻️ Refactoring
|
|
158
|
+
|
|
159
|
+
- **templates**: Improve format of github action template ([`a01b4b0`](https://github.com/dimanu-py/instant-python/commit/a01b4b0c5f57ecbc5c66995abda26157b923ecd8))
|
|
160
|
+
|
|
161
|
+
- **templates**: Improve formatting of makefile and reorganize commands ([`efa8de5`](https://github.com/dimanu-py/instant-python/commit/efa8de5c5bae2bd79c8e4a0a01ef4aa016b0e54c))
|
|
162
|
+
|
|
163
|
+
- **templates**: Convert local setup and custom hooks into python scripts ([`12af46c`](https://github.com/dimanu-py/instant-python/commit/12af46c7cf2bd437f2f81b412ceb615a7cd563e5))
|
|
164
|
+
|
|
165
|
+
- **templates**: Convert add and remove dependency scripts into python scripts instead of bash scripts ([`0d29c14`](https://github.com/dimanu-py/instant-python/commit/0d29c14a7aa7a113fe365d1e30055ead52908b29))
|
|
166
|
+
|
|
167
|
+
|
|
3
168
|
## v0.8.2 (2025-07-16)
|
|
4
169
|
|
|
5
170
|
### 🪲 Bug Fixes
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: instant-python
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
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/
|
|
7
|
-
Author-email: dimanu-py <
|
|
7
|
+
Author-email: dimanu-py <dimanu.py@gmail.com>
|
|
8
8
|
License: Apache License
|
|
9
9
|
Version 2.0, January 2004
|
|
10
10
|
http://www.apache.org/licenses/
|
|
@@ -223,6 +223,8 @@ 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
|
|
226
|
+
Provides-Extra: build
|
|
227
|
+
Requires-Dist: uv>=0.7.21; extra == 'build'
|
|
226
228
|
Description-Content-Type: text/markdown
|
|
227
229
|
|
|
228
230
|
<div align="center">
|
|
@@ -3,7 +3,7 @@ from rich.panel import Panel
|
|
|
3
3
|
|
|
4
4
|
from instant_python.commands import init, config
|
|
5
5
|
from instant_python.shared.application_error import ApplicationError
|
|
6
|
-
from instant_python.instant_python_typer import InstantPythonTyper
|
|
6
|
+
from instant_python.cli.instant_python_typer import InstantPythonTyper
|
|
7
7
|
|
|
8
8
|
app = InstantPythonTyper()
|
|
9
9
|
console = Console()
|
|
@@ -19,12 +19,9 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
permissions:
|
|
21
21
|
contents: write
|
|
22
|
-
pull-requests: write
|
|
23
|
-
|
|
24
22
|
outputs:
|
|
25
|
-
released:
|
|
26
|
-
|
|
27
|
-
tag: {% raw %}${{ steps.released.outputs.tag }}{% endraw %}
|
|
23
|
+
released: ${{ steps.released.outputs.released }}
|
|
24
|
+
tag: ${{ steps.released.outputs.tag }}
|
|
28
25
|
|
|
29
26
|
steps:
|
|
30
27
|
- name: 🛡️ Harden runner
|
|
@@ -38,34 +35,30 @@ jobs:
|
|
|
38
35
|
fetch-depth: 0
|
|
39
36
|
persist-credentials: false
|
|
40
37
|
|
|
41
|
-
- name: 🔖
|
|
38
|
+
- name: 🔖 Create release
|
|
42
39
|
id: released
|
|
43
40
|
uses: python-semantic-release/python-semantic-release@2896129e02bb7809d2cf0c1b8e9e795ee27acbcf # v10.0.2
|
|
44
41
|
with:
|
|
45
|
-
build:
|
|
42
|
+
build: true
|
|
46
43
|
push: true
|
|
47
44
|
changelog: true
|
|
48
45
|
commit: true
|
|
49
46
|
tag: true
|
|
50
47
|
vcs_release: true
|
|
51
48
|
config_file: pyproject.toml
|
|
52
|
-
github_token:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
ssh_public_signing_key: {% raw %}${{ vars.SSH_PUBLIC_SIGNING_KEY }}{% endraw %}
|
|
59
|
-
|
|
60
|
-
ssh_private_signing_key: {% raw %}${{ secrets.SSH_PRIVATE_SIGNING_KEY }}{% endraw %}
|
|
49
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
50
|
+
git_committer_email: ${{ vars.GIT_COMMITTER_EMAIL }}
|
|
51
|
+
git_committer_name: ${{ vars.GIT_COMMITTER_NAME }}
|
|
52
|
+
ssh_public_signing_key: ${{ vars.SSH_PUBLIC_SIGNING_KEY }}
|
|
53
|
+
ssh_private_signing_key: ${{ secrets.SSH_PRIVATE_SIGNING_KEY }}
|
|
61
54
|
|
|
62
55
|
build-and-publish:
|
|
63
|
-
name: Publish
|
|
64
|
-
needs:
|
|
65
|
-
|
|
56
|
+
name: Publish to PyPI
|
|
57
|
+
needs:
|
|
58
|
+
- release
|
|
59
|
+
if: needs.release.outputs.released == 'true'
|
|
66
60
|
runs-on: ubuntu-latest
|
|
67
61
|
environment: release
|
|
68
|
-
|
|
69
62
|
permissions:
|
|
70
63
|
id-token: write
|
|
71
64
|
|
|
@@ -80,8 +73,7 @@ jobs:
|
|
|
80
73
|
with:
|
|
81
74
|
fetch-depth: 0
|
|
82
75
|
persist-credentials: false
|
|
83
|
-
ref:
|
|
84
|
-
|
|
76
|
+
ref: refs/tags/${{ needs.release.outputs.tag }}
|
|
85
77
|
|
|
86
78
|
- name: 🛠️ Setup environment
|
|
87
79
|
uses: ./.github/actions/python_setup
|
|
@@ -90,4 +82,4 @@ jobs:
|
|
|
90
82
|
run: uv build
|
|
91
83
|
|
|
92
84
|
- name: 🚀 Publish
|
|
93
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
85
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
{instant_python-0.9.0 → instant_python-0.9.2}/instant_python/templates/boilerplate/pyproject.toml
RENAMED
|
@@ -72,6 +72,9 @@ test = [
|
|
|
72
72
|
{% endif %}
|
|
73
73
|
|
|
74
74
|
{% if "github_actions" in template.built_in_features %}
|
|
75
|
+
[project.optional-dependencies]
|
|
76
|
+
build = ["uv>=0.7.21"]
|
|
77
|
+
|
|
75
78
|
[tool.semantic_release]
|
|
76
79
|
version_toml = ["pyproject.toml:project.version"]
|
|
77
80
|
commit_message = "bump: new version {version} created"
|
|
@@ -84,8 +87,8 @@ build_command = """
|
|
|
84
87
|
pip install -e '.[build]'
|
|
85
88
|
uv lock --upgrade-package instant-python
|
|
86
89
|
git add uv.lock
|
|
87
|
-
uv build
|
|
88
90
|
"""
|
|
91
|
+
|
|
89
92
|
[tool.semantic_release.commit_parser_options]
|
|
90
93
|
minor_tags = ["feat"]
|
|
91
94
|
patch_tags = ["fix", "perf", "refactor", "test", "build"]
|
|
@@ -95,7 +98,6 @@ parse_squash_commits = false
|
|
|
95
98
|
ignore_merge_commits = true
|
|
96
99
|
|
|
97
100
|
[tool.semantic_release.changelog]
|
|
98
|
-
changelog_file = "CHANGELOG.md"
|
|
99
101
|
exclude_commit_patterns = ['''^Merge pull request #''', '''^Merge branch ''']
|
|
100
102
|
mode = "update"
|
|
101
103
|
#template_dir = "docs/changelog"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from faker import Faker
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class RandomGenerator:
|
|
5
|
+
faker = Faker()
|
|
6
|
+
|
|
7
|
+
@classmethod
|
|
8
|
+
def uuid(cls) -> str:
|
|
9
|
+
return cls.faker.uuid4()
|
|
10
|
+
|
|
11
|
+
@classmethod
|
|
12
|
+
def word(cls) -> str:
|
|
13
|
+
return cls.faker.word()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@classmethod
|
|
17
|
+
def positive_integer(cls, minimum: int = 0, maximum: int = 100) -> int:
|
|
18
|
+
return cls.faker.pyint(min_value=minimum, max_value=maximum)
|
instant_python-0.9.2/instant_python/templates/boilerplate/value_object/int_primitives_mother.py
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
|
|
2
|
+
from test.{{ template_domain_import }}.random_generator import RandomGenerator
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class IntPrimitivesMother:
|
|
6
|
+
@staticmethod
|
|
7
|
+
def any() -> int:
|
|
8
|
+
return RandomGenerator.positive_integer()
|
instant_python-0.9.2/instant_python/templates/boilerplate/value_object/string_primitives_mother.py
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
|
|
2
|
+
from test.{{ template_domain_import }}.random_generator import RandomGenerator
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class StringPrimitivesMother:
|
|
6
|
+
@staticmethod
|
|
7
|
+
def any() -> str:
|
|
8
|
+
return RandomGenerator.word()
|
instant_python-0.9.2/instant_python/templates/boilerplate/value_object/test_int_value_object.py
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
|
|
2
|
+
import pytest
|
|
3
|
+
{% if dependencies | has_dependency("expects") %}
|
|
4
|
+
from expects import expect, equal, raise_error
|
|
5
|
+
{% endif %}
|
|
6
|
+
|
|
7
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.incorrect_value_type_error import (
|
|
8
|
+
IncorrectValueTypeError,
|
|
9
|
+
)
|
|
10
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.invalid_negative_value_error import (
|
|
11
|
+
InvalidNegativeValueError,
|
|
12
|
+
)
|
|
13
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.required_value_error import RequiredValueError
|
|
14
|
+
from {{ general.source_name }}.{{ template_domain_import }}.value_objects.usables.int_value_object import (
|
|
15
|
+
IntValueObject,
|
|
16
|
+
)
|
|
17
|
+
from test.{{ template_domain_import }}.value_objects.int_primitives_mother import (
|
|
18
|
+
IntPrimitivesMother,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.unit
|
|
23
|
+
class TestIntValueObject:
|
|
24
|
+
{% if dependencies | has_dependency("expects") %}
|
|
25
|
+
def test_should_create_int_value_object(self) -> None:
|
|
26
|
+
value = IntPrimitivesMother.any()
|
|
27
|
+
|
|
28
|
+
integer = IntValueObject(value)
|
|
29
|
+
|
|
30
|
+
expect(integer.value).to(equal(value))
|
|
31
|
+
|
|
32
|
+
def test_should_raise_error_when_value_is_none(self) -> None:
|
|
33
|
+
expect(lambda: IntValueObject(None)).to(raise_error(RequiredValueError))
|
|
34
|
+
|
|
35
|
+
def test_should_raise_error_when_value_is_not_integer(self) -> None:
|
|
36
|
+
expect(lambda: IntValueObject("123")).to(raise_error(IncorrectValueTypeError))
|
|
37
|
+
|
|
38
|
+
def test_should_raise_error_if_int_value_is_negative(self) -> None:
|
|
39
|
+
expect(lambda: IntValueObject(-1)).to(raise_error(InvalidNegativeValueError))
|
|
40
|
+
|
|
41
|
+
def test_should_compare_equal_with_same_value(self) -> None:
|
|
42
|
+
common_value = IntPrimitivesMother.any()
|
|
43
|
+
first_integer = IntValueObject(common_value)
|
|
44
|
+
second_integer = IntValueObject(common_value)
|
|
45
|
+
|
|
46
|
+
expect(first_integer).to(equal(second_integer))
|
|
47
|
+
|
|
48
|
+
def test_should_not_be_equal_with_different_values(self) -> None:
|
|
49
|
+
first_integer = IntValueObject(IntPrimitivesMother.any())
|
|
50
|
+
second_integer = IntValueObject(IntPrimitivesMother.any())
|
|
51
|
+
|
|
52
|
+
expect(first_integer).to_not(equal(second_integer))
|
|
53
|
+
{% else %}
|
|
54
|
+
def test_should_create_int_value_object(self) -> None:
|
|
55
|
+
value = IntPrimitivesMother.any()
|
|
56
|
+
|
|
57
|
+
integer = IntValueObject(value)
|
|
58
|
+
|
|
59
|
+
assert integer.value == value
|
|
60
|
+
|
|
61
|
+
def test_should_raise_error_when_value_is_none(self) -> None:
|
|
62
|
+
with pytest.raises(RequiredValueError):
|
|
63
|
+
IntValueObject(None)
|
|
64
|
+
|
|
65
|
+
def test_should_raise_error_when_value_is_not_integer(self) -> None:
|
|
66
|
+
with pytest.raises(IncorrectValueTypeError):
|
|
67
|
+
IntValueObject("123")
|
|
68
|
+
|
|
69
|
+
def test_should_raise_error_if_int_value_is_negative(self) -> None:
|
|
70
|
+
with pytest.raises(InvalidNegativeValueError):
|
|
71
|
+
IntValueObject(-1)
|
|
72
|
+
|
|
73
|
+
def test_should_compare_equal_with_same_value(self) -> None:
|
|
74
|
+
common_value = IntPrimitivesMother.any()
|
|
75
|
+
first_integer = IntValueObject(common_value)
|
|
76
|
+
second_integer = IntValueObject(common_value)
|
|
77
|
+
|
|
78
|
+
assert first_integer == second_integer
|
|
79
|
+
|
|
80
|
+
def test_should_not_be_equal_with_different_values(self) -> None:
|
|
81
|
+
first_integer = IntValueObject(IntPrimitivesMother.any())
|
|
82
|
+
second_integer = IntValueObject(IntPrimitivesMother.any())
|
|
83
|
+
|
|
84
|
+
assert first_integer != second_integer
|
|
85
|
+
{% endif %}
|
instant_python-0.9.2/instant_python/templates/boilerplate/value_object/test_string_value_object.py
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
|
|
2
|
+
import pytest
|
|
3
|
+
{% if dependencies | has_dependency("expects") %}
|
|
4
|
+
from expects import expect, equal, raise_error
|
|
5
|
+
{% endif %}
|
|
6
|
+
|
|
7
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.incorrect_value_type_error import (
|
|
8
|
+
IncorrectValueTypeError,
|
|
9
|
+
)
|
|
10
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.required_value_error import RequiredValueError
|
|
11
|
+
from {{ general.source_name }}.{{ template_domain_import }}.value_objects.usables.string_value_object import (
|
|
12
|
+
StringValueObject,
|
|
13
|
+
)
|
|
14
|
+
from test.{{ template_domain_import }}.value_objects.string_primitives_mother import (
|
|
15
|
+
StringPrimitivesMother,
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@pytest.mark.unit
|
|
20
|
+
class TestStringValueObject:
|
|
21
|
+
{% if dependencies | has_dependency("expects") %}
|
|
22
|
+
def test_should_create_string_value_object(self) -> None:
|
|
23
|
+
value = StringPrimitivesMother.any()
|
|
24
|
+
|
|
25
|
+
string = StringValueObject(value)
|
|
26
|
+
|
|
27
|
+
expect(string.value).to(equal(value))
|
|
28
|
+
|
|
29
|
+
def test_should_raise_error_when_value_is_none(self) -> None:
|
|
30
|
+
expect(lambda: StringValueObject(None)).to(raise_error(RequiredValueError))
|
|
31
|
+
|
|
32
|
+
def test_should_raise_error_when_value_is_not_string(self) -> None:
|
|
33
|
+
expect(lambda: StringValueObject(123)).to(raise_error(IncorrectValueTypeError))
|
|
34
|
+
|
|
35
|
+
def test_should_compare_equal_with_same_value(self) -> None:
|
|
36
|
+
common_value = StringPrimitivesMother.any()
|
|
37
|
+
first_string = StringValueObject(common_value)
|
|
38
|
+
second_string = StringValueObject(common_value)
|
|
39
|
+
|
|
40
|
+
expect(first_string).to(equal(second_string))
|
|
41
|
+
|
|
42
|
+
def test_should_not_be_equal_with_different_values(self) -> None:
|
|
43
|
+
first_string = StringValueObject(StringPrimitivesMother.any())
|
|
44
|
+
second_string = StringValueObject(StringPrimitivesMother.any())
|
|
45
|
+
|
|
46
|
+
expect(first_string).to_not(equal(second_string))
|
|
47
|
+
{% else %}
|
|
48
|
+
def test_should_create_string_value_object(self) -> None:
|
|
49
|
+
value = StringPrimitivesMother.any()
|
|
50
|
+
|
|
51
|
+
string = StringValueObject(value)
|
|
52
|
+
|
|
53
|
+
assert string.value == value
|
|
54
|
+
|
|
55
|
+
def test_should_raise_error_when_value_is_none(self) -> None:
|
|
56
|
+
with pytest.raises(RequiredValueError):
|
|
57
|
+
StringValueObject(None)
|
|
58
|
+
|
|
59
|
+
def test_should_raise_error_when_value_is_not_string(self) -> None:
|
|
60
|
+
with pytest.raises(IncorrectValueTypeError):
|
|
61
|
+
StringValueObject(123)
|
|
62
|
+
|
|
63
|
+
def test_should_compare_equal_with_same_value(self) -> None:
|
|
64
|
+
common_value = StringPrimitivesMother.any()
|
|
65
|
+
first_string = StringValueObject(common_value)
|
|
66
|
+
second_string = StringValueObject(common_value)
|
|
67
|
+
|
|
68
|
+
assert first_string == second_string
|
|
69
|
+
|
|
70
|
+
def test_should_not_be_equal_with_different_values(self) -> None:
|
|
71
|
+
first_string = StringValueObject(StringPrimitivesMother.any())
|
|
72
|
+
second_string = StringValueObject(StringPrimitivesMother.any())
|
|
73
|
+
|
|
74
|
+
assert first_string != second_string
|
|
75
|
+
{% endif %}
|
instant_python-0.9.2/instant_python/templates/boilerplate/value_object/test_uuid_value_object.py
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
|
|
2
|
+
import pytest
|
|
3
|
+
{% if dependencies | has_dependency("expects") %}
|
|
4
|
+
from expects import expect, equal, raise_error
|
|
5
|
+
{% endif %}
|
|
6
|
+
|
|
7
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.incorrect_value_type_error import (
|
|
8
|
+
IncorrectValueTypeError,
|
|
9
|
+
)
|
|
10
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.invalid_id_format_error import (
|
|
11
|
+
InvalidIdFormatError,
|
|
12
|
+
)
|
|
13
|
+
from {{ general.source_name }}.{{ template_domain_import }}.errors.required_value_error import RequiredValueError
|
|
14
|
+
from {{ general.source_name }}.{{ template_domain_import }}.value_objects.usables.uuid import (
|
|
15
|
+
Uuid,
|
|
16
|
+
)
|
|
17
|
+
from test.{{ template_domain_import }}.value_objects.uuid_primitives_mother import (
|
|
18
|
+
UuidPrimitivesMother,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.unit
|
|
23
|
+
class TestUuidValueObject:
|
|
24
|
+
{% if dependencies | has_dependency("expects") %}
|
|
25
|
+
def test_should_create_uuid_value_object(self) -> None:
|
|
26
|
+
value = UuidPrimitivesMother.any()
|
|
27
|
+
|
|
28
|
+
uuid = Uuid(value)
|
|
29
|
+
|
|
30
|
+
expect(uuid.value).to(equal(value))
|
|
31
|
+
|
|
32
|
+
def test_should_raise_error_when_value_is_none(self) -> None:
|
|
33
|
+
expect(lambda: Uuid(None)).to(raise_error(RequiredValueError))
|
|
34
|
+
|
|
35
|
+
def test_should_raise_error_when_value_is_not_string(self) -> None:
|
|
36
|
+
expect(lambda: Uuid(123)).to(raise_error(IncorrectValueTypeError))
|
|
37
|
+
|
|
38
|
+
def test_should_raise_error_when_value_is_not_valid_uuid(self) -> None:
|
|
39
|
+
invalid_uuid = UuidPrimitivesMother.invalid()
|
|
40
|
+
expect(lambda: Uuid(invalid_uuid)).to(raise_error(InvalidIdFormatError))
|
|
41
|
+
|
|
42
|
+
def test_should_compare_equal_with_same_value(self) -> None:
|
|
43
|
+
common_value = UuidPrimitivesMother.any()
|
|
44
|
+
first_uuid = Uuid(common_value)
|
|
45
|
+
second_uuid = Uuid(common_value)
|
|
46
|
+
|
|
47
|
+
expect(first_uuid).to(equal(second_uuid))
|
|
48
|
+
|
|
49
|
+
def test_should_not_be_equal_with_different_values(self) -> None:
|
|
50
|
+
first_uuid = Uuid(UuidPrimitivesMother.any())
|
|
51
|
+
second_uuid = Uuid(UuidPrimitivesMother.any())
|
|
52
|
+
|
|
53
|
+
expect(first_uuid).to_not(equal(second_uuid))
|
|
54
|
+
|
|
55
|
+
{% else %}
|
|
56
|
+
def test_should_create_uuid_value_object(self) -> None:
|
|
57
|
+
value = UuidPrimitivesMother.any()
|
|
58
|
+
|
|
59
|
+
uuid = Uuid(value)
|
|
60
|
+
|
|
61
|
+
assert uuid.value == value
|
|
62
|
+
|
|
63
|
+
def test_should_raise_error_when_value_is_none(self) -> None:
|
|
64
|
+
with pytest.raises(RequiredValueError):
|
|
65
|
+
Uuid(None)
|
|
66
|
+
|
|
67
|
+
def test_should_raise_error_when_value_is_not_string(self) -> None:
|
|
68
|
+
with pytest.raises(IncorrectValueTypeError):
|
|
69
|
+
Uuid(123)
|
|
70
|
+
|
|
71
|
+
def test_should_raise_error_when_value_is_not_valid_uuid(self) -> None:
|
|
72
|
+
invalid_uuid = UuidPrimitivesMother.invalid()
|
|
73
|
+
with pytest.raises(InvalidIdFormatError):
|
|
74
|
+
Uuid(invalid_uuid)
|
|
75
|
+
|
|
76
|
+
def test_should_compare_equal_with_same_value(self) -> None:
|
|
77
|
+
common_value = UuidPrimitivesMother.any()
|
|
78
|
+
first_uuid = Uuid(common_value)
|
|
79
|
+
second_uuid = Uuid(common_value)
|
|
80
|
+
|
|
81
|
+
assert first_uuid == second_uuid
|
|
82
|
+
|
|
83
|
+
def test_should_not_be_equal_with_different_values(self) -> None:
|
|
84
|
+
first_uuid = Uuid(UuidPrimitivesMother.any())
|
|
85
|
+
second_uuid = Uuid(UuidPrimitivesMother.any())
|
|
86
|
+
|
|
87
|
+
assert first_uuid != second_uuid
|
|
88
|
+
{% endif %}
|
instant_python-0.9.2/instant_python/templates/boilerplate/value_object/uuid_primitives_mother.py
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{% set template_domain_import = "shared.domain"|compute_base_path(template.name) %}
|
|
2
|
+
from test.{{ template_domain_import }}.random_generator import RandomGenerator
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class UuidPrimitivesMother:
|
|
6
|
+
@staticmethod
|
|
7
|
+
def any() -> str:
|
|
8
|
+
return RandomGenerator.uuid()
|
|
9
|
+
|
|
10
|
+
@staticmethod
|
|
11
|
+
def invalid() -> str:
|
|
12
|
+
return "00000000-0000-0000-0000"
|