instant-python 0.19.0__tar.gz → 0.20.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.19.0 → instant_python-0.20.0}/.github/actions/python_setup/action.yml +1 -3
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/workflows/ci.yml +2 -2
- {instant_python-0.19.0 → instant_python-0.20.0}/CHANGELOG.md +186 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/PKG-INFO +2 -1
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/guide/command_config.md +64 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/guide/custom_projects.md +72 -7
- instant_python-0.20.0/docs/guide/template_reference.md +434 -0
- instant_python-0.20.0/instant_python/__init__.py +1 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/cli/cli.py +4 -1
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/application/config_generator.py +8 -5
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/delivery/cli.py +2 -2
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/delivery/cli.py +1 -1
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +1 -1
- {instant_python-0.19.0/instant_python/initialize → instant_python-0.20.0/instant_python/shared}/domain/config_repository.py +4 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/domain/config_schema.py +1 -1
- {instant_python-0.19.0/instant_python/initialize → instant_python-0.20.0/instant_python/shared}/infra/persistence/yaml_config_repository.py +6 -1
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +2 -1
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/pyproject.toml +1 -1
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/makefile +7 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/application.yml +3 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +8 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +10 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +12 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +3 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +3 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +3 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +9 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/main_structure.yml +38 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/source.yml +9 -0
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/test.yml +9 -0
- instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/bounded_context.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -3
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +8 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +18 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +10 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +12 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +8 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +3 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +3 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +9 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +38 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/source.yml +10 -0
- instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/test.yml +9 -0
- instant_python-0.19.0/instant_python/templates/project_structure/event_bus_domain.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -8
- instant_python-0.20.0/instant_python/templates/project_structure/events/mock_event_bus.yml +4 -0
- instant_python-0.20.0/instant_python/templates/project_structure/macros.j2 +73 -0
- instant_python-0.20.0/instant_python/templates/project_structure/persistence/alembic_migrator.yml +6 -0
- instant_python-0.20.0/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +4 -0
- instant_python-0.19.0/instant_python/templates/project_structure/async_sqlalchemy.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +1 -1
- instant_python-0.20.0/instant_python/templates/project_structure/standard_project/layers/source_features.yml +13 -0
- instant_python-0.20.0/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +6 -0
- instant_python-0.20.0/instant_python/templates/project_structure/standard_project/layers/test_features.yml +6 -0
- instant_python-0.20.0/instant_python/templates/project_structure/standard_project/main_structure.yml +38 -0
- instant_python-0.20.0/instant_python/templates/project_structure/standard_project/source.yml +5 -0
- instant_python-0.20.0/instant_python/templates/project_structure/standard_project/test.yml +5 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/makefile +11 -4
- {instant_python-0.19.0 → instant_python-0.20.0}/mkdocs.yml +1 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/pyproject.toml +3 -2
- instant_python-0.20.0/schemas/ipy-schema.json +280 -0
- instant_python-0.20.0/schemas/main-structure-schema.json +88 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/config/application/test_config_generator.py +5 -5
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +12 -12
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/mothers/config_schema_mother.py +12 -0
- instant_python-0.20.0/test/shared/persistence/test_yaml_config_repository.py +50 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/uv.lock +63 -1
- instant_python-0.19.0/instant_python/__init__.py +0 -1
- instant_python-0.19.0/instant_python/config/domain/config_writer.py +0 -9
- instant_python-0.19.0/instant_python/config/infra/writer/yaml_config_writer.py +0 -13
- instant_python-0.19.0/instant_python/templates/project_structure/alembic_migrator.yml.j2 +0 -6
- instant_python-0.19.0/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 +0 -39
- instant_python-0.19.0/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +0 -51
- instant_python-0.19.0/instant_python/templates/project_structure/clean_architecture/test.yml.j2 +0 -36
- instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 +0 -39
- instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 +0 -57
- instant_python-0.19.0/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 +0 -36
- instant_python-0.19.0/instant_python/templates/project_structure/macros.j2 +0 -6
- instant_python-0.19.0/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 +0 -39
- instant_python-0.19.0/instant_python/templates/project_structure/standard_project/source.yml.j2 +0 -28
- instant_python-0.19.0/instant_python/templates/project_structure/standard_project/test.yml.j2 +0 -23
- instant_python-0.19.0/scripts/add_dependency.py +0 -24
- instant_python-0.19.0/scripts/remove_dependency.py +0 -22
- instant_python-0.19.0/test/config/infra/writer/test_yaml_config_writer.py +0 -16
- instant_python-0.19.0/test/initialize/infra/persistence/approvaltests_config.json +0 -3
- instant_python-0.19.0/test/initialize/infra/persistence/approved_files/TestYamlConfigRepository.test_should_read_existing_config_file.approved.txt +0 -26
- instant_python-0.19.0/test/initialize/infra/persistence/test_yaml_config_repository.py +0 -59
- instant_python-0.19.0/test/shared/domain/__init__.py +0 -0
- instant_python-0.19.0/test/shared/domain/mothers/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/FUNDING.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/pull_request_template.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/workflows/pages.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.github/workflows/release.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.gitignore +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.pre-commit-config.yaml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/.python-version +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/CITATION.cff +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/LICENSE +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/README.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/SECURITY.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/codeql-config.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/assets/favicon.svg +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/assets/logo.svg +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/changes.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/first_release.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/macros.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/.release_notes.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/development/contributing.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/development/releases.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/development/security.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/downloads_macro.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/getting_started/first_steps.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/getting_started/installation.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/guide/command_init.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/guide/default_features.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/guide/index.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/docs/home/index.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/cli/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/cli/instant_python_typer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/application/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/delivery/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/domain/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/domain/question_wizard.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
- {instant_python-0.19.0/instant_python/config/infra/writer → instant_python-0.20.0/instant_python/initialize}/__init__.py +0 -0
- {instant_python-0.19.0/instant_python/initialize → instant_python-0.20.0/instant_python/initialize/application}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/application/project_initializer.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/application → instant_python-0.20.0/instant_python/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/delivery → instant_python-0.20.0/instant_python/initialize/domain}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/env_manager.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/node.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/project_formatter.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/project_renderer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/project_structure.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/project_writer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/domain → instant_python-0.20.0/instant_python/initialize/infra}/__init__.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra → instant_python-0.20.0/instant_python/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra/env_manager → instant_python-0.20.0/instant_python/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra/formatter → instant_python-0.20.0/instant_python/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra/persistence → instant_python-0.20.0/instant_python/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra/renderer → instant_python-0.20.0/instant_python/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra/version_control → instant_python-0.20.0/instant_python/shared}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.19.0/instant_python/initialize/infra/writer → instant_python-0.20.0/instant_python/shared/domain}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/domain/dependency_config.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/domain/general_config.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/domain/git_config.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/domain/template_config.py +0 -0
- {instant_python-0.19.0/instant_python/shared → instant_python-0.20.0/instant_python/shared/infra}/__init__.py +0 -0
- {instant_python-0.19.0/instant_python/shared/domain → instant_python-0.20.0/instant_python/shared/infra/persistence}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/supported_built_in_features.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/supported_managers.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/ci.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/release.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/pytest.ini +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/gitignore.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/mypy.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/pyproject.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/pytest.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/pytest.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/python_version.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/python_version.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/citation.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/citation.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/license.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/license.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/readme.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/readme.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/security.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/security.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/value_objects.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/errors.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/event_bus_infra.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/events/event_bus_infra.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/fastapi_app.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/fastapi_domain.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/fastapi_infra.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/github_action.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/github_action.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/github_issues_template.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/github_issues_template.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/makefile.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/makefile.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/precommit_hook.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/logger.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/logger.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/async_alembic.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/persistence.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
- /instant_python-0.19.0/instant_python/templates/project_structure/synchronous_sqlalchemy.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/mypy.ini +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/cli/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/cli/test_version_command.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/config/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/config/application/__init__.py +0 -0
- {instant_python-0.19.0/test/config/infra → instant_python-0.20.0/test/initialize}/__init__.py +0 -0
- {instant_python-0.19.0/test/config/infra/writer → instant_python-0.20.0/test/initialize/application}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/application/test_project_initializer.py +0 -0
- {instant_python-0.19.0/test/initialize → instant_python-0.20.0/test/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/approvaltests_config.json +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/delivery/test_init_cli.py +0 -0
- {instant_python-0.19.0/test/initialize/application → instant_python-0.20.0/test/initialize/domain}/__init__.py +0 -0
- {instant_python-0.19.0/test/initialize/delivery → instant_python-0.20.0/test/initialize/domain/mothers}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/domain/mothers/node_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/domain/test_node.py +0 -0
- {instant_python-0.19.0/test/initialize/domain → instant_python-0.20.0/test/initialize/infra}/__init__.py +0 -0
- {instant_python-0.19.0/test/initialize/domain/mothers → instant_python-0.20.0/test/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.19.0/test/initialize/infra → instant_python-0.20.0/test/initialize/infra/env_manager/mother}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/env_manager/test_system_console.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
- {instant_python-0.19.0/test/initialize/infra/env_manager → instant_python-0.20.0/test/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
- {instant_python-0.19.0/test/initialize/infra/env_manager/mother → instant_python-0.20.0/test/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/renderer/test_jinja_environment.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
- {instant_python-0.19.0/test/initialize/infra/formatter → instant_python-0.20.0/test/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
- {instant_python-0.19.0/test/initialize/infra/persistence → instant_python-0.20.0/test/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/random_generator.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/resources/base_ipy_config.yml +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/resources/domain_error_template.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/resources/hello_world.j2 +0 -0
- /instant_python-0.19.0/test/resources/main_structure.yml.j2 → /instant_python-0.20.0/test/resources/main_structure.yml +0 -0
- /instant_python-0.19.0/test/resources/standard_project/main_structure.yml.j2 → /instant_python-0.20.0/test/resources/standard_project/main_structure.yml +0 -0
- {instant_python-0.19.0/test/initialize/infra/renderer → instant_python-0.20.0/test/shared}/__init__.py +0 -0
- {instant_python-0.19.0/test/initialize/infra/version_control → instant_python-0.20.0/test/shared/domain}/__init__.py +0 -0
- {instant_python-0.19.0/test/initialize/infra/writer → instant_python-0.20.0/test/shared/domain/mothers}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/mothers/general_config_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/test_config_schema.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/test_dependency_config.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/test_general_config.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/test_git_config.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/shared/domain/test_template_configuration.py +0 -0
- {instant_python-0.19.0/test/shared → instant_python-0.20.0/test/shared/persistence}/__init__.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/test/utils.py +0 -0
- {instant_python-0.19.0 → instant_python-0.20.0}/tox.ini +0 -0
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
|
|
32
32
|
- name: 🧐 Check linting
|
|
33
33
|
id: check_lint
|
|
34
|
-
run:
|
|
34
|
+
run: make check-lint
|
|
35
35
|
|
|
36
36
|
format:
|
|
37
37
|
name: format
|
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
|
|
55
55
|
- name: 🧐 Check code format
|
|
56
56
|
id: check_format
|
|
57
|
-
run:
|
|
57
|
+
run: make check-format
|
|
58
58
|
|
|
59
59
|
analyze-code-quality:
|
|
60
60
|
name: analyze-code-quality
|
|
@@ -2,6 +2,192 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.20.0 (2025-12-05)
|
|
6
|
+
|
|
7
|
+
### ✨ Features
|
|
8
|
+
|
|
9
|
+
- **schema**: Add JSON schema for custom project template structure to enable syntax and key/value
|
|
10
|
+
detection
|
|
11
|
+
([`bf918b5`](https://github.com/dimanu-py/instant-python/commit/bf918b5b1efdcb9ddc38786814a5038144ca958b))
|
|
12
|
+
|
|
13
|
+
- **schema**: Add JSON schema for instant-python project configuration to enable syntax and
|
|
14
|
+
key/value detection when modifying ipy config file manually
|
|
15
|
+
([`2e3d4f7`](https://github.com/dimanu-py/instant-python/commit/2e3d4f786020ead95324784497015e698477a891))
|
|
16
|
+
|
|
17
|
+
- **templates**: Add autostyle command to makefile to automatically format, lint and commit modified
|
|
18
|
+
files
|
|
19
|
+
([`96c4610`](https://github.com/dimanu-py/instant-python/commit/96c46109c811198b70598df2c9f3e0674f6be1e7))
|
|
20
|
+
|
|
21
|
+
- **initialize**: Implement 'write' method in yaml config repository to be able to write ipy config
|
|
22
|
+
file in working directory
|
|
23
|
+
([`ca04b4c`](https://github.com/dimanu-py/instant-python/commit/ca04b4c97392970399ed7b8a6e3a86984ed6779b))
|
|
24
|
+
|
|
25
|
+
- **initialize**: Add 'write' method to config repository to be able to use it with config command
|
|
26
|
+
and move it to shared
|
|
27
|
+
([`e081a34`](https://github.com/dimanu-py/instant-python/commit/e081a342ccac66e45cef0cad728681c5aa9f301d))
|
|
28
|
+
|
|
29
|
+
### ⚙️ Build System
|
|
30
|
+
|
|
31
|
+
- **makefile**: Add command to makefile to automatically format, lint and commit modified files
|
|
32
|
+
([`2837703`](https://github.com/dimanu-py/instant-python/commit/28377039628f755b503192aef85723f3e3b4704c))
|
|
33
|
+
|
|
34
|
+
- **pyproject**: Add posthog dependency
|
|
35
|
+
([`b3df1c0`](https://github.com/dimanu-py/instant-python/commit/b3df1c0587709a39e9e702142bdad4e8e293b07a))
|
|
36
|
+
|
|
37
|
+
- **makefile**: Modify add-dep and remove-dep commands in makefile to not need scripts files
|
|
38
|
+
([`b9d5286`](https://github.com/dimanu-py/instant-python/commit/b9d528636f5a051c865f4ea45196443ff322b55e))
|
|
39
|
+
|
|
40
|
+
### ♻️ Refactoring
|
|
41
|
+
|
|
42
|
+
- **templates**: Rename all templates for project structure to remove the '.j2' extension as it is
|
|
43
|
+
not need it
|
|
44
|
+
([`cde9f87`](https://github.com/dimanu-py/instant-python/commit/cde9f87670273e6711fd08919c525208e7075fd9))
|
|
45
|
+
|
|
46
|
+
- **initialize**: Modify file name for project structure template to not include j2 extension
|
|
47
|
+
([`e8cd1f1`](https://github.com/dimanu-py/instant-python/commit/e8cd1f1aadb637f0a359783f11f95b164ca4cbd8))
|
|
48
|
+
|
|
49
|
+
- **cli**: Modify main callback to print ipy help if no subcommand is called
|
|
50
|
+
([`1784a3d`](https://github.com/dimanu-py/instant-python/commit/1784a3d129253cd197640680fbd85351ff074ec8))
|
|
51
|
+
|
|
52
|
+
- **initialize**: Move config repository port and its adapter to shared folder so it can be properly
|
|
53
|
+
shared among commands
|
|
54
|
+
([`438f89c`](https://github.com/dimanu-py/instant-python/commit/438f89cdf75ff58ce0477e88a54cad55ad4e93ae))
|
|
55
|
+
|
|
56
|
+
- **config**: Remove legacy config writer now that its behavior has been unified in the config
|
|
57
|
+
repository
|
|
58
|
+
([`3bcd3c9`](https://github.com/dimanu-py/instant-python/commit/3bcd3c9d858e342d9deca9bdc7bcd5db766de94b))
|
|
59
|
+
|
|
60
|
+
- **config**: Extract semantic method to keep use case with the same abstraction level and make it
|
|
61
|
+
more readable
|
|
62
|
+
([`7077e6a`](https://github.com/dimanu-py/instant-python/commit/7077e6a50a23df5e3d080b89265a935d83d8d68c))
|
|
63
|
+
|
|
64
|
+
- **config**: Modify config generator dependency to receive a config repository instead of a config
|
|
65
|
+
writer
|
|
66
|
+
([`89ed351`](https://github.com/dimanu-py/instant-python/commit/89ed35135d679a4fb4375eece5329162c454fb91))
|
|
67
|
+
|
|
68
|
+
- **initialize**: Modify 'write' method so it uses absolute config file path instead of creating it
|
|
69
|
+
([`5acc795`](https://github.com/dimanu-py/instant-python/commit/5acc795ba127292d5144d18da3ba718faf880b9e))
|
|
70
|
+
|
|
71
|
+
- **shared**: Make default config file path absolute from users root folder to avoid incorrect
|
|
72
|
+
destination and relative path errors
|
|
73
|
+
([`074e4a7`](https://github.com/dimanu-py/instant-python/commit/074e4a76f5319f2d167243935ca449a3ff80ca10))
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
## v0.19.1 (2025-11-27)
|
|
77
|
+
|
|
78
|
+
### 🪲 Bug Fixes
|
|
79
|
+
|
|
80
|
+
- **templates**: Correct indentation level for source and test templates in standard project
|
|
81
|
+
([`54b36ca`](https://github.com/dimanu-py/instant-python/commit/54b36cac14dc9a12157223207b47236b063262ef))
|
|
82
|
+
|
|
83
|
+
- **templates**: Remove aggregate and value object file from event bus folder structure now that
|
|
84
|
+
these implementation have delegated to sindripy
|
|
85
|
+
([`13a7780`](https://github.com/dimanu-py/instant-python/commit/13a7780f0263edf83ac5751c26bf6d5f04073b2a))
|
|
86
|
+
|
|
87
|
+
- **templates**: Modify EventAggregate template to use Aggregate from sindripy instead of legacy
|
|
88
|
+
aggregate that doesn't exist anymore
|
|
89
|
+
([`dcbf2d3`](https://github.com/dimanu-py/instant-python/commit/dcbf2d3f913327a2f909ab48526f32c958e26db2))
|
|
90
|
+
|
|
91
|
+
- **templates**: Include sindripy dependency when event bus feature is selected to be able to use
|
|
92
|
+
the Aggregate implementation
|
|
93
|
+
([`b5c3000`](https://github.com/dimanu-py/instant-python/commit/b5c30002596fc639316f93d403b4bedc18cb1e7c))
|
|
94
|
+
|
|
95
|
+
### ♻️ Refactoring
|
|
96
|
+
|
|
97
|
+
- **templates**: Rename value objects template to errors now that it only contains errors and value
|
|
98
|
+
objects are handled with sindripy
|
|
99
|
+
([`df8458b`](https://github.com/dimanu-py/instant-python/commit/df8458b18497574f48a075550e3d75e0a11e58e1))
|
|
100
|
+
|
|
101
|
+
- **templates**: Move new advanced macros to root of templates folder and use it along project
|
|
102
|
+
structure templates
|
|
103
|
+
([`736314c`](https://github.com/dimanu-py/instant-python/commit/736314c5612b7d7518e780d8026951372a189755))
|
|
104
|
+
|
|
105
|
+
- **templates**: Remove legacy templates now that they are better organized
|
|
106
|
+
([`c1b6c44`](https://github.com/dimanu-py/instant-python/commit/c1b6c44a04837f06db6a4db91d1e6d389b352be5))
|
|
107
|
+
|
|
108
|
+
- **templates**: Update main templates for standard project structure using new macros and organized
|
|
109
|
+
templates folder
|
|
110
|
+
([`4fe22f3`](https://github.com/dimanu-py/instant-python/commit/4fe22f3b4bb4efca55531b52b8612aa29d2a3047))
|
|
111
|
+
|
|
112
|
+
- **templates**: Add advanced macros to be able to reuse render logic for templates and avoid
|
|
113
|
+
conditionals
|
|
114
|
+
([`76cc909`](https://github.com/dimanu-py/instant-python/commit/76cc9090ef73f7e17ef7736ec64a50a86d6dea65))
|
|
115
|
+
|
|
116
|
+
- **templates**: Separate and modularize structure of standard project template in layers
|
|
117
|
+
([`7123c85`](https://github.com/dimanu-py/instant-python/commit/7123c85bfbbabecd0ad1245b58ac668546343721))
|
|
118
|
+
|
|
119
|
+
- **templates**: Update main templates for ddd project structure using new macros and organized
|
|
120
|
+
templates folder
|
|
121
|
+
([`613f361`](https://github.com/dimanu-py/instant-python/commit/613f36175902befddf45d8a0b56ef9069ae30df1))
|
|
122
|
+
|
|
123
|
+
- **templates**: Add advanced macros to be able to reuse render logic for templates and avoid
|
|
124
|
+
conditionals
|
|
125
|
+
([`f96a178`](https://github.com/dimanu-py/instant-python/commit/f96a1787d978e6e56fae478a26ddf6d858f14da9))
|
|
126
|
+
|
|
127
|
+
- **templates**: Separate and modularize structure of ddd template in layers
|
|
128
|
+
([`66044d5`](https://github.com/dimanu-py/instant-python/commit/66044d56011e28b695b5a0b7af591415732ad426))
|
|
129
|
+
|
|
130
|
+
- **templates**: Move config files for projects templates to specific folder for better organization
|
|
131
|
+
([`5bc4e15`](https://github.com/dimanu-py/instant-python/commit/5bc4e15fcbdd6f20eaf69ffe24ae92866175c138))
|
|
132
|
+
|
|
133
|
+
- **templates**: Move github related templates to specific folder for better organization
|
|
134
|
+
([`ee42c25`](https://github.com/dimanu-py/instant-python/commit/ee42c2556037af6ba69bb0a973cf67c0659b9e0e))
|
|
135
|
+
|
|
136
|
+
- **templates**: Move fastapi templates to specific folders for better organization
|
|
137
|
+
([`7437c95`](https://github.com/dimanu-py/instant-python/commit/7437c9513f7e963e41f51a28a6ba90a432cef12c))
|
|
138
|
+
|
|
139
|
+
- **templates**: Move documentation templates such as readme, citation and security to specific
|
|
140
|
+
folders for better organization
|
|
141
|
+
([`3608d27`](https://github.com/dimanu-py/instant-python/commit/3608d2777cd324a51f3d841cd5c92a651d6ee7e5))
|
|
142
|
+
|
|
143
|
+
- **templates**: Modify test structure to include application folder too
|
|
144
|
+
([`b0bc458`](https://github.com/dimanu-py/instant-python/commit/b0bc45873d3ee57b86282fccba8ddc89b54a1d80))
|
|
145
|
+
|
|
146
|
+
- **templates**: Remove conditional logic to include features in infra tests for clean architecture
|
|
147
|
+
and use render_children_for macro to make it clearer and easier to extend
|
|
148
|
+
([`87fe7fc`](https://github.com/dimanu-py/instant-python/commit/87fe7fc32b65f8933699402d508a4770f5a0c748))
|
|
149
|
+
|
|
150
|
+
- **templates**: Update test infra template to include mock event bus from template
|
|
151
|
+
([`20fd887`](https://github.com/dimanu-py/instant-python/commit/20fd88768cd12acaea632bb6af16de37d9a1ae96))
|
|
152
|
+
|
|
153
|
+
- **templates**: Do not include mock event bus in test domain folder for clean architecture template
|
|
154
|
+
([`20e1d73`](https://github.com/dimanu-py/instant-python/commit/20e1d73cf632f022d8541b3ed625217cb17b15b1))
|
|
155
|
+
|
|
156
|
+
- **templates**: Modify template paths for event features pointing to better organized folders
|
|
157
|
+
([`35e56ac`](https://github.com/dimanu-py/instant-python/commit/35e56ac685d7d88fe7d0a3b2dcd54c9c409bde8a))
|
|
158
|
+
|
|
159
|
+
- **templates**: Organize events templates inside a specific folder to keep them better organized
|
|
160
|
+
([`2552a60`](https://github.com/dimanu-py/instant-python/commit/2552a60e49df586ec890a628e51db10002820907))
|
|
161
|
+
|
|
162
|
+
- **templates**: Update template paths in clean architecture project structure to use new organized
|
|
163
|
+
persistence templates
|
|
164
|
+
([`ad4fced`](https://github.com/dimanu-py/instant-python/commit/ad4fced04cc5c127acbd2b2c96d79e514454d9ac))
|
|
165
|
+
|
|
166
|
+
- **templates**: Organize persistence templates inside a specific folder to keep them better
|
|
167
|
+
organized
|
|
168
|
+
([`b3ff817`](https://github.com/dimanu-py/instant-python/commit/b3ff8170ad24c280796a3f21dac341bd4e7be95f))
|
|
169
|
+
|
|
170
|
+
- **templates**: Remove legacy templates for clean architecture structure now that new version is
|
|
171
|
+
stable
|
|
172
|
+
([`d5293fc`](https://github.com/dimanu-py/instant-python/commit/d5293fc4ca28164859521978532554d34f22fa0b))
|
|
173
|
+
|
|
174
|
+
- **templates**: Modify jinja macro to be able to handle cases where one template file has to be
|
|
175
|
+
included in more than once scenario so it's not get created two times
|
|
176
|
+
([`99e6572`](https://github.com/dimanu-py/instant-python/commit/99e6572e16e9388dc5e3491a1b8bc3dbfc11a25e))
|
|
177
|
+
|
|
178
|
+
- **templates**: Rename old main structure, source and test templates files to mark them as legacy
|
|
179
|
+
but having them as backup
|
|
180
|
+
([`2ea3614`](https://github.com/dimanu-py/instant-python/commit/2ea361497d722b2eb15ad57d5bdaf2e44a2c1e6f))
|
|
181
|
+
|
|
182
|
+
- **templates**: Separate clean architecture source and test structure in separate folders to handle
|
|
183
|
+
easily each folder and its features
|
|
184
|
+
([`f92b499`](https://github.com/dimanu-py/instant-python/commit/f92b4992b57ecdf62689b58a044264e298591452))
|
|
185
|
+
|
|
186
|
+
- **templates**: Write advanced macros to render children blocks and built in features for clean
|
|
187
|
+
architecture
|
|
188
|
+
([`720bf69`](https://github.com/dimanu-py/instant-python/commit/720bf694ebfa12105d58f46549977dc072c786aa))
|
|
189
|
+
|
|
190
|
+
|
|
5
191
|
## v0.19.0 (2025-11-24)
|
|
6
192
|
|
|
7
193
|
### ✨ Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: instant-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.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/
|
|
@@ -220,6 +220,7 @@ Classifier: Topic :: System :: Installation/Setup
|
|
|
220
220
|
Classifier: Topic :: System :: Shells
|
|
221
221
|
Requires-Python: >=3.9
|
|
222
222
|
Requires-Dist: jinja2>=3.1.6
|
|
223
|
+
Requires-Dist: posthog>=6.9.3
|
|
223
224
|
Requires-Dist: pyyaml>=6.0.2
|
|
224
225
|
Requires-Dist: questionary>=2.1.0
|
|
225
226
|
Requires-Dist: typer>=0.15.1
|
|
@@ -9,6 +9,7 @@ project.
|
|
|
9
9
|
|
|
10
10
|
- [Overview](#overview) - What the config command does
|
|
11
11
|
- [Usage](#usage) - How to run the config command
|
|
12
|
+
- [JSON Schema Support](#json-schema-support) - IDE autocompletion and validation
|
|
12
13
|
- [Configuration File Structure](#configuration-file-structure-and-restrictions) - All available options and their restrictions
|
|
13
14
|
- [General](#general) - Project metadata
|
|
14
15
|
- [Template](#template) - Project structure and features
|
|
@@ -113,6 +114,69 @@ Each dependency can have the following fields and restrictions:
|
|
|
113
114
|
| `development` | Whether the dependency is a development dependency. | Must be either `true` or `false`. | No |
|
|
114
115
|
| `group` | The development dependency group. | Only available if `development` is `true`. | Based on restrictions |
|
|
115
116
|
|
|
117
|
+
## JSON Schema Support
|
|
118
|
+
|
|
119
|
+
`instant-python` provides a JSON Schema to help you write and validate your configuration files with autocompletion and validation in your IDE.
|
|
120
|
+
|
|
121
|
+
### What is a JSON Schema?
|
|
122
|
+
|
|
123
|
+
A JSON Schema is a specification that defines the structure and validation rules for JSON and YAML files. By using a schema, your IDE can:
|
|
124
|
+
|
|
125
|
+
- **Autocomplete** field names and values
|
|
126
|
+
- **Validate** your configuration in real-time
|
|
127
|
+
- **Show inline documentation** for each field
|
|
128
|
+
- **Detect errors** before running the command
|
|
129
|
+
|
|
130
|
+
### How to Use the Schema
|
|
131
|
+
|
|
132
|
+
The schema is available at:
|
|
133
|
+
```
|
|
134
|
+
https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
!!! tip "Schema autodetection"
|
|
138
|
+
If your configuration file is named `ipy.yml`, some IDEs may automatically detect and apply the schema
|
|
139
|
+
from [SchemaStore](https://www.schemastore.org/). However, as it may take some time to updated and listed there,
|
|
140
|
+
we recommend configuring it manually to ensure you are using the latest version.
|
|
141
|
+
|
|
142
|
+
#### For Visual Studio Code
|
|
143
|
+
|
|
144
|
+
Add the following line at the top of your `ipy.yml` file:
|
|
145
|
+
|
|
146
|
+
```yaml
|
|
147
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json
|
|
148
|
+
|
|
149
|
+
general:
|
|
150
|
+
slug: my-project
|
|
151
|
+
# ...
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Alternatively, you can configure it globally in your VS Code settings (`.vscode/settings.json`):
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"yaml.schemas": {
|
|
159
|
+
"https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json": "ipy.yml"
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### For PyCharm / IntelliJ IDEA
|
|
165
|
+
|
|
166
|
+
1. Open your `ipy.yml` file
|
|
167
|
+
2. At the top of the file, add:
|
|
168
|
+
```yaml
|
|
169
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json
|
|
170
|
+
```
|
|
171
|
+
3. PyCharm will automatically detect and use the schema
|
|
172
|
+
|
|
173
|
+
Alternatively, you can configure it manually:
|
|
174
|
+
|
|
175
|
+
1. Go to **Settings** → **Languages & Frameworks** → **Schemas and DTDs** → **JSON Schema Mappings**
|
|
176
|
+
2. Click the **+** button to add a new mapping
|
|
177
|
+
3. Set the **Schema URL** to: `https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json`
|
|
178
|
+
4. Add a file pattern: `ipy.yml`
|
|
179
|
+
|
|
116
180
|
## Configuration File Examples
|
|
117
181
|
|
|
118
182
|
### Without initializing a git repository
|
|
@@ -21,15 +21,15 @@ Follow these steps to create and use your first custom template:
|
|
|
21
21
|
|
|
22
22
|
```
|
|
23
23
|
my_templates/
|
|
24
|
-
├── main_structure.yml
|
|
24
|
+
├── main_structure.yml (required: defines your project structure)
|
|
25
25
|
├── authentication.py (optional: custom file templates)
|
|
26
26
|
├── database.py (optional: more templates)
|
|
27
27
|
└── config.py (optional: more templates)
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
2. Define Your Project Structure: create a file named `main_structure.yml
|
|
30
|
+
2. Define Your Project Structure: create a file named `main_structure.yml` in your template folder.
|
|
31
31
|
|
|
32
|
-
!!! warning "File *main_structure.yml
|
|
32
|
+
!!! warning "File *main_structure.yml* is required"
|
|
33
33
|
This is the **required** file that defines what your projects will look like.
|
|
34
34
|
|
|
35
35
|
3. (Optional) Add Custom File Templates: create any additional template files (like `authentication.py`, `config.py`, etc.) that
|
|
@@ -49,13 +49,13 @@ Your custom template must follow specific rules to generate projects correctly.
|
|
|
49
49
|
|
|
50
50
|
### File Naming & Location
|
|
51
51
|
|
|
52
|
-
- **File name:** Your main structure file **must** be named exactly `main_structure.yml
|
|
52
|
+
- **File name:** Your main structure file **must** be named exactly `main_structure.yml`
|
|
53
53
|
- **Location:** This file **must** be at the root of your custom templates folder
|
|
54
54
|
- **Format:** Must be a YAML file (`.yml` extension)
|
|
55
55
|
|
|
56
56
|
### Required Elements
|
|
57
57
|
|
|
58
|
-
- **pyproject.toml:** You **must** include a `pyproject.toml` file in your `main_structure.yml
|
|
58
|
+
- **pyproject.toml:** You **must** include a `pyproject.toml` file in your `main_structure.yml` structure. This
|
|
59
59
|
is required for the dependency manager to work. If missing, `instant-python` will raise an error.
|
|
60
60
|
|
|
61
61
|
### Structure Definition Format
|
|
@@ -99,6 +99,71 @@ When you specify a `template` field for a file:
|
|
|
99
99
|
|
|
100
100
|
This means you can optionally use built-in templates without having to provide your own.
|
|
101
101
|
|
|
102
|
+
## JSON Schema Support for Custom Templates
|
|
103
|
+
|
|
104
|
+
`instant-python` provides a JSON Schema specifically designed to help you create your `main_structure.yml` file with IDE assistance.
|
|
105
|
+
|
|
106
|
+
### What is a JSON Schema?
|
|
107
|
+
|
|
108
|
+
A JSON Schema is a specification that defines the structure and validation rules for JSON and YAML files. By using a schema when writing your custom template structure, your IDE can:
|
|
109
|
+
|
|
110
|
+
- **Autocomplete** field names (like `name`, `type`, `python`, `children`, etc.)
|
|
111
|
+
- **Validate** your structure definition in real-time
|
|
112
|
+
- **Show inline documentation** explaining what each field does
|
|
113
|
+
- **Detect errors** before generating your project (like missing required fields or invalid values)
|
|
114
|
+
|
|
115
|
+
### How to Use the Schema
|
|
116
|
+
|
|
117
|
+
The schema for custom template structures is available at:
|
|
118
|
+
```
|
|
119
|
+
https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/main-structure-schema.json
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
!!! tip "Schema autodetection"
|
|
123
|
+
If your configuration file is named `ipy.yml`, some IDEs may automatically detect and apply the schema
|
|
124
|
+
from [SchemaStore](https://www.schemastore.org/). However, as it may take some time to updated and listed there,
|
|
125
|
+
we recommend configuring it manually to ensure you are using the latest version.
|
|
126
|
+
|
|
127
|
+
#### For Visual Studio Code
|
|
128
|
+
|
|
129
|
+
Add the following line at the top of your `main_structure.yml` file:
|
|
130
|
+
|
|
131
|
+
```yaml
|
|
132
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/main-structure-schema.json
|
|
133
|
+
|
|
134
|
+
- name: src
|
|
135
|
+
type: directory
|
|
136
|
+
python: True
|
|
137
|
+
children:
|
|
138
|
+
# ...
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Alternatively, you can configure it globally in your VS Code settings (`.vscode/settings.json`) for all your custom templates:
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"yaml.schemas": {
|
|
146
|
+
"https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/main-structure-schema.json": "**/main_structure.yml"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
#### For PyCharm / IntelliJ IDEA
|
|
152
|
+
|
|
153
|
+
1. Open your `main_structure.yml` file
|
|
154
|
+
2. At the top of the file, add:
|
|
155
|
+
```yaml
|
|
156
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/main-structure-schema.json
|
|
157
|
+
```
|
|
158
|
+
3. PyCharm will automatically detect and use the schema
|
|
159
|
+
|
|
160
|
+
Alternatively, you can configure it manually:
|
|
161
|
+
|
|
162
|
+
1. Go to **Settings** → **Languages & Frameworks** → **Schemas and DTDs** → **JSON Schema Mappings**
|
|
163
|
+
2. Click the **+** button to add a new mapping
|
|
164
|
+
3. Set the **Schema URL** to: `https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/main-structure-schema.json`
|
|
165
|
+
4. Add a file pattern: `main_structure.yml`
|
|
166
|
+
|
|
102
167
|
## Examples
|
|
103
168
|
|
|
104
169
|
### Hexagonal Architecture Project
|
|
@@ -109,7 +174,7 @@ gitignore, README and pyproject files.
|
|
|
109
174
|
!!! important
|
|
110
175
|
Remember that the _pyproject.toml_ file is always required for `instant-python` to be able to set up the environment of your project.
|
|
111
176
|
|
|
112
|
-
Create a file named `main_structure.yml
|
|
177
|
+
Create a file named `main_structure.yml` in your templates folder with the following content:
|
|
113
178
|
|
|
114
179
|
```yaml
|
|
115
180
|
- name: src
|
|
@@ -189,7 +254,7 @@ def authenticate_user(username: str, password: str) -> bool:
|
|
|
189
254
|
return username == "admin" and password == "secret"
|
|
190
255
|
```
|
|
191
256
|
|
|
192
|
-
**Step 2:** Reference this template in your `main_structure.yml
|
|
257
|
+
**Step 2:** Reference this template in your `main_structure.yml`:
|
|
193
258
|
|
|
194
259
|
```yaml
|
|
195
260
|
- name: src
|