instant-python 0.26.0__tar.gz → 0.27.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.26.0 → instant_python-0.27.0}/.github/actions/setup_environment/action.yml +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/workflows/ci.yml +10 -34
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/workflows/release.yml +7 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/.pre-commit-config.yaml +2 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/CHANGELOG.md +87 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/PKG-INFO +1 -1
- instant_python-0.27.0/Taskfile.yml +73 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/getting_started/first_steps.md +2 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/getting_started/installation.md +36 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/getting_started/privacy_and_metrics.md +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/command_config.md +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/default_features.md +2 -5
- instant_python-0.27.0/instant_python/__init__.py +1 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/cli/cli.py +11 -16
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/delivery/cli.py +3 -3
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +1 -3
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +2 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/version_control/git_configurer.py +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/general_config.py +11 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/supported_managers.py +0 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/.pre-commit-config.yaml +2 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/action.yml +0 -8
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/ci.yml +2 -22
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/release.yml +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/pyproject.toml +1 -6
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/scripts/makefile +18 -52
- instant_python-0.27.0/instant_python/version/application/version_updater.py +21 -0
- instant_python-0.27.0/instant_python/version/delivery/cli.py +38 -0
- instant_python-0.27.0/instant_python/version/domain/installation_method.py +8 -0
- instant_python-0.27.0/instant_python/version/domain/installation_method_detector.py +9 -0
- instant_python-0.27.0/instant_python/version/domain/latest_version.py +13 -0
- instant_python-0.27.0/instant_python/version/domain/latest_version_repository.py +9 -0
- instant_python-0.27.0/instant_python/version/domain/updater.py +9 -0
- instant_python-0.27.0/instant_python/version/domain/updater_resolver.py +10 -0
- instant_python-0.27.0/instant_python/version/infra/binary_updater.py +47 -0
- instant_python-0.27.0/instant_python/version/infra/pip_updater.py +15 -0
- instant_python-0.27.0/instant_python/version/infra/pipx_updater.py +17 -0
- instant_python-0.27.0/instant_python/version/infra/py_pi_version_repository.py +14 -0
- instant_python-0.27.0/instant_python/version/infra/system_installation_method_detector.py +22 -0
- instant_python-0.27.0/instant_python/version/infra/updater_factory.py +24 -0
- instant_python-0.27.0/instant_python/version/infra/urllib_http_client.py +15 -0
- instant_python-0.27.0/instant_python/version/infra/uv_updater.py +17 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/pyproject.toml +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/schemas/ipy-schema.json +1 -1
- {instant_python-0.26.0 → instant_python-0.27.0}/scripts/install.ps1 +9 -3
- {instant_python-0.26.0 → instant_python-0.27.0}/scripts/install.sh +11 -3
- instant_python-0.27.0/task/deps.yml +38 -0
- instant_python-0.27.0/task/dev.yml +50 -0
- instant_python-0.27.0/task/docs.yml +7 -0
- instant_python-0.27.0/task/test.yml +44 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/application/test_config_generator.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/infra/question_wizard/step/test_dependencies_step.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/infra/question_wizard/step/test_git_step.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/infra/question_wizard/step/test_template_step.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/infra/question_wizard/test_console_answer_review_formatter.py +1 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/infra/question_wizard/test_questionary_console_wizard.py +5 -8
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/application/test_project_initializer.py +2 -0
- instant_python-0.27.0/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +12 -0
- instant_python-0.27.0/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/domain/test_node.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +4 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +4 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/renderer/test_jinja_environment.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/version_control/test_git_configurer.py +4 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/writer/test_file_system_project_writer.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/application/test_config_snapshot_creator.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/application/test_usage_metrics_sender.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/infra/test_post_hog_config.py +1 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/infra/test_post_hog_metrics_reporter.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/infra/test_user_identity_manager.py +2 -0
- instant_python-0.27.0/test/shared/__init__.py +0 -0
- instant_python-0.27.0/test/shared/domain/__init__.py +0 -0
- instant_python-0.27.0/test/shared/domain/mothers/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/mothers/general_config_mother.py +13 -2
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/test_config_schema.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/test_dependency_config.py +2 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/test_general_config.py +15 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/test_git_config.py +1 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/test_template_configuration.py +2 -0
- instant_python-0.27.0/test/shared/infra/__init__.py +0 -0
- instant_python-0.27.0/test/shared/infra/mother/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/env_manager → instant_python-0.27.0/test/shared/infra}/mother/command_execution_result_mother.py +1 -1
- {instant_python-0.26.0/test/initialize/infra/env_manager → instant_python-0.27.0/test/shared/infra}/test_system_console.py +3 -1
- instant_python-0.27.0/test/shared/persistence/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/persistence/test_yaml_config_repository.py +2 -0
- instant_python-0.27.0/test/version/__init__.py +0 -0
- instant_python-0.27.0/test/version/application/__init__.py +0 -0
- instant_python-0.27.0/test/version/application/test_version_updater.py +49 -0
- instant_python-0.27.0/test/version/delivery/__init__.py +0 -0
- instant_python-0.27.0/test/version/delivery/test_version_cli.py +30 -0
- instant_python-0.27.0/test/version/infra/__init__.py +0 -0
- instant_python-0.27.0/test/version/infra/test_binary_updater.py +53 -0
- instant_python-0.27.0/test/version/infra/test_pip_updater.py +31 -0
- instant_python-0.27.0/test/version/infra/test_pipx_updater.py +29 -0
- instant_python-0.27.0/test/version/infra/test_py_pi_latest_version_repository.py +39 -0
- instant_python-0.27.0/test/version/infra/test_system_installation_method_detector.py +53 -0
- instant_python-0.27.0/test/version/infra/test_updater_factory.py +32 -0
- instant_python-0.27.0/test/version/infra/test_uv_updater.py +29 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/uv.lock +107 -110
- instant_python-0.26.0/Taskfile.yml +0 -183
- instant_python-0.26.0/instant_python/__init__.py +0 -1
- instant_python-0.26.0/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -66
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -45
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -33
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/insert_template.py +0 -90
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/integration.sh +0 -39
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/local_setup.py +0 -12
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/post-merge.py +0 -40
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -15
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/pre-push.py +0 -6
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -40
- instant_python-0.26.0/instant_python/templates/boilerplate/scripts/unit.sh +0 -40
- instant_python-0.26.0/test/cli/test_version_command.py +0 -28
- instant_python-0.26.0/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -24
- instant_python-0.26.0/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -4
- instant_python-0.26.0/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -95
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/agents/convention_keeper.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/agents/judge.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/agents/leader.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/agents/spec_partner.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/agents/tdd_craftsman.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/commands/commit.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/commands/technical_debt_review.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/code_review/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/complexity_review/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/complexity_review/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/hamburger_method/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/hamburger_method/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/micro_steps_coach/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/micro_steps_coach/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/mutation_testing/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/security_review/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/story_splitting/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/story_splitting/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/test_desiderata/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/test_desiderata/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.agents/skills/xp_refactor/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/FUNDING.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/dependabot.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/pull_request_template.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.github/workflows/pages.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/.gitignore +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/AGENTS.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/CITATION.cff +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/LICENSE +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/README.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/SECURITY.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/codeql-config.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/agents/convention_guidelines.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/agents/leader_workflow.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/agents/spec_guidelines.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/changes.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/first_release.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/macros.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/.release_notes.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/conventions/testing/assertion-helper-methods.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/conventions/testing/common-test-variables-in-setup-method.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/conventions/testing/tdd-outside-in.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/assets/favicon.svg +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/assets/logo.svg +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/development/contributing.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/development/releases.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/development/security.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/downloads_macro.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/command_init.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/custom_projects.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/index.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/template_reference.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/home/index.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/specs/0001-metrics-middleware-refactor.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/specs/0002-new-tool-management-system.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/specs/0003-interactive-configuration-wizard-ux.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/docs/specs/technical-debt-review.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/cli/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/cli/instant_python_typer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/application/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/application/config_generator.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/delivery/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/delivery/cli.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/domain/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/domain/answers_review_formatter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/domain/question_wizard.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/console_answers_review_formatter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/application/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/application/project_initializer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/delivery/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/env_manager.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/node.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/project_formatter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/project_renderer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/project_structure.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/project_writer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/env_manager/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/formatter/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/renderer/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/version_control/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/writer/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/application/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/application/config_snapshot_creator.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/application/usage_metrics_sender.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/delivery/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/delivery/metrics_middleware.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/domain/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/domain/config_snapshot.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/domain/error_metrics_event.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/domain/metrics_reporter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/domain/usage_metrics_data.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/infra/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/infra/post_hog_config.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/infra/post_hog_metrics_reporter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/metrics/infra/user_identity_manager.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/config_repository.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/config_schema.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/dependency_config.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/git_config.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/template_config.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/infra/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/infra/persistence/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/infra/persistence/yaml_config_repository.py +0 -0
- {instant_python-0.26.0/instant_python/initialize/infra/env_manager → instant_python-0.27.0/instant_python/shared/infra}/system_console.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/supported_built_in_features.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/AGENTS.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/agents/convention_keeper.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/agents/judge.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/agents/leader.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/agents/spec_partner.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/agents/tdd_craftsman.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/commands/commit.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/commands/technical_debt_review.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/convention_guidelines.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/leader_workflow.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/code_review/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/complexity_review/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/complexity_review/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/hamburger_method/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/hamburger_method/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/micro_steps_coach/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/micro_steps_coach/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/mutation_testing/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/security_review/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/story_splitting/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/story_splitting/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/test_desiderata/REFERENCE.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/test_desiderata/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/skills/xp_refactor/SKILL.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/spec_guidelines.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/tasks.json +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/agents/tdd_outside_in.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/dependabot.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/github/pages.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/mkdocs.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.26.0/test → instant_python-0.27.0/instant_python/templates/boilerplate/scripts}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/agents/agents.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/application.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/source.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/clean_architecture/test.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/config_files/python_version.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/documentation/citation.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/documentation/documentation.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/documentation/license.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/documentation/readme.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/documentation/security.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/source.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/domain_driven_design/test.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/errors.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/events/event_bus_infra.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/events/mock_event_bus.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/github/github_action.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/github/github_issues_template.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/github/makefile.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/logger.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/macros.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/persistence/alembic_migrator.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/standard_project/layers/source_features.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/standard_project/layers/test_features.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/standard_project/main_structure.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/standard_project/source.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/instant_python/templates/project_structure/standard_project/test.yml +0 -0
- {instant_python-0.26.0/test/cli → instant_python-0.27.0/instant_python/version}/__init__.py +0 -0
- {instant_python-0.26.0/test/config → instant_python-0.27.0/instant_python/version/application}/__init__.py +0 -0
- {instant_python-0.26.0/test/config/application → instant_python-0.27.0/instant_python/version/delivery}/__init__.py +0 -0
- {instant_python-0.26.0/test/config/infra → instant_python-0.27.0/instant_python/version/domain}/__init__.py +0 -0
- {instant_python-0.26.0/test/config/infra/question_wizard → instant_python-0.27.0/instant_python/version/infra}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/mise.toml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/mkdocs.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/mypy.ini +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/opencode.json +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/schemas/main-structure-schema.json +0 -0
- {instant_python-0.26.0/test/config/infra/question_wizard/step → instant_python-0.27.0/test}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize → instant_python-0.27.0/test/config}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize → instant_python-0.27.0/test/config}/application/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/delivery → instant_python-0.27.0/test/config/infra}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/domain → instant_python-0.27.0/test/config/infra/question_wizard}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/config/infra/question_wizard/fake_questionary.py +0 -0
- {instant_python-0.26.0/test/initialize/domain/mothers → instant_python-0.27.0/test/config/infra/question_wizard/step}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/infra → instant_python-0.27.0/test/initialize}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/env_manager → instant_python-0.27.0/test/initialize/application}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/env_manager/mother → instant_python-0.27.0/test/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/delivery/approvaltests_config.json +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/delivery/test_init_cli.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/formatter → instant_python-0.27.0/test/initialize/domain}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/renderer → instant_python-0.27.0/test/initialize/domain/mothers}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/domain/mothers/node_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/version_control → instant_python-0.27.0/test/initialize/infra}/__init__.py +0 -0
- {instant_python-0.26.0/test/initialize/infra/writer → instant_python-0.27.0/test/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.26.0/test/metrics → instant_python-0.27.0/test/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.26.0/test/metrics/application → instant_python-0.27.0/test/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.26.0/test/metrics/domain → instant_python-0.27.0/test/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
- {instant_python-0.26.0/test/metrics/infra → instant_python-0.27.0/test/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.26.0/test/shared → instant_python-0.27.0/test/metrics}/__init__.py +0 -0
- {instant_python-0.26.0/test/shared/domain → instant_python-0.27.0/test/metrics/application}/__init__.py +0 -0
- {instant_python-0.26.0/test/shared/domain/mothers → instant_python-0.27.0/test/metrics/domain}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/domain/config_snapshot_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/domain/error_metrics_event_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/domain/usage_metrics_event_mother.py +0 -0
- {instant_python-0.26.0/test/shared/persistence → instant_python-0.27.0/test/metrics/infra}/__init__.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/infra/cassettes/error_posthog_reporter.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/metrics/infra/cassettes/success_posthog_reporter.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/random_generator.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/resources/base_ipy_config.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/resources/domain_error_template.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/resources/hello_world.j2 +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/resources/main_structure.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/resources/standard_project/main_structure.yml +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/mothers/config_schema_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/test/utils.py +0 -0
- {instant_python-0.26.0 → instant_python-0.27.0}/tox.ini +0 -0
|
@@ -34,30 +34,11 @@ jobs:
|
|
|
34
34
|
|
|
35
35
|
- name: 🧐 Check linting
|
|
36
36
|
id: check_lint
|
|
37
|
-
run: task
|
|
38
|
-
|
|
39
|
-
format:
|
|
40
|
-
name: format
|
|
41
|
-
runs-on: ubuntu-latest
|
|
42
|
-
steps:
|
|
43
|
-
- name: 🛡️ Harden runner
|
|
44
|
-
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
|
|
45
|
-
with:
|
|
46
|
-
egress-policy: audit
|
|
47
|
-
|
|
48
|
-
- name: 📥 Checkout the repository
|
|
49
|
-
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
|
-
with:
|
|
51
|
-
ref: ${{ github.head_ref }}
|
|
52
|
-
fetch-depth: 0
|
|
53
|
-
persist-credentials: false
|
|
54
|
-
|
|
55
|
-
- name: 🛠️ Setup environment
|
|
56
|
-
uses: ./.github/actions/setup_environment
|
|
37
|
+
run: task lint
|
|
57
38
|
|
|
58
39
|
- name: 🧐 Check code format
|
|
59
40
|
id: check_format
|
|
60
|
-
run: task
|
|
41
|
+
run: task format
|
|
61
42
|
|
|
62
43
|
analyze-code-quality:
|
|
63
44
|
name: analyze-code-quality
|
|
@@ -160,20 +141,15 @@ jobs:
|
|
|
160
141
|
- name: 🛠️ Setup environment
|
|
161
142
|
uses: ./.github/actions/setup_environment
|
|
162
143
|
|
|
163
|
-
- name:
|
|
164
|
-
run:
|
|
144
|
+
- name: 🏃 Run unit tests
|
|
145
|
+
run: task tests:unit
|
|
165
146
|
|
|
166
|
-
- name: 🏃 Run tests
|
|
167
|
-
run:
|
|
147
|
+
- name: 🏃 Run integration tests
|
|
148
|
+
run: task tests:integration
|
|
149
|
+
|
|
150
|
+
- name: 🏃 Run acceptance tests
|
|
151
|
+
run: task tests:acceptance
|
|
168
152
|
|
|
169
|
-
- name: 📥 Upload coverage report to Codecov
|
|
170
|
-
uses: codecov/codecov-action@e79a6962e0d4c0c17b229090214935d2e33f8354 # v6.0.1
|
|
171
|
-
with:
|
|
172
|
-
files: coverage.xml
|
|
173
|
-
flags: unittests
|
|
174
|
-
name: codecov-coverage
|
|
175
|
-
token: ${{ secrets.CODECOV_TOKEN }}
|
|
176
|
-
slug: dimanu-py/instant-python
|
|
177
153
|
|
|
178
154
|
tox-test:
|
|
179
155
|
name: tox
|
|
@@ -200,4 +176,4 @@ jobs:
|
|
|
200
176
|
3.13
|
|
201
177
|
|
|
202
178
|
- name: 🏃 Run tox
|
|
203
|
-
run: task tox
|
|
179
|
+
run: task test:tox
|
|
@@ -71,7 +71,7 @@ jobs:
|
|
|
71
71
|
uses: ./.github/actions/setup_environment
|
|
72
72
|
|
|
73
73
|
- name: 🏃 Build package
|
|
74
|
-
run: task build
|
|
74
|
+
run: task dev:build
|
|
75
75
|
|
|
76
76
|
- name: 🚀 Publish
|
|
77
77
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -82,6 +82,7 @@ jobs:
|
|
|
82
82
|
- release
|
|
83
83
|
if: needs.release.outputs.released == 'true' || github.event_name == 'release'
|
|
84
84
|
strategy:
|
|
85
|
+
fail-fast: false
|
|
85
86
|
matrix:
|
|
86
87
|
include:
|
|
87
88
|
- runner: macos-14
|
|
@@ -126,7 +127,11 @@ jobs:
|
|
|
126
127
|
CARGO_BUILD_TARGET: ${{ matrix.target }}
|
|
127
128
|
run: uvx hatch build -t binary
|
|
128
129
|
|
|
130
|
+
- name: 📦 Rename binary for release
|
|
131
|
+
shell: bash
|
|
132
|
+
run: mv dist/binary/ipy-* dist/binary/ipy-${{ matrix.target }}${{ matrix.ext }}
|
|
133
|
+
|
|
129
134
|
- name: 📤 Upload release asset
|
|
130
135
|
env:
|
|
131
136
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
132
|
-
run: gh release upload ${{ needs.release.outputs.tag }} dist/
|
|
137
|
+
run: gh release upload ${{ needs.release.outputs.tag }} dist/binary/ipy-${{ matrix.target }}${{ matrix.ext }} --clobber
|
|
@@ -64,7 +64,7 @@ repos:
|
|
|
64
64
|
language: system
|
|
65
65
|
pass_filenames: false
|
|
66
66
|
stages:
|
|
67
|
-
- pre-
|
|
67
|
+
- pre-commit
|
|
68
68
|
|
|
69
69
|
- id: format
|
|
70
70
|
name: 🎨 Code Formatter
|
|
@@ -72,4 +72,4 @@ repos:
|
|
|
72
72
|
language: system
|
|
73
73
|
pass_filenames: false
|
|
74
74
|
stages:
|
|
75
|
-
- pre-
|
|
75
|
+
- pre-commit
|
|
@@ -2,6 +2,93 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.27.0 (2026-09-12)
|
|
6
|
+
|
|
7
|
+
### ✨ Features
|
|
8
|
+
|
|
9
|
+
- **version**: Implement upgrade method that autodectes installation method and upgrades instant
|
|
10
|
+
python to latest version or pinned version
|
|
11
|
+
([`00243ab`](https://github.com/dimanu-py/instant-python/commit/00243ab382b720b65b4bd67077174f1bf24dea9c))
|
|
12
|
+
|
|
13
|
+
- **cli**: Override cli show_warning logic to be able to print in console user warnings
|
|
14
|
+
([`b546636`](https://github.com/dimanu-py/instant-python/commit/b5466368f5f3a5fc61533ab9575ff7feea37e9ef))
|
|
15
|
+
|
|
16
|
+
- **config**: Send a warning to the user informing that pdm is no longer supported and it has been
|
|
17
|
+
replaced with uv by default
|
|
18
|
+
([`c3b73f2`](https://github.com/dimanu-py/instant-python/commit/c3b73f29fadbcce919eee9f1d901d85754e97e40))
|
|
19
|
+
|
|
20
|
+
- **cli**: Remove old --version flag from main app
|
|
21
|
+
([`8329314`](https://github.com/dimanu-py/instant-python/commit/8329314cc180f91d13f1debaae79358992bd39a1))
|
|
22
|
+
|
|
23
|
+
- **version**: Fetch latest version from pypi
|
|
24
|
+
([`194cbf0`](https://github.com/dimanu-py/instant-python/commit/194cbf0c3d3832b7bba996546a46a03eacfdc92e))
|
|
25
|
+
|
|
26
|
+
- **version**: Return unknown latest version when it's not reachable
|
|
27
|
+
([`1628464`](https://github.com/dimanu-py/instant-python/commit/162846462b80494021a6ff00c908a39c3114049a))
|
|
28
|
+
|
|
29
|
+
- **version**: Return latest version
|
|
30
|
+
([`56f9e5e`](https://github.com/dimanu-py/instant-python/commit/56f9e5e9b09f38bcb069fab8b7cc7e58b8c8ed1e))
|
|
31
|
+
|
|
32
|
+
- **version**: Create new version command to see current installed version of instant python and
|
|
33
|
+
latest version
|
|
34
|
+
([`d941fe2`](https://github.com/dimanu-py/instant-python/commit/d941fe22c4f34fdcbe0ed53bd9a76b48c36152ed))
|
|
35
|
+
|
|
36
|
+
- **schema**: Remove pdm dependency manager from ipy json schema
|
|
37
|
+
([`80d960a`](https://github.com/dimanu-py/instant-python/commit/80d960a14a58f2671ad8f316f0a852f4d32aa6c3))
|
|
38
|
+
|
|
39
|
+
- **config**: Set uv as the default dependency manager and add backward compatibility with pdm
|
|
40
|
+
([`1b30207`](https://github.com/dimanu-py/instant-python/commit/1b302070439df79e39ab107b81f5a721425088e4))
|
|
41
|
+
|
|
42
|
+
- **config**: Remove dependency manager question from wizard
|
|
43
|
+
([`cbc2a96`](https://github.com/dimanu-py/instant-python/commit/cbc2a963b6dcb62e6d5dd8b2e8ceb780fb349fbd))
|
|
44
|
+
|
|
45
|
+
- **config**: Remove pdm env manager as an option to handle python project
|
|
46
|
+
([`050e00e`](https://github.com/dimanu-py/instant-python/commit/050e00e8b4a0fa688833a36f55b336a4540ae09b))
|
|
47
|
+
|
|
48
|
+
### 🪲 Bug Fixes
|
|
49
|
+
|
|
50
|
+
- **cli**: Import correctly version app
|
|
51
|
+
([`1af30fb`](https://github.com/dimanu-py/instant-python/commit/1af30fbb3c80956e87d7e1fe24f1511eec3f1e11))
|
|
52
|
+
|
|
53
|
+
### ⚙️ Build System
|
|
54
|
+
|
|
55
|
+
- Update binary installation scripts to allow passing a specific version to pin
|
|
56
|
+
([`440082a`](https://github.com/dimanu-py/instant-python/commit/440082a371bbdd54ee13a30b53da526dae17122e))
|
|
57
|
+
|
|
58
|
+
- Update installation script to verify binary is installed with new version command
|
|
59
|
+
([`43d7de9`](https://github.com/dimanu-py/instant-python/commit/43d7de9fc29283d46a8efe1d11931f7df79e3e50))
|
|
60
|
+
|
|
61
|
+
### ♻️ Refactoring
|
|
62
|
+
|
|
63
|
+
- **templates**: Update pre commit template to run format and lint commands instead of check to
|
|
64
|
+
apply automatically fixes in case of fails
|
|
65
|
+
([`d3ca2e3`](https://github.com/dimanu-py/instant-python/commit/d3ca2e323ef558d33dde037baada64ed79d85eb8))
|
|
66
|
+
|
|
67
|
+
- **templates**: Remove pdm dependency manager from all templates and put uv by default
|
|
68
|
+
([`c625c0d`](https://github.com/dimanu-py/instant-python/commit/c625c0db9367b7536e1568ba20ad7d2c1020411e))
|
|
69
|
+
|
|
70
|
+
- **version**: Simplify version command by removing unnecessary use case that acted as a middleman
|
|
71
|
+
([`385900b`](https://github.com/dimanu-py/instant-python/commit/385900babadd75032c501650abbe1b6f408d391e))
|
|
72
|
+
|
|
73
|
+
- **initialize**: Move system console to shared module to reuse it for update command
|
|
74
|
+
([`93b7cce`](https://github.com/dimanu-py/instant-python/commit/93b7cceab2ddbb966cb44da2ebb66c5d8e0a2e44))
|
|
75
|
+
|
|
76
|
+
- **initialize**: Inject directly UvEnvManager in init command cli instead of using env manager
|
|
77
|
+
factory
|
|
78
|
+
([`5966466`](https://github.com/dimanu-py/instant-python/commit/5966466d084c6d0c162d3152d50751175c9517f7))
|
|
79
|
+
|
|
80
|
+
- **initialize**: Remove console field in UvEnvManager as optional
|
|
81
|
+
([`f9e6b00`](https://github.com/dimanu-py/instant-python/commit/f9e6b002634b6be0d1420ecc5bb40f0fd39b4355))
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
## v0.26.1 (2026-09-08)
|
|
85
|
+
|
|
86
|
+
### 🪲 Bug Fixes
|
|
87
|
+
|
|
88
|
+
- **release**: Apply fixes to realease binaries
|
|
89
|
+
([`43e5e8f`](https://github.com/dimanu-py/instant-python/commit/43e5e8fb893fa14b4d692a562e0f7a58ae6d9800))
|
|
90
|
+
|
|
91
|
+
|
|
5
92
|
## v0.26.0 (2026-09-08)
|
|
6
93
|
|
|
7
94
|
### ✨ Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: instant-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.27.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/
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
version: '3'
|
|
2
|
+
|
|
3
|
+
silent: true
|
|
4
|
+
|
|
5
|
+
vars:
|
|
6
|
+
BROWSER: '{{.BROWSER | default "open"}}'
|
|
7
|
+
MUTATE_PATH: '{{.MUTATE_PATH | default "instant_python"}}'
|
|
8
|
+
|
|
9
|
+
includes:
|
|
10
|
+
dev:
|
|
11
|
+
taskfile: task/dev.yml
|
|
12
|
+
aliases: [development]
|
|
13
|
+
|
|
14
|
+
test:
|
|
15
|
+
taskfile: task/test.yml
|
|
16
|
+
aliases: [tests]
|
|
17
|
+
|
|
18
|
+
deps:
|
|
19
|
+
taskfile: task/deps.yml
|
|
20
|
+
aliases: [dep]
|
|
21
|
+
|
|
22
|
+
docs:
|
|
23
|
+
taskfile: task/docs.yml
|
|
24
|
+
aliases: [doc]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
tasks:
|
|
28
|
+
# ── Default ──────────────────────────────────────────────────────────────────
|
|
29
|
+
default:
|
|
30
|
+
desc: Show this help.
|
|
31
|
+
cmds:
|
|
32
|
+
- task --list-all
|
|
33
|
+
|
|
34
|
+
help:
|
|
35
|
+
desc: Show this help
|
|
36
|
+
cmds:
|
|
37
|
+
- task --list
|
|
38
|
+
|
|
39
|
+
# ── Code Quality ─────────────────────────────────────────────────────────────
|
|
40
|
+
type-check:
|
|
41
|
+
desc: Run mypy type checking
|
|
42
|
+
cmds:
|
|
43
|
+
- printf "\n⌛ Running type checking with mypy...\n"
|
|
44
|
+
- uv run mypy
|
|
45
|
+
|
|
46
|
+
lint:
|
|
47
|
+
desc: Apply ruff linting fix
|
|
48
|
+
cmds:
|
|
49
|
+
- printf "\n⌛ Applying linting fixes...\n"
|
|
50
|
+
- uvx ruff check --fix instant_python test
|
|
51
|
+
|
|
52
|
+
format:
|
|
53
|
+
desc: Apply ruff format fix
|
|
54
|
+
cmds:
|
|
55
|
+
- printf "\n⌛ Formatting project code...\n"
|
|
56
|
+
- uvx ruff format instant_python test
|
|
57
|
+
watch:
|
|
58
|
+
desc: Run all test with every change.
|
|
59
|
+
cmds:
|
|
60
|
+
- uv run ptw --runner "pytest -n auto test -ra"
|
|
61
|
+
|
|
62
|
+
# ── Security ─────────────────────────────────────────────────────────────────
|
|
63
|
+
audit:
|
|
64
|
+
desc: It audits dependencies and source code
|
|
65
|
+
cmds:
|
|
66
|
+
- printf "\n⌛ Running security audit...\n\n"
|
|
67
|
+
- uv run -m pip_audit --progress-spinner off --ignore-vuln GHSA-4xh5-x5gv-qwph
|
|
68
|
+
|
|
69
|
+
secrets:
|
|
70
|
+
desc: It checks for secrets in the source code
|
|
71
|
+
cmds:
|
|
72
|
+
- printf "\n⌛ Checking secrets...\n\n"
|
|
73
|
+
- uv run -m pre_commit run gitleaks --all-files
|
{instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/getting_started/first_steps.md
RENAMED
|
@@ -41,7 +41,7 @@ of the main options you will be asked:
|
|
|
41
41
|
| Author | The author of the project. |
|
|
42
42
|
| License | The license of the project. |
|
|
43
43
|
| Python Version | The Python version to use in the project. |
|
|
44
|
-
| Project Environment Manager | The project manager to
|
|
44
|
+
| Project Environment Manager | The project manager used to handle the project environment (`uv`). |
|
|
45
45
|
| Default Template | Choose a default template to use as a base for your project structure. |
|
|
46
46
|
| Built in Features | Choose additional ready to use implementations to include in your project. |
|
|
47
47
|
| Git Initialization | Whether to initialize a Git repository in the project folder. |
|
|
@@ -74,7 +74,7 @@ section to learn more about the features that `instant-python` provides and how
|
|
|
74
74
|
### Common Questions
|
|
75
75
|
|
|
76
76
|
**Can I add more dependencies after creating my project?**
|
|
77
|
-
→ Yes! You can use
|
|
77
|
+
→ Yes! You can use `uv` to add dependencies after creation.
|
|
78
78
|
|
|
79
79
|
**How do I use a different project structure?**
|
|
80
80
|
→ See the [Custom Projects] guide to create your own project structure.
|
{instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/getting_started/installation.md
RENAMED
|
@@ -25,6 +25,13 @@ By default the binary is installed to `~/.local/bin`. You can override this with
|
|
|
25
25
|
IPY_BIN_DIR="$HOME/bin" curl -LsSf https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.sh | sh
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
By default the latest release is installed. To install a specific version instead, set the `IPY_VERSION` environment
|
|
29
|
+
variable:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
IPY_VERSION="1.2.3" curl -LsSf https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.sh | sh
|
|
33
|
+
```
|
|
34
|
+
|
|
28
35
|
**Windows**
|
|
29
36
|
|
|
30
37
|
```powershell
|
|
@@ -32,7 +39,12 @@ powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/dim
|
|
|
32
39
|
```
|
|
33
40
|
|
|
34
41
|
This adds `%USERPROFILE%\.local\bin` to your user `PATH` automatically; restart your terminal afterwards so it picks up the
|
|
35
|
-
change. You can override the install directory with the `IPY_BIN_DIR` environment variable
|
|
42
|
+
change. You can override the install directory with the `IPY_BIN_DIR` environment variable, and pin a specific version
|
|
43
|
+
with `IPY_VERSION`:
|
|
44
|
+
|
|
45
|
+
```powershell
|
|
46
|
+
powershell -ExecutionPolicy ByPass -c "$env:IPY_VERSION='1.2.3'; irm https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.ps1 | iex"
|
|
47
|
+
```
|
|
36
48
|
|
|
37
49
|
!!! note "Supported platforms"
|
|
38
50
|
The install script currently provides prebuilt binaries for macOS (Apple Silicon), Linux (x86_64 and arm64), and Windows
|
|
@@ -77,6 +89,29 @@ pip install instant-python
|
|
|
77
89
|
|
|
78
90
|
A guide to install and configure pyenv can be found [here](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation)
|
|
79
91
|
|
|
92
|
+
## Updating
|
|
93
|
+
|
|
94
|
+
Whichever method you used to install `instant-python`, you can update it with:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
ipy update
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`ipy update` detects how `instant-python` was installed and runs the matching upgrade command for you: the install
|
|
101
|
+
script's self-update for binary installs, `uv tool upgrade`, `pipx upgrade`, or `pip install --upgrade`. You don't need
|
|
102
|
+
to remember which method you used.
|
|
103
|
+
|
|
104
|
+
To install a specific version instead of the latest one, pass `--version`:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
ipy update --version 1.2.3
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
!!! note "Binary installations"
|
|
111
|
+
For binary installs, updating to the latest version uses the binary's own self-update mechanism, so no download
|
|
112
|
+
script is re-run. Passing `--version` instead re-runs the install script pinned to that release, the same way the
|
|
113
|
+
`IPY_VERSION` environment variable works above.
|
|
114
|
+
|
|
80
115
|
## Next steps
|
|
81
116
|
|
|
82
117
|
Now that you have installed `instant-python` you can advance to the [first steps](first_steps.md)
|
|
@@ -30,7 +30,7 @@ When you successfully run an `ipy` command, we collect:
|
|
|
30
30
|
| `operating_system` | Your operating system | `Linux`, `Darwin`, `Windows` |
|
|
31
31
|
| `command` | The command you executed | `config`, `init` |
|
|
32
32
|
| `python_version` | The Python version you configured | `3.12` |
|
|
33
|
-
| `dependency_manager` | The package manager you selected | `
|
|
33
|
+
| `dependency_manager` | The package manager you selected | `uv` |
|
|
34
34
|
| `template` | The project template you chose | `domain_driven_design`, `clean_architecture` |
|
|
35
35
|
| `built_in_features` | List of features you enabled | `["makefile", "value_objects"]` |
|
|
36
36
|
|
|
@@ -69,7 +69,7 @@ It has the following fields and restrictions:
|
|
|
69
69
|
| `author` | The author of the project. | | Yes |
|
|
70
70
|
| `license` | The license of the project. | Must be one of: `MIT`, `Apache` or `GPL`. | Yes |
|
|
71
71
|
| `python_version` | The Python version to use in the project. | Must be one of: `3.10`, `3.11`, `3.12` or `3.13`. | Yes |
|
|
72
|
-
| `dependency_manager` | The project manager to use. | Must be either `uv
|
|
72
|
+
| `dependency_manager` | The project manager to use. | Must be either `uv`. | Yes |
|
|
73
73
|
|
|
74
74
|
### Template
|
|
75
75
|
|
{instant_python-0.26.0 → instant_python-0.27.0}/docs/documentation/guide/default_features.md
RENAMED
|
@@ -6,12 +6,9 @@ the generated project.
|
|
|
6
6
|
|
|
7
7
|
## Development Environment Manager
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
`instant-python` uses [_uv_](https://docs.astral.sh/uv) to handle your project environment and Python version.
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
- [_pdm_](https://pdm-project.org/en/latest/)
|
|
13
|
-
|
|
14
|
-
Instant Python will automatically download the selected manager if it's not installed, and create a virtual environment. This will
|
|
11
|
+
`instant-python` will automatically download `uv` if it's not installed, and create a virtual environment. This will
|
|
15
12
|
allow you to install your dependencies and run tasks out of the box.
|
|
16
13
|
|
|
17
14
|
## Git Repository
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.27.0"
|
|
@@ -1,44 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
import warnings
|
|
2
2
|
|
|
3
3
|
import typer
|
|
4
4
|
from rich.console import Console
|
|
5
5
|
from rich.panel import Panel
|
|
6
6
|
|
|
7
|
-
from instant_python import __version__
|
|
8
7
|
from instant_python.cli.instant_python_typer import InstantPythonTyper
|
|
9
8
|
from instant_python.config.delivery import cli as config
|
|
10
9
|
from instant_python.initialize.delivery import cli as init
|
|
11
10
|
from instant_python.metrics.delivery.metrics_middleware import MetricsMiddleware
|
|
12
11
|
from instant_python.shared.application_error import ApplicationError
|
|
12
|
+
from instant_python.version.delivery import cli as version
|
|
13
13
|
|
|
14
14
|
app = InstantPythonTyper(cls=MetricsMiddleware)
|
|
15
15
|
console = Console()
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
def
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
def _show_warning(message: Warning | str, *_args: object, **_kwargs: object) -> None:
|
|
19
|
+
warning_panel = Panel(str(message), title="Warning", border_style="yellow")
|
|
20
|
+
console.print(warning_panel)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
warnings.showwarning = _show_warning
|
|
24
|
+
warnings.simplefilter("always", DeprecationWarning)
|
|
22
25
|
|
|
23
26
|
|
|
24
27
|
@app.callback(invoke_without_command=True)
|
|
25
28
|
def main(
|
|
26
29
|
ctx: typer.Context,
|
|
27
|
-
version: Annotated[
|
|
28
|
-
bool | None,
|
|
29
|
-
typer.Option(
|
|
30
|
-
"--version",
|
|
31
|
-
"-V",
|
|
32
|
-
help="Show the application version",
|
|
33
|
-
callback=version_callback,
|
|
34
|
-
is_eager=True,
|
|
35
|
-
),
|
|
36
|
-
] = None,
|
|
37
30
|
) -> None:
|
|
38
31
|
if ctx.invoked_subcommand is None:
|
|
39
32
|
console.print(ctx.get_help())
|
|
40
33
|
|
|
41
34
|
|
|
35
|
+
app.add_typer(version.app)
|
|
36
|
+
|
|
42
37
|
app.add_typer(init.app)
|
|
43
38
|
app.add_typer(config.app)
|
|
44
39
|
|
|
@@ -3,14 +3,14 @@ from pathlib import Path
|
|
|
3
3
|
import typer
|
|
4
4
|
|
|
5
5
|
from instant_python.initialize.application.project_initializer import ProjectInitializer
|
|
6
|
-
from instant_python.initialize.infra.env_manager.
|
|
7
|
-
from instant_python.initialize.infra.env_manager.system_console import SystemConsole
|
|
6
|
+
from instant_python.initialize.infra.env_manager.uv_env_manager import UvEnvManager
|
|
8
7
|
from instant_python.initialize.infra.formatter.ruff_project_formatter import RuffProjectFormatter
|
|
9
8
|
from instant_python.initialize.infra.renderer.jinja_environment import JinjaEnvironment
|
|
10
9
|
from instant_python.initialize.infra.renderer.jinja_project_renderer import JinjaProjectRenderer
|
|
11
10
|
from instant_python.initialize.infra.version_control.git_configurer import GitConfigurer
|
|
12
11
|
from instant_python.initialize.infra.writer.file_system_project_writer import FileSystemProjectWriter
|
|
13
12
|
from instant_python.shared.infra.persistence.yaml_config_repository import YamlConfigRepository
|
|
13
|
+
from instant_python.shared.infra.system_console import SystemConsole
|
|
14
14
|
|
|
15
15
|
app = typer.Typer()
|
|
16
16
|
|
|
@@ -32,7 +32,7 @@ def create_new_project(
|
|
|
32
32
|
project_initializer = ProjectInitializer(
|
|
33
33
|
renderer=JinjaProjectRenderer(env=JinjaEnvironment(user_template_path=custom_templates_path)),
|
|
34
34
|
writer=FileSystemProjectWriter(),
|
|
35
|
-
env_manager=
|
|
35
|
+
env_manager=UvEnvManager(console=console),
|
|
36
36
|
version_control_configurer=GitConfigurer(console=console),
|
|
37
37
|
formatter=RuffProjectFormatter(console=console),
|
|
38
38
|
)
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
from instant_python.initialize.domain.env_manager import EnvManager
|
|
2
|
-
from instant_python.initialize.infra.env_manager.pdm_env_manager import PdmEnvManager
|
|
3
|
-
from instant_python.initialize.infra.env_manager.system_console import SystemConsole
|
|
4
2
|
from instant_python.initialize.infra.env_manager.uv_env_manager import UvEnvManager
|
|
5
3
|
from instant_python.shared.application_error import ApplicationError
|
|
4
|
+
from instant_python.shared.infra.system_console import SystemConsole
|
|
6
5
|
from instant_python.shared.supported_managers import SupportedManagers
|
|
7
6
|
|
|
8
7
|
|
|
@@ -11,7 +10,6 @@ class EnvManagerFactory:
|
|
|
11
10
|
def create(dependency_manager: str, console: SystemConsole) -> EnvManager:
|
|
12
11
|
managers = {
|
|
13
12
|
SupportedManagers.UV: UvEnvManager,
|
|
14
|
-
SupportedManagers.PDM: PdmEnvManager,
|
|
15
13
|
}
|
|
16
14
|
try:
|
|
17
15
|
return managers[SupportedManagers(dependency_manager)](console=console)
|
|
@@ -2,12 +2,12 @@ import sys
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
4
|
from instant_python.initialize.domain.env_manager import EnvManager
|
|
5
|
-
from instant_python.initialize.infra.env_manager.system_console import SystemConsole
|
|
6
5
|
from instant_python.shared.domain.dependency_config import DependencyConfig
|
|
6
|
+
from instant_python.shared.infra.system_console import SystemConsole
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class UvEnvManager(EnvManager):
|
|
10
|
-
def __init__(self, console: SystemConsole
|
|
10
|
+
def __init__(self, console: SystemConsole) -> None:
|
|
11
11
|
self._console = console
|
|
12
12
|
self._system_os = sys.platform
|
|
13
13
|
self._uv = self._set_uv_executable_based_on_os()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from instant_python.initialize.domain.project_formatter import ProjectFormatter
|
|
2
|
-
from instant_python.
|
|
2
|
+
from instant_python.shared.infra.system_console import SystemConsole
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class RuffProjectFormatter(ProjectFormatter):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from instant_python.initialize.domain.version_control_configurer import VersionControlConfigurer
|
|
2
|
-
from instant_python.initialize.infra.env_manager.system_console import SystemConsole
|
|
3
2
|
from instant_python.shared.domain.git_config import GitConfig
|
|
3
|
+
from instant_python.shared.infra.system_console import SystemConsole
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class GitConfigurer(VersionControlConfigurer):
|
{instant_python-0.26.0 → instant_python-0.27.0}/instant_python/shared/domain/general_config.py
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import re
|
|
2
|
-
|
|
2
|
+
import warnings
|
|
3
|
+
from dataclasses import asdict, dataclass, field
|
|
3
4
|
|
|
4
5
|
from instant_python.shared.application_error import ApplicationError
|
|
5
6
|
from instant_python.shared.supported_licenses import SupportedLicenses
|
|
@@ -16,7 +17,7 @@ class GeneralConfig:
|
|
|
16
17
|
author: str
|
|
17
18
|
license: str
|
|
18
19
|
python_version: str
|
|
19
|
-
dependency_manager: str
|
|
20
|
+
dependency_manager: str = field(default=SupportedManagers.UV.value)
|
|
20
21
|
|
|
21
22
|
def __post_init__(self) -> None:
|
|
22
23
|
self.version = str(self.version)
|
|
@@ -44,6 +45,14 @@ class GeneralConfig:
|
|
|
44
45
|
|
|
45
46
|
def _ensure_dependency_manager_is_supported(self) -> None:
|
|
46
47
|
supported_dependency_managers = SupportedManagers.get_supported_managers()
|
|
48
|
+
if self.dependency_manager == "pdm":
|
|
49
|
+
warnings.warn(
|
|
50
|
+
"`pdm` is no longer supported as a dependency manager and has been replaced with `uv`. "
|
|
51
|
+
"Update your ipy.yml file to remove this warning.",
|
|
52
|
+
DeprecationWarning,
|
|
53
|
+
stacklevel=2,
|
|
54
|
+
)
|
|
55
|
+
self.dependency_manager = SupportedManagers.UV.value
|
|
47
56
|
if self.dependency_manager not in supported_dependency_managers:
|
|
48
57
|
raise InvalidDependencyManagerValue(self.dependency_manager, supported_dependency_managers)
|
|
49
58
|
|
|
@@ -58,14 +58,14 @@ repos:
|
|
|
58
58
|
hooks:
|
|
59
59
|
- id: lint
|
|
60
60
|
name: 🧹 Code Linter
|
|
61
|
-
entry: make
|
|
61
|
+
entry: make lint
|
|
62
62
|
language: system
|
|
63
63
|
stages:
|
|
64
64
|
- pre-push
|
|
65
65
|
|
|
66
66
|
- id: format
|
|
67
67
|
name: 🎨 Code Formatter
|
|
68
|
-
entry: make
|
|
68
|
+
entry: make format
|
|
69
69
|
language: system
|
|
70
70
|
stages:
|
|
71
71
|
- pre-push
|
|
@@ -20,16 +20,8 @@ runs:
|
|
|
20
20
|
|
|
21
21
|
- name: 📦 Install dependencies
|
|
22
22
|
run: |
|
|
23
|
-
{% if general.dependency_manager == "uv" %}
|
|
24
23
|
uv sync --all-groups
|
|
25
|
-
{% elif general.dependency_manager == "pdm" %}
|
|
26
|
-
pdm install
|
|
27
|
-
{% endif %}
|
|
28
24
|
{% if "precommit_hook" in template.built_in_features %}
|
|
29
|
-
{% if general.dependency_manager == "uv" %}
|
|
30
25
|
uv run -m pre_commit install
|
|
31
|
-
{% elif general.dependency_manager == "pdm" %}
|
|
32
|
-
pdm run pre-commit install
|
|
33
|
-
{% endif %}
|
|
34
26
|
{% endif %}
|
|
35
27
|
shell: bash
|