instant-python 0.19.1__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.1 → instant_python-0.20.0}/.github/actions/python_setup/action.yml +1 -3
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/workflows/ci.yml +2 -2
- {instant_python-0.19.1 → instant_python-0.20.0}/CHANGELOG.md +71 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/PKG-INFO +2 -1
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/guide/command_config.md +64 -0
- {instant_python-0.19.1 → 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.1 → instant_python-0.20.0}/instant_python/cli/cli.py +4 -1
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/application/config_generator.py +8 -5
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/delivery/cli.py +2 -2
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/delivery/cli.py +1 -1
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +1 -1
- {instant_python-0.19.1/instant_python/initialize → instant_python-0.20.0/instant_python/shared}/domain/config_repository.py +4 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/domain/config_schema.py +1 -1
- {instant_python-0.19.1/instant_python/initialize → instant_python-0.20.0/instant_python/shared}/infra/persistence/yaml_config_repository.py +6 -1
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/makefile +7 -0
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/domain.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +5 -5
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/main_structure.yml +18 -18
- instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/source.yml +9 -0
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/test.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/test.yml +4 -4
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/infra.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +5 -5
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +18 -18
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/source.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/test.yml +2 -2
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/project_structure/macros.j2 +2 -2
- instant_python-0.20.0/instant_python/templates/project_structure/persistence/alembic_migrator.yml +6 -0
- instant_python-0.19.1/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/source_features.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/standard_project/layers/source_features.yml +9 -9
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/test_features.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/standard_project/layers/test_features.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/standard_project/main_structure.yml +18 -18
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/source.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/standard_project/source.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/test.yml.j2 → instant_python-0.20.0/instant_python/templates/project_structure/standard_project/test.yml +1 -1
- {instant_python-0.19.1 → instant_python-0.20.0}/makefile +11 -4
- {instant_python-0.19.1 → instant_python-0.20.0}/mkdocs.yml +1 -0
- {instant_python-0.19.1 → 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.1 → instant_python-0.20.0}/test/config/application/test_config_generator.py +5 -5
- {instant_python-0.19.1 → 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.1 → 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.1 → instant_python-0.20.0}/uv.lock +63 -1
- instant_python-0.19.1/instant_python/__init__.py +0 -1
- instant_python-0.19.1/instant_python/config/domain/config_writer.py +0 -9
- instant_python-0.19.1/instant_python/config/infra/writer/yaml_config_writer.py +0 -13
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +0 -9
- instant_python-0.19.1/instant_python/templates/project_structure/persistence/alembic_migrator.yml.j2 +0 -6
- instant_python-0.19.1/scripts/add_dependency.py +0 -24
- instant_python-0.19.1/scripts/remove_dependency.py +0 -22
- instant_python-0.19.1/test/config/infra/writer/test_yaml_config_writer.py +0 -16
- instant_python-0.19.1/test/initialize/infra/persistence/approvaltests_config.json +0 -3
- instant_python-0.19.1/test/initialize/infra/persistence/approved_files/TestYamlConfigRepository.test_should_read_existing_config_file.approved.txt +0 -26
- instant_python-0.19.1/test/initialize/infra/persistence/test_yaml_config_repository.py +0 -59
- instant_python-0.19.1/test/shared/domain/__init__.py +0 -0
- instant_python-0.19.1/test/shared/domain/mothers/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/FUNDING.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/pull_request_template.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/workflows/pages.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.github/workflows/release.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.gitignore +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.pre-commit-config.yaml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/.python-version +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/CITATION.cff +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/LICENSE +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/README.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/SECURITY.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/codeql-config.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/assets/favicon.svg +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/assets/logo.svg +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/changes.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/first_release.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/macros.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/.release_notes.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/development/contributing.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/development/releases.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/development/security.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/downloads_macro.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/getting_started/first_steps.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/getting_started/installation.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/guide/command_init.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/guide/default_features.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/guide/index.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/docs/home/index.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/cli/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/cli/instant_python_typer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/application/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/delivery/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/domain/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/domain/question_wizard.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
- {instant_python-0.19.1/instant_python/config/infra/writer → instant_python-0.20.0/instant_python/initialize}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize → instant_python-0.20.0/instant_python/initialize/application}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/application/project_initializer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/application → instant_python-0.20.0/instant_python/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/delivery → instant_python-0.20.0/instant_python/initialize/domain}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/env_manager.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/node.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/project_formatter.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/project_renderer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/project_structure.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/project_writer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/domain → instant_python-0.20.0/instant_python/initialize/infra}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra → instant_python-0.20.0/instant_python/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/env_manager → instant_python-0.20.0/instant_python/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/formatter → instant_python-0.20.0/instant_python/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/persistence → instant_python-0.20.0/instant_python/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/renderer → instant_python-0.20.0/instant_python/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/version_control → instant_python-0.20.0/instant_python/shared}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/writer → instant_python-0.20.0/instant_python/shared/domain}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/domain/dependency_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/domain/general_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/domain/git_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/domain/template_config.py +0 -0
- {instant_python-0.19.1/instant_python/shared → instant_python-0.20.0/instant_python/shared/infra}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/shared/domain → instant_python-0.20.0/instant_python/shared/infra/persistence}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/supported_built_in_features.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/supported_managers.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/ci.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/github/release.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/pyproject.toml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/pytest.ini +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/application.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/application.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/gitignore.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/mypy.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/pyproject.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/pytest.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/config_files/pytest.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/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.1/instant_python/templates/project_structure/documentation/citation.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/citation.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/license.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/license.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/readme.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/readme.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/security.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/documentation/security.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/errors.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/errors.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/events/event_bus_domain.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/events/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.1/instant_python/templates/project_structure/events/mock_event_bus.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/events/mock_event_bus.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/fastapi/fastapi_app.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/fastapi/fastapi_domain.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/fastapi/fastapi_infra.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/github_action.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/github_action.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/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.1/instant_python/templates/project_structure/github/makefile.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/makefile.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/precommit_hook.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
- /instant_python-0.19.1/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.1/instant_python/templates/project_structure/persistence/async_alembic.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/async_engine_conftest.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/persistence.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml.j2 → /instant_python-0.20.0/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/mypy.ini +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/cli/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/cli/test_version_command.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/config/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/config/application/__init__.py +0 -0
- {instant_python-0.19.1/test/config/infra → instant_python-0.20.0/test/initialize}/__init__.py +0 -0
- {instant_python-0.19.1/test/config/infra/writer → instant_python-0.20.0/test/initialize/application}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/application/test_project_initializer.py +0 -0
- {instant_python-0.19.1/test/initialize → instant_python-0.20.0/test/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/delivery/approvaltests_config.json +0 -0
- {instant_python-0.19.1 → 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.1 → 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.1 → 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.1 → 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.1 → instant_python-0.20.0}/test/initialize/delivery/test_init_cli.py +0 -0
- {instant_python-0.19.1/test/initialize/application → instant_python-0.20.0/test/initialize/domain}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/delivery → instant_python-0.20.0/test/initialize/domain/mothers}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/domain/mothers/node_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/domain/test_node.py +0 -0
- {instant_python-0.19.1/test/initialize/domain → instant_python-0.20.0/test/initialize/infra}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/domain/mothers → instant_python-0.20.0/test/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/infra → instant_python-0.20.0/test/initialize/infra/env_manager/mother}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/env_manager/test_system_console.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/env_manager → instant_python-0.20.0/test/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/env_manager/mother → instant_python-0.20.0/test/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/renderer/test_jinja_environment.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/formatter → instant_python-0.20.0/test/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
- {instant_python-0.19.1 → 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.1 → 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.1 → 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.1/test/initialize/infra/persistence → instant_python-0.20.0/test/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/random_generator.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/resources/base_ipy_config.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/resources/domain_error_template.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/resources/hello_world.j2 +0 -0
- /instant_python-0.19.1/test/resources/main_structure.yml.j2 → /instant_python-0.20.0/test/resources/main_structure.yml +0 -0
- /instant_python-0.19.1/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.1/test/initialize/infra/renderer → instant_python-0.20.0/test/shared}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/version_control → instant_python-0.20.0/test/shared/domain}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/writer → instant_python-0.20.0/test/shared/domain/mothers}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/mothers/general_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/test_config_schema.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/test_dependency_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/test_general_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/test_git_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/shared/domain/test_template_configuration.py +0 -0
- {instant_python-0.19.1/test/shared → instant_python-0.20.0/test/shared/persistence}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.20.0}/test/utils.py +0 -0
- {instant_python-0.19.1 → 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,77 @@
|
|
|
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
|
+
|
|
5
76
|
## v0.19.1 (2025-11-27)
|
|
6
77
|
|
|
7
78
|
### 🪲 Bug Fixes
|
|
@@ -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
|