instant-python 0.25.0__tar.gz → 0.26.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.25.0 → instant_python-0.26.0}/.github/workflows/pages.yml +1 -1
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/workflows/release.yml +55 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/CHANGELOG.md +22 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/PKG-INFO +15 -1
- {instant_python-0.25.0 → instant_python-0.26.0}/README.md +14 -0
- instant_python-0.26.0/docs/documentation/getting_started/installation.md +83 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/home/index.md +14 -0
- instant_python-0.26.0/instant_python/__init__.py +1 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/pyproject.toml +6 -1
- {instant_python-0.25.0 → instant_python-0.26.0}/schemas/ipy-schema.json +3 -7
- instant_python-0.26.0/scripts/install.ps1 +81 -0
- instant_python-0.26.0/scripts/install.sh +87 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/uv.lock +7 -4
- instant_python-0.25.0/docs/documentation/getting_started/installation.md +0 -40
- instant_python-0.25.0/instant_python/__init__.py +0 -1
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/agents/convention_keeper.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/agents/judge.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/agents/leader.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/agents/spec_partner.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/agents/tdd_craftsman.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/commands/commit.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/commands/technical_debt_review.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/code_review/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/complexity_review/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/complexity_review/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/hamburger_method/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/hamburger_method/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/micro_steps_coach/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/micro_steps_coach/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/mutation_testing/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/security_review/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/story_splitting/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/story_splitting/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/test_desiderata/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/test_desiderata/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/xp_refactor/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/FUNDING.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/actions/setup_environment/action.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/dependabot.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/pull_request_template.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.github/workflows/ci.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.gitignore +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/.pre-commit-config.yaml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/AGENTS.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/CITATION.cff +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/LICENSE +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/SECURITY.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/Taskfile.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/codeql-config.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/agents/convention_guidelines.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/agents/leader_workflow.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/agents/spec_guidelines.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changes.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/first_release.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/macros.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.release_notes.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/conventions/testing/assertion-helper-methods.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/conventions/testing/common-test-variables-in-setup-method.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/conventions/testing/tdd-outside-in.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/assets/favicon.svg +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/assets/logo.svg +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/development/contributing.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/development/releases.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/development/security.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/downloads_macro.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/getting_started/first_steps.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/getting_started/privacy_and_metrics.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/guide/command_config.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/guide/command_init.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/guide/custom_projects.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/guide/default_features.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/guide/index.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/documentation/guide/template_reference.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/specs/0001-metrics-middleware-refactor.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/specs/0002-new-tool-management-system.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/specs/0003-interactive-configuration-wizard-ux.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/docs/specs/technical-debt-review.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/cli/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/cli/cli.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/cli/instant_python_typer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/application/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/application/config_generator.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/delivery/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/delivery/cli.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/domain/answers_review_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/domain/question_wizard.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/console_answers_review_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/application/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/application/project_initializer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/delivery/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/delivery/cli.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/env_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/node.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/project_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/project_renderer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/project_structure.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/project_writer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/formatter/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/renderer/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/version_control/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/writer/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/application/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/application/config_snapshot_creator.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/application/usage_metrics_sender.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/delivery/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/delivery/metrics_middleware.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/domain/config_snapshot.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/domain/error_metrics_event.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/domain/metrics_reporter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/domain/usage_metrics_data.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/infra/post_hog_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/infra/post_hog_metrics_reporter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/metrics/infra/user_identity_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/config_repository.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/config_schema.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/dependency_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/general_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/git_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/domain/template_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/infra/persistence/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/infra/persistence/yaml_config_repository.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/supported_built_in_features.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/supported_managers.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/.pre-commit-config.yaml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/AGENTS.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/convention_keeper.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/judge.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/leader.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/spec_partner.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/agents/tdd_craftsman.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/commands/commit.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/commands/technical_debt_review.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/convention_guidelines.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/leader_workflow.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/code_review/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/complexity_review/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/complexity_review/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/hamburger_method/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/hamburger_method/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/micro_steps_coach/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/micro_steps_coach/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/mutation_testing/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/security_review/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/story_splitting/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/story_splitting/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/test_desiderata/REFERENCE.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/test_desiderata/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/skills/xp_refactor/SKILL.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/spec_guidelines.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/tasks.json +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/agents/tdd_outside_in.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/ci.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/dependabot.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/pages.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/github/release.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/mkdocs.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/synchronous/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/pyproject.toml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/makefile +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/agents/agents.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/application.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/main_structure.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/source.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/clean_architecture/test.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/config_files/python_version.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/citation.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/documentation.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/license.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/readme.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/documentation/security.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/source.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/domain_driven_design/test.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/errors.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/events/event_bus_infra.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/events/mock_event_bus.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/github/github_action.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/github/github_issues_template.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/github/makefile.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/logger.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/macros.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/alembic_migrator.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/layers/source_features.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/layers/test_features.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/main_structure.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/source.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/instant_python/templates/project_structure/standard_project/test.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/mise.toml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/mkdocs.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/mypy.ini +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/opencode.json +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/schemas/main-structure-schema.json +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/cli/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/cli/test_version_command.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/application/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/application/test_config_generator.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/fake_questionary.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/step/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/step/test_dependencies_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/step/test_git_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/step/test_template_step.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/test_console_answer_review_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/config/infra/question_wizard/test_questionary_console_wizard.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/application/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/application/test_project_initializer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/approvaltests_config.json +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/delivery/test_init_cli.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/domain/mothers/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/domain/mothers/node_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/domain/test_node.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/env_manager/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/env_manager/mother/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/env_manager/test_system_console.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/formatter/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/renderer/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/renderer/test_jinja_environment.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/version_control/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/writer/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/application/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/application/test_config_snapshot_creator.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/application/test_usage_metrics_sender.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/domain/config_snapshot_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/domain/error_metrics_event_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/domain/usage_metrics_event_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/infra/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/infra/cassettes/error_posthog_reporter.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/infra/cassettes/success_posthog_reporter.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/infra/test_post_hog_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/infra/test_post_hog_metrics_reporter.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/metrics/infra/test_user_identity_manager.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/random_generator.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/resources/base_ipy_config.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/resources/domain_error_template.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/resources/hello_world.j2 +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/resources/main_structure.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/resources/standard_project/main_structure.yml +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/mothers/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/mothers/config_schema_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/mothers/general_config_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/test_config_schema.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/test_dependency_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/test_general_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/test_git_config.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/domain/test_template_configuration.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/persistence/__init__.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/shared/persistence/test_yaml_config_repository.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/test/utils.py +0 -0
- {instant_python-0.25.0 → instant_python-0.26.0}/tox.ini +0 -0
|
@@ -75,3 +75,58 @@ jobs:
|
|
|
75
75
|
|
|
76
76
|
- name: 🚀 Publish
|
|
77
77
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
78
|
+
|
|
79
|
+
build-binaries:
|
|
80
|
+
name: Build binary (${{ matrix.target }})
|
|
81
|
+
needs:
|
|
82
|
+
- release
|
|
83
|
+
if: needs.release.outputs.released == 'true' || github.event_name == 'release'
|
|
84
|
+
strategy:
|
|
85
|
+
matrix:
|
|
86
|
+
include:
|
|
87
|
+
- runner: macos-14
|
|
88
|
+
target: aarch64-apple-darwin
|
|
89
|
+
ext: ""
|
|
90
|
+
- runner: ubuntu-latest
|
|
91
|
+
target: x86_64-unknown-linux-gnu
|
|
92
|
+
ext: ""
|
|
93
|
+
- runner: ubuntu-24.04-arm
|
|
94
|
+
target: aarch64-unknown-linux-gnu
|
|
95
|
+
ext: ""
|
|
96
|
+
- runner: windows-latest
|
|
97
|
+
target: x86_64-pc-windows-msvc
|
|
98
|
+
ext: ".exe"
|
|
99
|
+
runs-on: ${{ matrix.runner }}
|
|
100
|
+
permissions:
|
|
101
|
+
contents: write
|
|
102
|
+
|
|
103
|
+
steps:
|
|
104
|
+
- name: 🛡️ Harden runner
|
|
105
|
+
uses: step-security/harden-runner@e14015d583714f6e62063499dc959a02595150a1 # v2.21.1
|
|
106
|
+
with:
|
|
107
|
+
egress-policy: audit
|
|
108
|
+
|
|
109
|
+
- name: 📥 Checkout the repository
|
|
110
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
111
|
+
with:
|
|
112
|
+
fetch-depth: 0
|
|
113
|
+
persist-credentials: false
|
|
114
|
+
ref: refs/tags/${{ needs.release.outputs.tag }}
|
|
115
|
+
|
|
116
|
+
- name: 🦀 Setup Rust toolchain
|
|
117
|
+
uses: dtolnay/rust-toolchain@6bed0761d98439e5a578e2877258200ad565ba87 # stable
|
|
118
|
+
with:
|
|
119
|
+
targets: ${{ matrix.target }}
|
|
120
|
+
|
|
121
|
+
- name: 🛠️ Setup environment
|
|
122
|
+
uses: ./.github/actions/setup_environment
|
|
123
|
+
|
|
124
|
+
- name: 🏃 Build binary
|
|
125
|
+
env:
|
|
126
|
+
CARGO_BUILD_TARGET: ${{ matrix.target }}
|
|
127
|
+
run: uvx hatch build -t binary
|
|
128
|
+
|
|
129
|
+
- name: 📤 Upload release asset
|
|
130
|
+
env:
|
|
131
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
132
|
+
run: gh release upload ${{ needs.release.outputs.tag }} dist/app/ipy-${{ matrix.target }}${{ matrix.ext }} --clobber
|
|
@@ -2,6 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.26.0 (2026-09-08)
|
|
6
|
+
|
|
7
|
+
### ✨ Features
|
|
8
|
+
|
|
9
|
+
- **schema**: Remove year field and add missing built in features in ipy schema file
|
|
10
|
+
([`f365f88`](https://github.com/dimanu-py/instant-python/commit/f365f88294745570c7cc7b5f7af9b2a613dc3d42))
|
|
11
|
+
|
|
12
|
+
### ⚙️ Build System
|
|
13
|
+
|
|
14
|
+
- Create installation script for Windows
|
|
15
|
+
([`aee3d6e`](https://github.com/dimanu-py/instant-python/commit/aee3d6eac108569037c24687ef5a1925cc8eb58c))
|
|
16
|
+
|
|
17
|
+
- Create installation script for Apple Silicon and Linux
|
|
18
|
+
([`f431d2e`](https://github.com/dimanu-py/instant-python/commit/f431d2ec8c767be06dbd57a2c668f72c2678f9c2))
|
|
19
|
+
|
|
20
|
+
- Bump click to fix vulnerability
|
|
21
|
+
([`1c83b66`](https://github.com/dimanu-py/instant-python/commit/1c83b66ab31665dfe44a59221271767adb188249))
|
|
22
|
+
|
|
23
|
+
- Bump python-semantic-release
|
|
24
|
+
([`3e3c7b2`](https://github.com/dimanu-py/instant-python/commit/3e3c7b2c1d0c578184f3cb707d86d8d3fd1dc7e8))
|
|
25
|
+
|
|
26
|
+
|
|
5
27
|
## v0.25.0 (2026-09-06)
|
|
6
28
|
|
|
7
29
|
### ✨ Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: instant-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.26.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/
|
|
@@ -264,6 +264,20 @@ commands like `ng new` or `create-react-app`, but for Python projects.
|
|
|
264
264
|
|
|
265
265
|
</td></tr></table></div>
|
|
266
266
|
|
|
267
|
+
## 🚀 Quick Start
|
|
268
|
+
|
|
269
|
+
Once [installed](https://dimanu-py.github.io/instant-python/getting_started/installation/), generating a project takes two commands:
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
ipy config # answer a few questions through an interactive wizard to create your ipy.yml configuration file
|
|
273
|
+
ipy init # generate the project from that configuration file
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
- `ipy config` asks you about your project (name, Python version, project manager, template, dependencies, and more) and writes an `ipy.yml` configuration file in the current directory.
|
|
277
|
+
- `ipy init` reads that `ipy.yml` file and generates your new project.
|
|
278
|
+
|
|
279
|
+
See the [First Steps](https://dimanu-py.github.io/instant-python/getting_started/first_steps/) guide for a full walkthrough.
|
|
280
|
+
|
|
267
281
|
## ✨ NEW ✨ Create Fully Customized Projects
|
|
268
282
|
|
|
269
283
|
Take full control of your project generation! With **custom templates**, you can:
|
|
@@ -31,6 +31,20 @@ commands like `ng new` or `create-react-app`, but for Python projects.
|
|
|
31
31
|
|
|
32
32
|
</td></tr></table></div>
|
|
33
33
|
|
|
34
|
+
## 🚀 Quick Start
|
|
35
|
+
|
|
36
|
+
Once [installed](https://dimanu-py.github.io/instant-python/getting_started/installation/), generating a project takes two commands:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
ipy config # answer a few questions through an interactive wizard to create your ipy.yml configuration file
|
|
40
|
+
ipy init # generate the project from that configuration file
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
- `ipy config` asks you about your project (name, Python version, project manager, template, dependencies, and more) and writes an `ipy.yml` configuration file in the current directory.
|
|
44
|
+
- `ipy init` reads that `ipy.yml` file and generates your new project.
|
|
45
|
+
|
|
46
|
+
See the [First Steps](https://dimanu-py.github.io/instant-python/getting_started/first_steps/) guide for a full walkthrough.
|
|
47
|
+
|
|
34
48
|
## ✨ NEW ✨ Create Fully Customized Projects
|
|
35
49
|
|
|
36
50
|
Take full control of your project generation! With **custom templates**, you can:
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
To ensure a clean and isolated environment, we recommend installing `instant-python` using a virtual environment. At your
|
|
2
|
+
own risk, you can install it at your system Python installation, but this is not recommended.
|
|
3
|
+
Below are the preferred installation methods.
|
|
4
|
+
|
|
5
|
+
!!! note "Supported Python Versions"
|
|
6
|
+
Instant Python tries to support the latest Python versions, we officially support from Python 3.10 to 3.13.
|
|
7
|
+
Older versions of Python may work, but they are not guaranteed to be compatible.
|
|
8
|
+
|
|
9
|
+
## Installation Methods
|
|
10
|
+
|
|
11
|
+
### Install script (recommended)
|
|
12
|
+
|
|
13
|
+
The recommended way to install `instant-python` is via the install script. It downloads a self-contained `ipy` binary with
|
|
14
|
+
Python bundled in, so **no local Python installation is required** to install or run it.
|
|
15
|
+
|
|
16
|
+
**macOS / Linux**
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
curl -LsSf https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.sh | sh
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
By default the binary is installed to `~/.local/bin`. You can override this with the `IPY_BIN_DIR` environment variable:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
IPY_BIN_DIR="$HOME/bin" curl -LsSf https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.sh | sh
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Windows**
|
|
29
|
+
|
|
30
|
+
```powershell
|
|
31
|
+
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.ps1 | iex"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
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.
|
|
36
|
+
|
|
37
|
+
!!! note "Supported platforms"
|
|
38
|
+
The install script currently provides prebuilt binaries for macOS (Apple Silicon), Linux (x86_64 and arm64), and Windows
|
|
39
|
+
(x86_64). On other platforms (Intel Mac, Windows on ARM), use one of the alternative methods below.
|
|
40
|
+
|
|
41
|
+
### Other installation methods
|
|
42
|
+
|
|
43
|
+
If your platform isn't covered by the install script, or you prefer to manage `instant-python` as a regular Python package,
|
|
44
|
+
you can install it with `uv`, `pipx`, or `pip` instead.
|
|
45
|
+
|
|
46
|
+
#### Using `uv`
|
|
47
|
+
|
|
48
|
+
If you already use [uv](https://docs.astral.sh/uv/) to manage Python tools, you can install `instant-python` with `uv tool
|
|
49
|
+
install`, which installs it in an isolated environment just like `pipx`.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
uv tool install instant-python
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### Using `pipx`
|
|
56
|
+
|
|
57
|
+
`pipx` installs Python applications in isolated environments, ensuring that they do not interfere with other Python applications.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
pipx install instant-python
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
If you do not have `pipx` installed, you can install it using `pip`.
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pip install --user pipx
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### Using `pyenv`
|
|
70
|
+
|
|
71
|
+
If you already manage your Python versions using a tool like Pyenv, you can install `instant-python` using `pip` with
|
|
72
|
+
pyenv's global Python version.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
pip install instant-python
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
A guide to install and configure pyenv can be found [here](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation)
|
|
79
|
+
|
|
80
|
+
## Next steps
|
|
81
|
+
|
|
82
|
+
Now that you have installed `instant-python` you can advance to the [first steps](first_steps.md)
|
|
83
|
+
section to learn the basic features of `instant-python` and create your first project.
|
|
@@ -24,6 +24,20 @@ commands like `ng new` or `create-react-app`, but for Python projects.
|
|
|
24
24
|
|
|
25
25
|
</td></tr></table></div>
|
|
26
26
|
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
Once [installed](../getting_started/installation.md), generating a project takes two commands:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
ipy config # answer a few questions through an interactive wizard to create your ipy.yml configuration file
|
|
33
|
+
ipy init # generate the project from that configuration file
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
- `ipy config` asks you about your project (name, Python version, project manager, template, dependencies, and more) and writes an `ipy.yml` configuration file in the current directory.
|
|
37
|
+
- `ipy init` reads that `ipy.yml` file and generates your new project.
|
|
38
|
+
|
|
39
|
+
See the [First Steps](../getting_started/first_steps.md) guide for a full walkthrough.
|
|
40
|
+
|
|
27
41
|
## Navigation Guide
|
|
28
42
|
|
|
29
43
|
This section provides a high-level overview of the `instant-python` documentation
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.26.0"
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "instant-python"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.26.0"
|
|
8
8
|
description = "Instant boilerplate generation for Python projects"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -47,6 +47,11 @@ ipy = "instant_python.cli.cli:app"
|
|
|
47
47
|
[project.optional-dependencies]
|
|
48
48
|
build = ["uv>=0.7.21"]
|
|
49
49
|
|
|
50
|
+
[tool.hatch.build.targets.binary]
|
|
51
|
+
scripts = ["ipy"]
|
|
52
|
+
python-version = "3.12"
|
|
53
|
+
pyapp-version = "0.29.0"
|
|
54
|
+
|
|
50
55
|
|
|
51
56
|
[dependency-groups]
|
|
52
57
|
dev = [
|
|
@@ -61,12 +61,6 @@
|
|
|
61
61
|
"type": "string",
|
|
62
62
|
"description": "Package and dependency manager",
|
|
63
63
|
"enum": ["uv", "pdm"]
|
|
64
|
-
},
|
|
65
|
-
"year": {
|
|
66
|
-
"type": "integer",
|
|
67
|
-
"description": "Year for license and copyright (defaults to current year)",
|
|
68
|
-
"minimum": 2000,
|
|
69
|
-
"maximum": 2100
|
|
70
64
|
}
|
|
71
65
|
}
|
|
72
66
|
},
|
|
@@ -153,7 +147,9 @@
|
|
|
153
147
|
"fastapi_application",
|
|
154
148
|
"precommit_hook",
|
|
155
149
|
"citation_file",
|
|
156
|
-
"security_file"
|
|
150
|
+
"security_file",
|
|
151
|
+
"ai_agents",
|
|
152
|
+
"custom_documentation"
|
|
157
153
|
]
|
|
158
154
|
},
|
|
159
155
|
"uniqueItems": true,
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Install the latest instant-python (ipy) release binary for Windows.
|
|
2
|
+
#
|
|
3
|
+
# Usage:
|
|
4
|
+
#
|
|
5
|
+
# powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.ps1 | iex"
|
|
6
|
+
#
|
|
7
|
+
# Overridable via env vars:
|
|
8
|
+
# IPY_BIN_DIR install destination directory (default: $env:USERPROFILE\.local\bin)
|
|
9
|
+
|
|
10
|
+
$ErrorActionPreference = "Stop"
|
|
11
|
+
|
|
12
|
+
$Repo = "dimanu-py/instant-python"
|
|
13
|
+
$Target = "x86_64-pc-windows-msvc"
|
|
14
|
+
$BinDir = if ($env:IPY_BIN_DIR) { $env:IPY_BIN_DIR } else { Join-Path $env:USERPROFILE ".local\bin" }
|
|
15
|
+
$Dest = Join-Path $BinDir "ipy.exe"
|
|
16
|
+
|
|
17
|
+
# --- confirm the current machine matches our only prebuilt target -----------
|
|
18
|
+
function Confirm-SupportedArchitecture {
|
|
19
|
+
$arch = $env:PROCESSOR_ARCHITECTURE
|
|
20
|
+
if ($arch -ne "AMD64") {
|
|
21
|
+
Write-Error "ipy: no prebuilt binary for Windows-$arch. Install via 'uv tool install instant-python' or pipx/pip instead - see https://dimanu-py.github.io/instant-python/getting_started/installation/"
|
|
22
|
+
exit 1
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
# --- download the matching release asset -------------------------------------
|
|
27
|
+
function Get-Binary {
|
|
28
|
+
param([string]$Destination)
|
|
29
|
+
|
|
30
|
+
$url = "https://github.com/$Repo/releases/latest/download/ipy-${Target}.exe"
|
|
31
|
+
Write-Host "ipy: downloading latest release for $Target ..."
|
|
32
|
+
Invoke-WebRequest -Uri $url -OutFile $Destination -UseBasicParsing
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
# --- move the binary into place ------------------------------------------------
|
|
36
|
+
function Install-Binary {
|
|
37
|
+
param([string]$Source)
|
|
38
|
+
|
|
39
|
+
Write-Host "ipy: installing to $Dest ..."
|
|
40
|
+
New-Item -ItemType Directory -Force -Path $BinDir | Out-Null
|
|
41
|
+
Move-Item -Force -Path $Source -Destination $Dest
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# Persist the install dir on the user's PATH so `ipy` works in new terminals.
|
|
45
|
+
function Add-InstallDirToPath {
|
|
46
|
+
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
|
|
47
|
+
$pathEntries = $userPath -split ";" | Where-Object { $_ -ne "" }
|
|
48
|
+
|
|
49
|
+
if ($pathEntries -notcontains $BinDir) {
|
|
50
|
+
$newPath = if ($userPath) { "$userPath;$BinDir" } else { $BinDir }
|
|
51
|
+
[Environment]::SetEnvironmentVariable("Path", $newPath, "User")
|
|
52
|
+
Write-Host "ipy: added $BinDir to your user PATH. Restart your terminal to pick it up."
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (($env:Path -split ";") -notcontains $BinDir) {
|
|
56
|
+
$env:Path = "$env:Path;$BinDir"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function Confirm-Installation {
|
|
61
|
+
& $Dest --version
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function Main {
|
|
65
|
+
Confirm-SupportedArchitecture
|
|
66
|
+
|
|
67
|
+
$tmp = Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName())
|
|
68
|
+
New-Item -ItemType Directory -Force -Path $tmp | Out-Null
|
|
69
|
+
try {
|
|
70
|
+
$download = Join-Path $tmp "ipy.exe"
|
|
71
|
+
Get-Binary -Destination $download
|
|
72
|
+
Install-Binary -Source $download
|
|
73
|
+
Add-InstallDirToPath
|
|
74
|
+
Confirm-Installation
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
Remove-Item -Recurse -Force $tmp -ErrorAction SilentlyContinue
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
Main
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
# Install the latest instant-python (ipy) release binary for the current platform.
|
|
3
|
+
#
|
|
4
|
+
# Usage:
|
|
5
|
+
#
|
|
6
|
+
# curl -LsSf https://raw.githubusercontent.com/dimanu-py/instant-python/main/scripts/install.sh | sh
|
|
7
|
+
#
|
|
8
|
+
# Overridable via env vars:
|
|
9
|
+
# IPY_BIN_DIR install destination directory (default: $HOME/.local/bin)
|
|
10
|
+
set -eu
|
|
11
|
+
|
|
12
|
+
REPO="dimanu-py/instant-python"
|
|
13
|
+
BIN_DIR="${IPY_BIN_DIR:-$HOME/.local/bin}"
|
|
14
|
+
DEST="$BIN_DIR/ipy"
|
|
15
|
+
|
|
16
|
+
# --- detect platform -> release target triple --------------------------------
|
|
17
|
+
detect_target() {
|
|
18
|
+
os="$(uname -s)"
|
|
19
|
+
arch="$(uname -m)"
|
|
20
|
+
case "$os-$arch" in
|
|
21
|
+
Darwin-arm64) target="aarch64-apple-darwin" ;;
|
|
22
|
+
Linux-x86_64) target="x86_64-unknown-linux-gnu" ;;
|
|
23
|
+
Linux-aarch64|Linux-arm64) target="aarch64-unknown-linux-gnu" ;;
|
|
24
|
+
*)
|
|
25
|
+
echo "ipy: no prebuilt binary for $os-$arch." >&2
|
|
26
|
+
echo "ipy: install via pipx or pip instead - see https://dimanu-py.github.io/instant-python/getting_started/installation/" >&2
|
|
27
|
+
exit 1
|
|
28
|
+
;;
|
|
29
|
+
esac
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# --- download the matching release asset --------------------------------------
|
|
33
|
+
download_binary() {
|
|
34
|
+
destination="$1"
|
|
35
|
+
|
|
36
|
+
echo "ipy: downloading latest release for $target ..." >&2
|
|
37
|
+
curl -fsSL -o "$destination" "https://github.com/$REPO/releases/latest/download/ipy-$target"
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# --- move the binary into place and make it executable ------------------------
|
|
41
|
+
install_binary() {
|
|
42
|
+
source="$1"
|
|
43
|
+
|
|
44
|
+
echo "ipy: installing to $DEST ..." >&2
|
|
45
|
+
mkdir -p "$BIN_DIR"
|
|
46
|
+
mv "$source" "$DEST"
|
|
47
|
+
chmod +x "$DEST"
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# macOS: clear quarantine (no-op if absent) and ad-hoc sign so Gatekeeper allows it.
|
|
51
|
+
macos_allow_execution() {
|
|
52
|
+
if [ "$os" = "Darwin" ]; then
|
|
53
|
+
xattr -d com.apple.quarantine "$DEST" 2>/dev/null || true
|
|
54
|
+
codesign --force --deep --sign - "$DEST"
|
|
55
|
+
fi
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
verify_installation() {
|
|
59
|
+
"$DEST" --version
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
# Warn the user if the install directory isn't already on their PATH.
|
|
63
|
+
warn_if_not_on_path() {
|
|
64
|
+
case ":$PATH:" in
|
|
65
|
+
*":$BIN_DIR:"*) ;;
|
|
66
|
+
*)
|
|
67
|
+
echo "" >&2
|
|
68
|
+
echo "ipy: installed to $DEST, but $BIN_DIR is not on your PATH." >&2
|
|
69
|
+
echo "ipy: add this to your shell profile: export PATH=\"$BIN_DIR:\$PATH\"" >&2
|
|
70
|
+
;;
|
|
71
|
+
esac
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
main() {
|
|
75
|
+
tmp="$(mktemp -d)"
|
|
76
|
+
trap 'rm -rf "$tmp"' EXIT
|
|
77
|
+
download="$tmp/ipy"
|
|
78
|
+
|
|
79
|
+
detect_target
|
|
80
|
+
download_binary "$download"
|
|
81
|
+
install_binary "$download"
|
|
82
|
+
macos_allow_execution
|
|
83
|
+
verify_installation
|
|
84
|
+
warn_if_not_on_path
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
main "$@"
|
|
@@ -410,11 +410,14 @@ wheels = [
|
|
|
410
410
|
|
|
411
411
|
[[package]]
|
|
412
412
|
name = "click"
|
|
413
|
-
version = "8.
|
|
413
|
+
version = "8.3.3"
|
|
414
414
|
source = { registry = "https://pypi.org/simple" }
|
|
415
|
-
|
|
415
|
+
dependencies = [
|
|
416
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
417
|
+
]
|
|
418
|
+
sdist = { url = "https://files.pythonhosted.org/packages/bb/63/f9e1ea081ce35720d8b92acde70daaedace594dc93b693c869e0d5910718/click-8.3.3.tar.gz", hash = "sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2", size = 328061, upload-time = "2026-04-22T15:11:27.506Z" }
|
|
416
419
|
wheels = [
|
|
417
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
420
|
+
{ url = "https://files.pythonhosted.org/packages/ae/44/c1221527f6a71a01ec6fbad7fa78f1d50dfa02217385cf0fa3eec7087d59/click-8.3.3-py3-none-any.whl", hash = "sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613", size = 110502, upload-time = "2026-04-22T15:11:25.044Z" },
|
|
418
421
|
]
|
|
419
422
|
|
|
420
423
|
[[package]]
|
|
@@ -823,7 +826,7 @@ wheels = [
|
|
|
823
826
|
|
|
824
827
|
[[package]]
|
|
825
828
|
name = "instant-python"
|
|
826
|
-
version = "0.
|
|
829
|
+
version = "0.26.0"
|
|
827
830
|
source = { editable = "." }
|
|
828
831
|
dependencies = [
|
|
829
832
|
{ name = "click" },
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
To ensure a clean and isolated environment, we recommend installing `instant-python` using a virtual environment. At your
|
|
2
|
-
own risk, you can install it at your system Python installation, but this is not recommended.
|
|
3
|
-
Below are the preferred installation methods.
|
|
4
|
-
|
|
5
|
-
!!! note "Supported Python Versions"
|
|
6
|
-
Instant Python tries to support the latest Python versions, we officially support from Python 3.10 to 3.13.
|
|
7
|
-
Older versions of Python may work, but they are not guaranteed to be compatible.
|
|
8
|
-
|
|
9
|
-
## Installation Methods
|
|
10
|
-
|
|
11
|
-
### Using `pipx`
|
|
12
|
-
|
|
13
|
-
The recommended way to install `instant-python` is using `pipx`. `pipx` installs Python applications in isolated environments, ensuring that
|
|
14
|
-
they do not interfere with other Python applications.
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
pipx install instant-python
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
If you do not have `pipx` installed, you can install it using `pip`.
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
pip install --user pipx
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Using `pyenv`
|
|
27
|
-
|
|
28
|
-
If you already manage your Python versions using a tool like Pyenv, you can install `instant-python` using `pip` with
|
|
29
|
-
pyenv's global Python version.
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pip install instant-python
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
A guide to install and configure pyenv can be found [here](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation)
|
|
36
|
-
|
|
37
|
-
## Next steps
|
|
38
|
-
|
|
39
|
-
Now that you have installed `instant-python` you can advance to the [first steps](first_steps.md)
|
|
40
|
-
section to learn the basic features of `instant-python` and create your first project.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.25.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/complexity_review/REFERENCE.md
RENAMED
|
File without changes
|
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/hamburger_method/REFERENCE.md
RENAMED
|
File without changes
|
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/.agents/skills/micro_steps_coach/REFERENCE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/.github/actions/setup_environment/action.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changelog_header.md.j2
RENAMED
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changelog_init.md.j2
RENAMED
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/changelog_update.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
{instant_python-0.25.0 → instant_python-0.26.0}/docs/changelog/.components/first_release.md.j2
RENAMED
|
File without changes
|