instant-python 0.19.1__tar.gz → 0.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/actions/python_setup/action.yml +1 -3
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/workflows/ci.yml +2 -2
- {instant_python-0.19.1 → instant_python-0.21.0}/.pre-commit-config.yaml +1 -1
- {instant_python-0.19.1 → instant_python-0.21.0}/CHANGELOG.md +268 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/PKG-INFO +22 -8
- {instant_python-0.19.1 → instant_python-0.21.0}/README.md +18 -7
- instant_python-0.21.0/docs/getting_started/privacy_and_metrics.md +137 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/guide/command_config.md +64 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/guide/custom_projects.md +72 -7
- instant_python-0.21.0/docs/guide/template_reference.md +434 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/home/index.md +2 -0
- instant_python-0.21.0/instant_python/__init__.py +1 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/cli/cli.py +7 -3
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/application/config_generator.py +8 -5
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/delivery/cli.py +2 -2
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/delivery/cli.py +1 -1
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/renderer/jinja_project_renderer.py +1 -1
- instant_python-0.21.0/instant_python/metrics/application/config_snapshot_creator.py +22 -0
- instant_python-0.21.0/instant_python/metrics/application/usage_metrics_sender.py +41 -0
- instant_python-0.21.0/instant_python/metrics/delivery/metrics_middleware.py +88 -0
- instant_python-0.21.0/instant_python/metrics/domain/config_snapshot.py +61 -0
- instant_python-0.21.0/instant_python/metrics/domain/error_metrics_event.py +13 -0
- instant_python-0.21.0/instant_python/metrics/domain/metrics_reporter.py +14 -0
- instant_python-0.21.0/instant_python/metrics/domain/usage_metrics_data.py +15 -0
- instant_python-0.21.0/instant_python/metrics/infra/post_hog_config.py +16 -0
- instant_python-0.21.0/instant_python/metrics/infra/post_hog_metrics_reporter.py +46 -0
- instant_python-0.21.0/instant_python/metrics/infra/user_identity_manager.py +54 -0
- {instant_python-0.19.1/instant_python/initialize → instant_python-0.21.0/instant_python/shared}/domain/config_repository.py +4 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/domain/config_schema.py +9 -1
- {instant_python-0.19.1/instant_python/initialize → instant_python-0.21.0/instant_python/shared}/infra/persistence/yaml_config_repository.py +8 -3
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/makefile +7 -0
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/delivery.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/domain.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/domain.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/infra.yml +5 -5
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/main_structure.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/main_structure.yml +18 -18
- instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/source.yml +9 -0
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/test.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/test.yml +4 -4
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/delivery.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/shared.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/shared_domain.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/infra.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/shared_infra.yml +5 -5
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_infra.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_infra.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/main_structure.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/main_structure.yml +18 -18
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/source.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/source.yml +3 -3
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/test.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/test.yml +2 -2
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/project_structure/macros.j2 +2 -2
- instant_python-0.21.0/instant_python/templates/project_structure/persistence/alembic_migrator.yml +6 -0
- instant_python-0.19.1/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/persistence/async_sqlalchemy.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/source_features.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/standard_project/layers/source_features.yml +9 -9
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/standard_project/layers/test_event_bus.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/layers/test_features.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/standard_project/layers/test_features.yml +2 -2
- instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/main_structure.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/standard_project/main_structure.yml +18 -18
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/source.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/standard_project/source.yml +1 -1
- instant_python-0.19.1/instant_python/templates/project_structure/standard_project/test.yml.j2 → instant_python-0.21.0/instant_python/templates/project_structure/standard_project/test.yml +1 -1
- {instant_python-0.19.1 → instant_python-0.21.0}/makefile +11 -4
- {instant_python-0.19.1 → instant_python-0.21.0}/mkdocs.yml +2 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/pyproject.toml +6 -2
- instant_python-0.21.0/schemas/ipy-schema.json +280 -0
- instant_python-0.21.0/schemas/main-structure-schema.json +88 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/config/application/test_config_generator.py +5 -5
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_template_section_combinations.approved.txt +12 -12
- instant_python-0.21.0/test/metrics/application/__init__.py +0 -0
- instant_python-0.21.0/test/metrics/application/test_config_snapshot_creator.py +34 -0
- instant_python-0.21.0/test/metrics/application/test_usage_metrics_sender.py +30 -0
- instant_python-0.21.0/test/metrics/domain/__init__.py +0 -0
- instant_python-0.21.0/test/metrics/domain/config_snapshot_mother.py +19 -0
- instant_python-0.21.0/test/metrics/domain/error_metrics_event_mother.py +13 -0
- instant_python-0.21.0/test/metrics/domain/usage_metrics_event_mother.py +15 -0
- instant_python-0.21.0/test/metrics/infra/__init__.py +0 -0
- instant_python-0.21.0/test/metrics/infra/cassettes/error_posthog_reporter.yml +336 -0
- instant_python-0.21.0/test/metrics/infra/cassettes/success_posthog_reporter.yml +51 -0
- instant_python-0.21.0/test/metrics/infra/test_post_hog_config.py +47 -0
- instant_python-0.21.0/test/metrics/infra/test_post_hog_metrics_reporter.py +51 -0
- instant_python-0.21.0/test/metrics/infra/test_user_identity_manager.py +71 -0
- instant_python-0.21.0/test/shared/__init__.py +0 -0
- instant_python-0.21.0/test/shared/domain/__init__.py +0 -0
- instant_python-0.21.0/test/shared/domain/mothers/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/mothers/config_schema_mother.py +12 -0
- instant_python-0.21.0/test/shared/persistence/__init__.py +0 -0
- instant_python-0.21.0/test/shared/persistence/test_yaml_config_repository.py +50 -0
- instant_python-0.21.0/uv.lock +3207 -0
- instant_python-0.19.1/instant_python/__init__.py +0 -1
- instant_python-0.19.1/instant_python/config/domain/config_writer.py +0 -9
- instant_python-0.19.1/instant_python/config/infra/writer/yaml_config_writer.py +0 -13
- instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/source.yml.j2 +0 -9
- instant_python-0.19.1/instant_python/templates/project_structure/persistence/alembic_migrator.yml.j2 +0 -6
- instant_python-0.19.1/scripts/add_dependency.py +0 -24
- instant_python-0.19.1/scripts/remove_dependency.py +0 -22
- instant_python-0.19.1/test/config/infra/writer/test_yaml_config_writer.py +0 -16
- instant_python-0.19.1/test/initialize/infra/persistence/approvaltests_config.json +0 -3
- instant_python-0.19.1/test/initialize/infra/persistence/approved_files/TestYamlConfigRepository.test_should_read_existing_config_file.approved.txt +0 -26
- instant_python-0.19.1/test/initialize/infra/persistence/test_yaml_config_repository.py +0 -59
- instant_python-0.19.1/uv.lock +0 -2105
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/FUNDING.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/pull_request_template.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/workflows/pages.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.github/workflows/release.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.gitignore +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/.python-version +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/CITATION.cff +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/LICENSE +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/SECURITY.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/codeql-config.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/assets/favicon.svg +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/assets/logo.svg +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/changelog_header.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/changelog_init.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/changelog_update.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/changes.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/first_release.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/macros.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.components/versioned_changes.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/.release_notes.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/changelog/CHANGELOG.md.j2 +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/development/contributing.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/development/releases.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/development/security.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/downloads_macro.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/getting_started/first_steps.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/getting_started/installation.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/guide/command_init.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/guide/default_features.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/docs/guide/index.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/cli/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/cli/instant_python_typer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/application/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/delivery/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/domain/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/domain/question_wizard.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/questionary_console_wizard.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/dependencies_step.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/general_step.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/git_step.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/questionary.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/steps.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/config/infra/question_wizard/step/template_step.py +0 -0
- {instant_python-0.19.1/instant_python/config/infra/writer → instant_python-0.21.0/instant_python/initialize}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize → instant_python-0.21.0/instant_python/initialize/application}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/application/project_initializer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/application → instant_python-0.21.0/instant_python/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/delivery → instant_python-0.21.0/instant_python/initialize/domain}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/env_manager.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/node.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/project_formatter.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/project_renderer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/project_structure.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/project_writer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/domain/version_control_configurer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/domain → instant_python-0.21.0/instant_python/initialize/infra}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra → instant_python-0.21.0/instant_python/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/env_manager/env_manager_factory.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/env_manager/pdm_env_manager.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/env_manager/system_console.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/env_manager/uv_env_manager.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/env_manager → instant_python-0.21.0/instant_python/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/formatter/ruff_project_formatter.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/formatter → instant_python-0.21.0/instant_python/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/renderer/jinja_environment.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/persistence → instant_python-0.21.0/instant_python/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/version_control/git_configurer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/renderer → instant_python-0.21.0/instant_python/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/initialize/infra/writer/file_system_project_writer.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/version_control → instant_python-0.21.0/instant_python/metrics}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/initialize/infra/writer → instant_python-0.21.0/instant_python/metrics/application}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/shared → instant_python-0.21.0/instant_python/metrics/delivery}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/shared → instant_python-0.21.0/instant_python/metrics}/domain/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate/event_bus → instant_python-0.21.0/instant_python/metrics/infra}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate/exceptions → instant_python-0.21.0/instant_python/shared}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/application_error.py +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate/fastapi → instant_python-0.21.0/instant_python/shared/domain}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/domain/dependency_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/domain/general_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/domain/git_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/domain/template_config.py +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate/logger → instant_python-0.21.0/instant_python/shared/infra}/__init__.py +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate → instant_python-0.21.0/instant_python/shared/infra}/persistence/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/supported_built_in_features.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/supported_licenses.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/supported_managers.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/supported_python_versions.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/shared/supported_templates.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/.gitignore +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/.pre-commit-config.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/.python-version +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/CITATION.cff +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/LICENSE +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/README.md +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/SECURITY.md +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate/persistence/async → instant_python-0.21.0/instant_python/templates/boilerplate/event_bus}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/domain_event.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_deserializer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/domain_event_json_serializer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/domain_event_subscriber.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/event_aggregate.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/event_bus.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/exchange_type.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/mock_event_bus.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_configurer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_connection.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_consumer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_event_bus.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_queue_formatter.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/event_bus/rabbit_mq_settings.py +0 -0
- {instant_python-0.19.1/instant_python/templates/boilerplate/persistence/synchronous → instant_python-0.21.0/instant_python/templates/boilerplate/exceptions}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/exceptions/base_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/exceptions/domain_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/exceptions/domain_event_type_not_found_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/exceptions/rabbit_mq_connection_not_established_error.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/exceptions/required_value_error.py +0 -0
- {instant_python-0.19.1/test → instant_python-0.21.0/instant_python/templates/boilerplate/fastapi}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/fastapi/application.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/fastapi/error_handlers.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/fastapi/error_response.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/fastapi/fastapi_log_middleware.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/fastapi/lifespan.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/fastapi/success_response.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/github/action.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/github/bug_report.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/github/ci.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/github/feature_request.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/github/release.yml +0 -0
- {instant_python-0.19.1/test/cli → instant_python-0.21.0/instant_python/templates/boilerplate/logger}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/logger/file_logger.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/logger/file_rotating_handler.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/logger/json_formatter.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/mypy.ini +0 -0
- {instant_python-0.19.1/test/config → instant_python-0.21.0/instant_python/templates/boilerplate/persistence}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/alembic_migrator.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/README.md +0 -0
- {instant_python-0.19.1/test/config/application → instant_python-0.21.0/instant_python/templates/boilerplate/persistence/async}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/alembic.ini +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/async_engine_fixture.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/async_session.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/env.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/models_metadata.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/postgres_settings.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/script.py.mako +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/async/sqlalchemy_repository.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/base.py +0 -0
- {instant_python-0.19.1/test/config/infra → instant_python-0.21.0/instant_python/templates/boilerplate/persistence/synchronous}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/synchronous/session_maker.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/persistence/synchronous/sqlalchemy_repository.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/pyproject.toml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/pytest.ini +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/add_dependency.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/create_aggregate.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/insert_template.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/integration.sh +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/local_setup.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/post-merge.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/pre-commit.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/pre-push.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/remove_dependency.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/instant_python/templates/boilerplate/scripts/unit.sh +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/application.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/application.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/test_application.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/test_delivery.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/clean_architecture/layers/test_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/gitignore.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/config_files/gitignore.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/mypy.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/config_files/mypy.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/pyproject.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/config_files/pyproject.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/pytest.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/config_files/pytest.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/config_files/python_version.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/config_files/python_version.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/citation.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/documentation/citation.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/license.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/documentation/license.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/readme.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/documentation/readme.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/documentation/security.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/documentation/security.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/bounded_context.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_delivery.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/domain_driven_design/layers/test_shared_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/errors.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/errors.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/events/event_bus_domain.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/events/event_bus_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/events/event_bus_infra.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/events/event_bus_infra.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/events/mock_event_bus.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/events/mock_event_bus.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/fastapi/fastapi_app.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/fastapi/fastapi_app.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/fastapi/fastapi_domain.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/fastapi/fastapi_domain.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/fastapi/fastapi_infra.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/fastapi/fastapi_infra.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/github_action.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/github/github_action.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/github_issues_template.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/github/github_issues_template.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/makefile.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/github/makefile.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/github/precommit_hook.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/github/precommit_hook.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/logger.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/logger.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/async_alembic.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/persistence/async_alembic.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/async_engine_conftest.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/persistence/async_engine_conftest.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/persistence.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/persistence/persistence.yml +0 -0
- /instant_python-0.19.1/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml.j2 → /instant_python-0.21.0/instant_python/templates/project_structure/persistence/synchronous_sqlalchemy.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/mypy.ini +0 -0
- {instant_python-0.19.1/test/config/infra/writer → instant_python-0.21.0/test}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize → instant_python-0.21.0/test/cli}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/cli/test_version_command.py +0 -0
- {instant_python-0.19.1/test/initialize/application → instant_python-0.21.0/test/config}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/delivery → instant_python-0.21.0/test/config/application}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/domain → instant_python-0.21.0/test/initialize}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/domain/mothers → instant_python-0.21.0/test/initialize/application}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/application/test_project_initializer.py +0 -0
- {instant_python-0.19.1/test/initialize/infra → instant_python-0.21.0/test/initialize/delivery}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/approvaltests_config.json +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_custom_project_structure.approved.txt +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_general_section_combinations.approved.txt +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_git_section_combinations.approved.txt +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/approved_files/TestInitCli.test_should_initialize_project_with_predefined_dependencies_and_different_managers.approved.txt +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/delivery/test_init_cli.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/env_manager → instant_python-0.21.0/test/initialize/domain}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/env_manager/mother → instant_python-0.21.0/test/initialize/domain/mothers}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/domain/mothers/node_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/domain/mothers/project_structure_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/domain/test_node.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/formatter → instant_python-0.21.0/test/initialize/infra}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/persistence → instant_python-0.21.0/test/initialize/infra/env_manager}/__init__.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/renderer → instant_python-0.21.0/test/initialize/infra/env_manager/mother}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/env_manager/mother/command_execution_result_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/env_manager/test_pdm_env_manager.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/env_manager/test_system_console.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/env_manager/test_uv_env_manager.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/version_control → instant_python-0.21.0/test/initialize/infra/formatter}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/formatter/test_ruff_project_formatter.py +0 -0
- {instant_python-0.19.1/test/initialize/infra/writer → instant_python-0.21.0/test/initialize/infra/renderer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/renderer/test_jinja_environment.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/renderer/test_jinja_project_renderer.py +0 -0
- {instant_python-0.19.1/test/shared → instant_python-0.21.0/test/initialize/infra/version_control}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/version_control/test_git_configurer.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_file_in_file_system.approved.txt +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_python_module_in_file_system.approved.txt +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/writer/TestFileSystemProjectWriter.test_should_create_standard_directory_in_file_system.approved.txt +0 -0
- {instant_python-0.19.1/test/shared/domain → instant_python-0.21.0/test/initialize/infra/writer}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/initialize/infra/writer/test_file_system_project_writer.py +0 -0
- {instant_python-0.19.1/test/shared/domain/mothers → instant_python-0.21.0/test/metrics}/__init__.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/random_generator.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/resources/base_ipy_config.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/resources/domain_error_template.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/resources/hello_world.j2 +0 -0
- /instant_python-0.19.1/test/resources/main_structure.yml.j2 → /instant_python-0.21.0/test/resources/main_structure.yml +0 -0
- /instant_python-0.19.1/test/resources/standard_project/main_structure.yml.j2 → /instant_python-0.21.0/test/resources/standard_project/main_structure.yml +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/mothers/dependency_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/mothers/general_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/mothers/git_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/mothers/template_config_mother.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/test_config_schema.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/test_dependency_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/test_general_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/test_git_config.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/shared/domain/test_template_configuration.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/test/utils.py +0 -0
- {instant_python-0.19.1 → instant_python-0.21.0}/tox.ini +0 -0
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
|
|
32
32
|
- name: 🧐 Check linting
|
|
33
33
|
id: check_lint
|
|
34
|
-
run:
|
|
34
|
+
run: make check-lint
|
|
35
35
|
|
|
36
36
|
format:
|
|
37
37
|
name: format
|
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
|
|
55
55
|
- name: 🧐 Check code format
|
|
56
56
|
id: check_format
|
|
57
|
-
run:
|
|
57
|
+
run: make check-format
|
|
58
58
|
|
|
59
59
|
analyze-code-quality:
|
|
60
60
|
name: analyze-code-quality
|
|
@@ -2,6 +2,274 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- version list -->
|
|
4
4
|
|
|
5
|
+
## v0.21.0 (2025-12-12)
|
|
6
|
+
|
|
7
|
+
### ✨ Features
|
|
8
|
+
|
|
9
|
+
- **metrics**: Set default values for api_key and host in PostHogConfig
|
|
10
|
+
([`8cfd3c2`](https://github.com/dimanu-py/instant-python/commit/8cfd3c23ebe08ec54bb06d8ed7f646a7d8105a13))
|
|
11
|
+
|
|
12
|
+
- **metrics**: Add metrics disabled check in PostHogMetricsReporter to prevent sending metrics when
|
|
13
|
+
disabled
|
|
14
|
+
([`11e3cd3`](https://github.com/dimanu-py/instant-python/commit/11e3cd3f8a5e97065e54bf2d101647fb59d913a8))
|
|
15
|
+
|
|
16
|
+
- **config**: Add metrics_enabled field to configuration for controlling metrics collection
|
|
17
|
+
([`841cd9f`](https://github.com/dimanu-py/instant-python/commit/841cd9f73a8d6aa779a05f48cc160fe5f33d0123))
|
|
18
|
+
|
|
19
|
+
- **metrics**: Add error metrics handling in metrics middleware for improved exception tracking
|
|
20
|
+
([`7192e88`](https://github.com/dimanu-py/instant-python/commit/7192e88fc6c294065bd2c4d74223f0de552c0d6b))
|
|
21
|
+
|
|
22
|
+
- **metrics**: Implement error handling in send_error method for capturing exceptions
|
|
23
|
+
([`49d227f`](https://github.com/dimanu-py/instant-python/commit/49d227f700de0a550e7849a169f146df7fc33cde))
|
|
24
|
+
|
|
25
|
+
- **metrics**: Add error handling for command failures in usage metrics sender
|
|
26
|
+
([`364a731`](https://github.com/dimanu-py/instant-python/commit/364a7317b0ed8c08a29d7525f98366eae7715835))
|
|
27
|
+
|
|
28
|
+
- **metrics**: Create class to store all data related to error event
|
|
29
|
+
([`8174b3f`](https://github.com/dimanu-py/instant-python/commit/8174b3fc9f975cd338aeefcc0b28fb0cad86c180))
|
|
30
|
+
|
|
31
|
+
- **metrics**: Add send_error method to metrics reporter for error handling
|
|
32
|
+
([`c3e2cdb`](https://github.com/dimanu-py/instant-python/commit/c3e2cdb6676c23c8476cb222f7d37c0de1b05a84))
|
|
33
|
+
|
|
34
|
+
- **metrics**: Add ConfigSnapshotPrimitives type and to_primitives method
|
|
35
|
+
([`eb28115`](https://github.com/dimanu-py/instant-python/commit/eb28115bd5a3a62c3996d03fdc5f4fc3daadd168))
|
|
36
|
+
|
|
37
|
+
- **metrics**: Add snapshot creator instance inside metrics middleware
|
|
38
|
+
([`a7f4984`](https://github.com/dimanu-py/instant-python/commit/a7f498437b503bf956ed9f40b95f1c6ebf9deaf2))
|
|
39
|
+
|
|
40
|
+
- **metrics**: Add method to create unknown ConfigSnapshot and handle missing config file
|
|
41
|
+
([`4e17a87`](https://github.com/dimanu-py/instant-python/commit/4e17a8750b2c3d292da8d3280a4f25a4f521abda))
|
|
42
|
+
|
|
43
|
+
- **metrics**: Implement method to be able to compare two snapshots
|
|
44
|
+
([`ec00d47`](https://github.com/dimanu-py/instant-python/commit/ec00d47167a5a47bb34394ce02a2fc663f542fb9))
|
|
45
|
+
|
|
46
|
+
- **metrics**: Implement 'is_unknown' method in config snapshot class to determine if it has been
|
|
47
|
+
properly read or not
|
|
48
|
+
([`910c8d1`](https://github.com/dimanu-py/instant-python/commit/910c8d1502fa076167092ecad57dfd93314a9ccf))
|
|
49
|
+
|
|
50
|
+
- **metrics**: Implement use case to create a snapshot of the configuration file
|
|
51
|
+
([`4ab1892`](https://github.com/dimanu-py/instant-python/commit/4ab18922bb15f5e73353ee646baa8be339445494))
|
|
52
|
+
|
|
53
|
+
- **shared**: Add 'for_metrics' method in config schema to be able to get only the data I need for
|
|
54
|
+
metrics and not need to access all the internals of the class
|
|
55
|
+
([`feb27b7`](https://github.com/dimanu-py/instant-python/commit/feb27b77e9feab6c4a2b37bc5c790fb83544a2a2))
|
|
56
|
+
|
|
57
|
+
- **metrics**: Inject config repository to snapshot creator to be able to read an existing
|
|
58
|
+
configuration file
|
|
59
|
+
([`e10e26c`](https://github.com/dimanu-py/instant-python/commit/e10e26cc0d46c46895cd4551897994a88f64008e))
|
|
60
|
+
|
|
61
|
+
- **metrics**: Create config snapshot class to store all the data related to the config file that
|
|
62
|
+
will be sent to metrics
|
|
63
|
+
([`32db003`](https://github.com/dimanu-py/instant-python/commit/32db00308a09cecf12aa202574ad9e1a3f945d3b))
|
|
64
|
+
|
|
65
|
+
- **metrics**: Integrate MetricsMiddleware into InstantPythonTyper for enhanced command execution
|
|
66
|
+
metrics
|
|
67
|
+
([`2b9db62`](https://github.com/dimanu-py/instant-python/commit/2b9db621867a196018afd6348c78e2b2adf0559a))
|
|
68
|
+
|
|
69
|
+
- **metrics**: Add MetricsMiddleware to handle command execution and send usage metrics data after
|
|
70
|
+
command execution has finished
|
|
71
|
+
([`bdbbe00`](https://github.com/dimanu-py/instant-python/commit/bdbbe000e191ab72ca5c0eda97ba8a364346b5b4))
|
|
72
|
+
|
|
73
|
+
- **metrics**: Implement execute method in metrics sender use case to send usage metrics data
|
|
74
|
+
([`2fbecb8`](https://github.com/dimanu-py/instant-python/commit/2fbecb804c15b95228df6612abaadc5a74e50ef1))
|
|
75
|
+
|
|
76
|
+
- **metrics**: Validate distinct ID format when loading from metrics file
|
|
77
|
+
([`007c9d2`](https://github.com/dimanu-py/instant-python/commit/007c9d2958082d4b15d96eb0f5c0a4666153e24a))
|
|
78
|
+
|
|
79
|
+
- **metrics**: Handle JSON decoding errors and missing distinct ID in metrics file
|
|
80
|
+
([`c2e6be6`](https://github.com/dimanu-py/instant-python/commit/c2e6be60a8191b710402356daddac43c6cb8f30b))
|
|
81
|
+
|
|
82
|
+
- **metrics**: Retrieve distinct ID from metrics.json if it exists so an existing user does not
|
|
83
|
+
generate a new id
|
|
84
|
+
([`9b52f46`](https://github.com/dimanu-py/instant-python/commit/9b52f469598ee8b197448693e4a94e91f8396ab1))
|
|
85
|
+
|
|
86
|
+
- **metrics**: Store distinct ID in metrics.json on first execution
|
|
87
|
+
([`da050c9`](https://github.com/dimanu-py/instant-python/commit/da050c94e57653fe56ad09e5aee3704d6e3638fb))
|
|
88
|
+
|
|
89
|
+
- **metrics**: Add UserIdentityManager to generate distinct user IDs
|
|
90
|
+
([`36ef740`](https://github.com/dimanu-py/instant-python/commit/36ef7401467d4b20502e0c6d19cc80ffe8e0c588))
|
|
91
|
+
|
|
92
|
+
- **metrics**: Implement fire-and-forget strategy for metric sending
|
|
93
|
+
([`6cc0761`](https://github.com/dimanu-py/instant-python/commit/6cc0761a8ca86d15472448f03724105cdb4e47e2))
|
|
94
|
+
|
|
95
|
+
- **metrics**: Enable sync mode for PostHog client initialization
|
|
96
|
+
([`51c52bc`](https://github.com/dimanu-py/instant-python/commit/51c52bc235f16a70c5f646d3445fecc889063d78))
|
|
97
|
+
|
|
98
|
+
- **metrics**: Capture event to be sent to posthog using a temporary distinct_id
|
|
99
|
+
([`db27119`](https://github.com/dimanu-py/instant-python/commit/db27119b567f438caf5444b0cc91e0a7872d85f1))
|
|
100
|
+
|
|
101
|
+
- **metrics**: Create posthog client inside reporter to be able to send metrics
|
|
102
|
+
([`59aa393`](https://github.com/dimanu-py/instant-python/commit/59aa3938c5c9c29af31b5f52f21245c5d0a058c5))
|
|
103
|
+
|
|
104
|
+
- **metrics**: Create post hog config class to handle env variables related with post hog
|
|
105
|
+
([`95a4516`](https://github.com/dimanu-py/instant-python/commit/95a4516df3defeb2f0b528b1a08d4f0426586869))
|
|
106
|
+
|
|
107
|
+
- **metrics**: Create dataclass to store all data related to usage metrics that will be send to
|
|
108
|
+
posthog
|
|
109
|
+
([`0368a98`](https://github.com/dimanu-py/instant-python/commit/0368a98c71f82ab96db4e4bcb23e6142f6c3703a))
|
|
110
|
+
|
|
111
|
+
### ⚙️ Build System
|
|
112
|
+
|
|
113
|
+
- **pyproject**: Add platformdirs as production dependency as it's not built-in with all supported
|
|
114
|
+
python versions
|
|
115
|
+
([`ef5dcf3`](https://github.com/dimanu-py/instant-python/commit/ef5dcf34c9b1b9c6f16e6a0e83f29d67898a6694))
|
|
116
|
+
|
|
117
|
+
- **pyproject**: Update dependencies to remove vulnerability
|
|
118
|
+
([`c858003`](https://github.com/dimanu-py/instant-python/commit/c858003272d4516a6b13e11f478a2cb9f2de895b))
|
|
119
|
+
|
|
120
|
+
- **pyproject**: Add vcr dependency to run posthog integration test without affecting current
|
|
121
|
+
project
|
|
122
|
+
([`ccc11f0`](https://github.com/dimanu-py/instant-python/commit/ccc11f011ffe615c3b581c89de68db774c353033))
|
|
123
|
+
|
|
124
|
+
- **pyproject**: Add pydantic settings dependency to handle env variables gracefully
|
|
125
|
+
([`0b8b19f`](https://github.com/dimanu-py/instant-python/commit/0b8b19fd7c315403f134c08272ca5ad9f0d0813f))
|
|
126
|
+
|
|
127
|
+
### ♻️ Refactoring
|
|
128
|
+
|
|
129
|
+
- **metrics**: Streamline success metrics handling in metrics middleware
|
|
130
|
+
([`65962b6`](https://github.com/dimanu-py/instant-python/commit/65962b630f2b049b0aec1336991dc79cf4757587))
|
|
131
|
+
|
|
132
|
+
- **metrics**: Update send_error method to include error parameter
|
|
133
|
+
([`61210ac`](https://github.com/dimanu-py/instant-python/commit/61210acf4724a307a3b838821a59e00c06b97e87))
|
|
134
|
+
|
|
135
|
+
- **metrics**: Rename send method to send_success in metrics reporter
|
|
136
|
+
([`462db4c`](https://github.com/dimanu-py/instant-python/commit/462db4c55778647dc82fe7095cb20a5712083951))
|
|
137
|
+
|
|
138
|
+
- **metrics**: Rename execute method to execute_on_success
|
|
139
|
+
([`ac34809`](https://github.com/dimanu-py/instant-python/commit/ac34809dc85437768c9db23e429ddf44e2b622b5))
|
|
140
|
+
|
|
141
|
+
- **metrics**: Modify metrics middleware to take config snapshots to avoid errors when init command
|
|
142
|
+
finished its execution and config file is moved
|
|
143
|
+
([`0716f62`](https://github.com/dimanu-py/instant-python/commit/0716f62fc01aaf4c598e3580714110fcb9807fbd))
|
|
144
|
+
|
|
145
|
+
- **metrics**: Enhance UsageMetricsEvent with dependency_manager and adjust built_in_features
|
|
146
|
+
initialization
|
|
147
|
+
([`0281909`](https://github.com/dimanu-py/instant-python/commit/0281909b089a0bbfab5dc46dc8d0088e7ab0e59d))
|
|
148
|
+
|
|
149
|
+
- **metrics**: Update execute method to accept config_snapshot parameter and not need to read
|
|
150
|
+
configuration file
|
|
151
|
+
([`ee03fc9`](https://github.com/dimanu-py/instant-python/commit/ee03fc9cb1e1c391caf0d650dbbe9514eaef9131))
|
|
152
|
+
|
|
153
|
+
- **metrics**: Rename UsageMetricsData to UsageMetricsEvent for clarity
|
|
154
|
+
([`24a47ab`](https://github.com/dimanu-py/instant-python/commit/24a47ab97fc30bd7f9ad43a4acbb6a3573b1dacc))
|
|
155
|
+
|
|
156
|
+
- **metrics**: Simplify UsageMetricsSender initialization by removing repository parameter
|
|
157
|
+
([`e5d5917`](https://github.com/dimanu-py/instant-python/commit/e5d5917df1044368f709183b0d5fa0a2c0bf41aa))
|
|
158
|
+
|
|
159
|
+
- **metrics**: Rename method to improve clarity in config reading
|
|
160
|
+
([`9468e1a`](https://github.com/dimanu-py/instant-python/commit/9468e1a4ed7d96ef69c4eae1b4a52f712fdb37b9))
|
|
161
|
+
|
|
162
|
+
- **metrics**: Update ConfigSnapshotCreator to utilize for_metrics method for improved config
|
|
163
|
+
handling
|
|
164
|
+
([`2ce0140`](https://github.com/dimanu-py/instant-python/commit/2ce0140eda8234fdcf722b7d0ef3c48ee612ce59))
|
|
165
|
+
|
|
166
|
+
- **config**: Improve error handling in configuration file loading
|
|
167
|
+
([`1114c17`](https://github.com/dimanu-py/instant-python/commit/1114c17d570b989d85245dd0a032aeaf2a9af9f5))
|
|
168
|
+
|
|
169
|
+
- **metrics**: Extract configuration data handling into a separate method and streamline metrics
|
|
170
|
+
data creation
|
|
171
|
+
([`e316523`](https://github.com/dimanu-py/instant-python/commit/e31652391e93f7da8c254a4e8283792eeb62f63e))
|
|
172
|
+
|
|
173
|
+
- **metrics**: Simplify execute method by removing success and error message parameters now that it
|
|
174
|
+
will be handled automatically by posthog reporter
|
|
175
|
+
([`77469a9`](https://github.com/dimanu-py/instant-python/commit/77469a93fb411ef5ce6c8d000b25da1d2c9bc700))
|
|
176
|
+
|
|
177
|
+
- **metrics**: Rename get_distinct_id method to get_or_create_distinct_id for clarity
|
|
178
|
+
([`0a068c7`](https://github.com/dimanu-py/instant-python/commit/0a068c7e6903e00a590d76b058510627108be592))
|
|
179
|
+
|
|
180
|
+
- **metrics**: Rename metric reporter classes for consistency
|
|
181
|
+
([`15f122f`](https://github.com/dimanu-py/instant-python/commit/15f122f472c3e270e2ec3461be626c9b874eb12d))
|
|
182
|
+
|
|
183
|
+
- **metrics**: Remove success an error message data from metrics object as posthog is configured to
|
|
184
|
+
report errors automatically
|
|
185
|
+
([`0f4eb0b`](https://github.com/dimanu-py/instant-python/commit/0f4eb0b94f5fbe63477a8da6586ad39d74219125))
|
|
186
|
+
|
|
187
|
+
- **metrics**: Update post hog metric reporter to use user identity manager and create consistent
|
|
188
|
+
distinct ids
|
|
189
|
+
([`b5ad406`](https://github.com/dimanu-py/instant-python/commit/b5ad406236641adaad3590a767245caad610427f))
|
|
190
|
+
|
|
191
|
+
- **metrics**: Set config dir to be the .config folder of user system if is not passed and extract
|
|
192
|
+
named variables to improve readability
|
|
193
|
+
([`2e54e8e`](https://github.com/dimanu-py/instant-python/commit/2e54e8edc72ca118f47222302d4fa6c2c2e94556))
|
|
194
|
+
|
|
195
|
+
- **metrics**: Modify distinct ID handling to improve readability and maintainability
|
|
196
|
+
([`aa8d52b`](https://github.com/dimanu-py/instant-python/commit/aa8d52b462f486c47a72a3c33cc2d392ae726249))
|
|
197
|
+
|
|
198
|
+
- **metrics**: Use usage metrics data class for send method in metric reporter
|
|
199
|
+
([`96393c2`](https://github.com/dimanu-py/instant-python/commit/96393c27088fbfb691b9c0fbb205bdd31f609ad2))
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
## v0.20.0 (2025-12-05)
|
|
203
|
+
|
|
204
|
+
### ✨ Features
|
|
205
|
+
|
|
206
|
+
- **schema**: Add JSON schema for custom project template structure to enable syntax and key/value
|
|
207
|
+
detection
|
|
208
|
+
([`bf918b5`](https://github.com/dimanu-py/instant-python/commit/bf918b5b1efdcb9ddc38786814a5038144ca958b))
|
|
209
|
+
|
|
210
|
+
- **schema**: Add JSON schema for instant-python project configuration to enable syntax and
|
|
211
|
+
key/value detection when modifying ipy config file manually
|
|
212
|
+
([`2e3d4f7`](https://github.com/dimanu-py/instant-python/commit/2e3d4f786020ead95324784497015e698477a891))
|
|
213
|
+
|
|
214
|
+
- **templates**: Add autostyle command to makefile to automatically format, lint and commit modified
|
|
215
|
+
files
|
|
216
|
+
([`96c4610`](https://github.com/dimanu-py/instant-python/commit/96c46109c811198b70598df2c9f3e0674f6be1e7))
|
|
217
|
+
|
|
218
|
+
- **initialize**: Implement 'write' method in yaml config repository to be able to write ipy config
|
|
219
|
+
file in working directory
|
|
220
|
+
([`ca04b4c`](https://github.com/dimanu-py/instant-python/commit/ca04b4c97392970399ed7b8a6e3a86984ed6779b))
|
|
221
|
+
|
|
222
|
+
- **initialize**: Add 'write' method to config repository to be able to use it with config command
|
|
223
|
+
and move it to shared
|
|
224
|
+
([`e081a34`](https://github.com/dimanu-py/instant-python/commit/e081a342ccac66e45cef0cad728681c5aa9f301d))
|
|
225
|
+
|
|
226
|
+
### ⚙️ Build System
|
|
227
|
+
|
|
228
|
+
- **makefile**: Add command to makefile to automatically format, lint and commit modified files
|
|
229
|
+
([`2837703`](https://github.com/dimanu-py/instant-python/commit/28377039628f755b503192aef85723f3e3b4704c))
|
|
230
|
+
|
|
231
|
+
- **pyproject**: Add posthog dependency
|
|
232
|
+
([`b3df1c0`](https://github.com/dimanu-py/instant-python/commit/b3df1c0587709a39e9e702142bdad4e8e293b07a))
|
|
233
|
+
|
|
234
|
+
- **makefile**: Modify add-dep and remove-dep commands in makefile to not need scripts files
|
|
235
|
+
([`b9d5286`](https://github.com/dimanu-py/instant-python/commit/b9d528636f5a051c865f4ea45196443ff322b55e))
|
|
236
|
+
|
|
237
|
+
### ♻️ Refactoring
|
|
238
|
+
|
|
239
|
+
- **templates**: Rename all templates for project structure to remove the '.j2' extension as it is
|
|
240
|
+
not need it
|
|
241
|
+
([`cde9f87`](https://github.com/dimanu-py/instant-python/commit/cde9f87670273e6711fd08919c525208e7075fd9))
|
|
242
|
+
|
|
243
|
+
- **initialize**: Modify file name for project structure template to not include j2 extension
|
|
244
|
+
([`e8cd1f1`](https://github.com/dimanu-py/instant-python/commit/e8cd1f1aadb637f0a359783f11f95b164ca4cbd8))
|
|
245
|
+
|
|
246
|
+
- **cli**: Modify main callback to print ipy help if no subcommand is called
|
|
247
|
+
([`1784a3d`](https://github.com/dimanu-py/instant-python/commit/1784a3d129253cd197640680fbd85351ff074ec8))
|
|
248
|
+
|
|
249
|
+
- **initialize**: Move config repository port and its adapter to shared folder so it can be properly
|
|
250
|
+
shared among commands
|
|
251
|
+
([`438f89c`](https://github.com/dimanu-py/instant-python/commit/438f89cdf75ff58ce0477e88a54cad55ad4e93ae))
|
|
252
|
+
|
|
253
|
+
- **config**: Remove legacy config writer now that its behavior has been unified in the config
|
|
254
|
+
repository
|
|
255
|
+
([`3bcd3c9`](https://github.com/dimanu-py/instant-python/commit/3bcd3c9d858e342d9deca9bdc7bcd5db766de94b))
|
|
256
|
+
|
|
257
|
+
- **config**: Extract semantic method to keep use case with the same abstraction level and make it
|
|
258
|
+
more readable
|
|
259
|
+
([`7077e6a`](https://github.com/dimanu-py/instant-python/commit/7077e6a50a23df5e3d080b89265a935d83d8d68c))
|
|
260
|
+
|
|
261
|
+
- **config**: Modify config generator dependency to receive a config repository instead of a config
|
|
262
|
+
writer
|
|
263
|
+
([`89ed351`](https://github.com/dimanu-py/instant-python/commit/89ed35135d679a4fb4375eece5329162c454fb91))
|
|
264
|
+
|
|
265
|
+
- **initialize**: Modify 'write' method so it uses absolute config file path instead of creating it
|
|
266
|
+
([`5acc795`](https://github.com/dimanu-py/instant-python/commit/5acc795ba127292d5144d18da3ba718faf880b9e))
|
|
267
|
+
|
|
268
|
+
- **shared**: Make default config file path absolute from users root folder to avoid incorrect
|
|
269
|
+
destination and relative path errors
|
|
270
|
+
([`074e4a7`](https://github.com/dimanu-py/instant-python/commit/074e4a76f5319f2d167243935ca449a3ff80ca10))
|
|
271
|
+
|
|
272
|
+
|
|
5
273
|
## v0.19.1 (2025-11-27)
|
|
6
274
|
|
|
7
275
|
### 🪲 Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: instant-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.21.0
|
|
4
4
|
Summary: Instant boilerplate generation for Python projects
|
|
5
5
|
Project-URL: documentation, https://dimanu-py.github.io/instant-python/
|
|
6
6
|
Project-URL: repository, https://github.com/dimanu-py/instant-python/
|
|
@@ -220,6 +220,9 @@ Classifier: Topic :: System :: Installation/Setup
|
|
|
220
220
|
Classifier: Topic :: System :: Shells
|
|
221
221
|
Requires-Python: >=3.9
|
|
222
222
|
Requires-Dist: jinja2>=3.1.6
|
|
223
|
+
Requires-Dist: platformdirs>=4.4.0
|
|
224
|
+
Requires-Dist: posthog>=6.9.3
|
|
225
|
+
Requires-Dist: pydantic-settings>=2.11.0
|
|
223
226
|
Requires-Dist: pyyaml>=6.0.2
|
|
224
227
|
Requires-Dist: questionary>=2.1.0
|
|
225
228
|
Requires-Dist: typer>=0.15.1
|
|
@@ -280,10 +283,12 @@ so can quickly find what you need.
|
|
|
280
283
|
|
|
281
284
|
- [Installation]: begin by learning how to install `instant-python`.
|
|
282
285
|
- [First Steps]: get started with the basic features of `instant-python`.
|
|
286
|
+
- [Privacy & Metrics]: learn about the anonymous usage data we collect and how to opt out.
|
|
283
287
|
- [Advanced Usage and Customization]: explore advanced features and customization options.
|
|
284
288
|
|
|
285
289
|
[Installation]: https://dimanu-py.github.io/instant-python/getting_started/installation/
|
|
286
290
|
[First Steps]: https://dimanu-py.github.io/instant-python/getting_started/first_steps/
|
|
291
|
+
[Privacy & Metrics]: https://dimanu-py.github.io/instant-python/getting_started/privacy_and_metrics/
|
|
287
292
|
[Advanced Usage and Customization]: https://dimanu-py.github.io/instant-python/guide/
|
|
288
293
|
|
|
289
294
|
### For Developers
|
|
@@ -304,14 +309,23 @@ so can quickly find what you need.
|
|
|
304
309
|
[GitHub Discussions]: https://github.com/dimanu-py/instant-python/discussions
|
|
305
310
|
[GitHub Issues]: https://github.com/dimanu-py/instant-python/issues
|
|
306
311
|
|
|
307
|
-
|
|
312
|
+
## 🔒 Privacy & Usage Metrics
|
|
308
313
|
|
|
309
|
-
|
|
310
|
-
|
|
314
|
+
To improve `instant-python` and provide a better experience, we collect **anonymous usage metrics**.
|
|
315
|
+
No personal or sensitive information is collected.
|
|
311
316
|
|
|
312
|
-
|
|
317
|
+
**What we collect:**
|
|
318
|
+
- Command executed and IPY version
|
|
319
|
+
- Operating system type
|
|
320
|
+
- Python version, dependency manager, and template choices
|
|
321
|
+
- Error types (when commands fail)
|
|
313
322
|
|
|
314
|
-
|
|
315
|
-
|
|
323
|
+
**What we DON'T collect:**
|
|
324
|
+
- No file paths, project names, or code content
|
|
325
|
+
- No personal information or IP addresses
|
|
326
|
+
|
|
327
|
+
**How to opt out:**
|
|
328
|
+
Set the environment variable `IPY_METRICS_ENABLE=false`
|
|
329
|
+
|
|
330
|
+
For complete details, see our [Privacy & Metrics documentation](https://dimanu-py.github.io/instant-python/getting_started/privacy_and_metrics/).
|
|
316
331
|
|
|
317
|
-
[//]: # (passing the `--no-track` option to any command.)
|
|
@@ -51,10 +51,12 @@ so can quickly find what you need.
|
|
|
51
51
|
|
|
52
52
|
- [Installation]: begin by learning how to install `instant-python`.
|
|
53
53
|
- [First Steps]: get started with the basic features of `instant-python`.
|
|
54
|
+
- [Privacy & Metrics]: learn about the anonymous usage data we collect and how to opt out.
|
|
54
55
|
- [Advanced Usage and Customization]: explore advanced features and customization options.
|
|
55
56
|
|
|
56
57
|
[Installation]: https://dimanu-py.github.io/instant-python/getting_started/installation/
|
|
57
58
|
[First Steps]: https://dimanu-py.github.io/instant-python/getting_started/first_steps/
|
|
59
|
+
[Privacy & Metrics]: https://dimanu-py.github.io/instant-python/getting_started/privacy_and_metrics/
|
|
58
60
|
[Advanced Usage and Customization]: https://dimanu-py.github.io/instant-python/guide/
|
|
59
61
|
|
|
60
62
|
### For Developers
|
|
@@ -75,14 +77,23 @@ so can quickly find what you need.
|
|
|
75
77
|
[GitHub Discussions]: https://github.com/dimanu-py/instant-python/discussions
|
|
76
78
|
[GitHub Issues]: https://github.com/dimanu-py/instant-python/issues
|
|
77
79
|
|
|
78
|
-
|
|
80
|
+
## 🔒 Privacy & Usage Metrics
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
To improve `instant-python` and provide a better experience, we collect **anonymous usage metrics**.
|
|
83
|
+
No personal or sensitive information is collected.
|
|
82
84
|
|
|
83
|
-
|
|
85
|
+
**What we collect:**
|
|
86
|
+
- Command executed and IPY version
|
|
87
|
+
- Operating system type
|
|
88
|
+
- Python version, dependency manager, and template choices
|
|
89
|
+
- Error types (when commands fail)
|
|
84
90
|
|
|
85
|
-
|
|
86
|
-
|
|
91
|
+
**What we DON'T collect:**
|
|
92
|
+
- No file paths, project names, or code content
|
|
93
|
+
- No personal information or IP addresses
|
|
94
|
+
|
|
95
|
+
**How to opt out:**
|
|
96
|
+
Set the environment variable `IPY_METRICS_ENABLE=false`
|
|
97
|
+
|
|
98
|
+
For complete details, see our [Privacy & Metrics documentation](https://dimanu-py.github.io/instant-python/getting_started/privacy_and_metrics/).
|
|
87
99
|
|
|
88
|
-
[//]: # (passing the `--no-track` option to any command.)
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Privacy and Usage Metrics
|
|
2
|
+
|
|
3
|
+
!!! info "Anonymous Usage Data"
|
|
4
|
+
To improve `instant-python` and provide a better experience to all users, we collect **anonymous usage metrics**.
|
|
5
|
+
No personal or sensitive information is collected.
|
|
6
|
+
|
|
7
|
+
This page explains what data we collect, why we collect it, and how to disable it if you prefer.
|
|
8
|
+
|
|
9
|
+
## Why We Collect Metrics
|
|
10
|
+
|
|
11
|
+
We collect anonymous usage data to:
|
|
12
|
+
|
|
13
|
+
- 📊 **Understand which features are most used** - This helps us prioritize improvements and new features
|
|
14
|
+
- 🐛 **Identify common errors** - We can proactively fix bugs that users encounter
|
|
15
|
+
- 🚀 **Improve user experience** - By understanding how people use the tool, we can make it better
|
|
16
|
+
- 📈 **Make data-driven decisions** - We can focus our efforts on what matters most to the community
|
|
17
|
+
|
|
18
|
+
**Your privacy is important to us.** We only collect the minimum data necessary to achieve these goals,
|
|
19
|
+
and we never collect personal information like file paths, project names, or any code content.
|
|
20
|
+
|
|
21
|
+
## What Data We Collect
|
|
22
|
+
|
|
23
|
+
### On Successful Command Execution
|
|
24
|
+
|
|
25
|
+
When you successfully run an `ipy` command, we collect:
|
|
26
|
+
|
|
27
|
+
| Data Field | Description | Example |
|
|
28
|
+
|------------|-------------|----------------------------------------------|
|
|
29
|
+
| `ipy_version` | The version of instant-python you're using | `0.20.0` |
|
|
30
|
+
| `operating_system` | Your operating system | `Linux`, `Darwin`, `Windows` |
|
|
31
|
+
| `command` | The command you executed | `config`, `init` |
|
|
32
|
+
| `python_version` | The Python version you configured | `3.12` |
|
|
33
|
+
| `dependency_manager` | The package manager you selected | `pdm`, `uv` |
|
|
34
|
+
| `template` | The project template you chose | `domain_driven_design`, `clean_architecture` |
|
|
35
|
+
| `built_in_features` | List of features you enabled | `["makefile", "value_objects"]` |
|
|
36
|
+
|
|
37
|
+
### On Command Errors
|
|
38
|
+
|
|
39
|
+
When a command fails with an error, we collect:
|
|
40
|
+
|
|
41
|
+
| Data Field | Description | Example |
|
|
42
|
+
|------------|-------------|---------|
|
|
43
|
+
| `ipy_version` | The version of instant-python you're using | `1.2.3` |
|
|
44
|
+
| `operating_system` | Your operating system | `Linux`, `Darwin`, `Windows` |
|
|
45
|
+
| `command` | The command that failed | `config`, `init` |
|
|
46
|
+
| `error_type` | The type of error that occurred | `FileNotFoundError`, `ValueError` |
|
|
47
|
+
| `error_message` | The error message | `Configuration file not found` |
|
|
48
|
+
|
|
49
|
+
## What We DON'T Collect
|
|
50
|
+
|
|
51
|
+
We want to be transparent about what we **do not** collect:
|
|
52
|
+
|
|
53
|
+
- ❌ **No personal information** - We don't collect your name, email, IP address, or any identifiable information
|
|
54
|
+
- ❌ **No file paths** - We never collect the paths where you create projects
|
|
55
|
+
- ❌ **No project names** - Your project names remain completely private
|
|
56
|
+
- ❌ **No code content** - We never collect any of your code or file contents
|
|
57
|
+
- ❌ **No environment variables** - Except for the opt-out flag, we don't read your environment
|
|
58
|
+
|
|
59
|
+
## How to Disable Metrics Collection
|
|
60
|
+
|
|
61
|
+
If you prefer not to send usage metrics, you can easily disable this feature.
|
|
62
|
+
|
|
63
|
+
Set the `IPY_METRICS_ENABLE` environment variable to `false` or `0`:
|
|
64
|
+
|
|
65
|
+
### Linux/macOS
|
|
66
|
+
|
|
67
|
+
- Bash/Zsh:
|
|
68
|
+
|
|
69
|
+
For a single command run:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
IPY_METRICS_ENABLE=false ipy config
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Permanently in your shell profile (_~/.bashrc_, _~/.zshrc_, etc.)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
export IPY_METRICS_ENABLE=false
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
- Fish:
|
|
82
|
+
|
|
83
|
+
For a single command run:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
env IPY_METRICS_ENABLE=false ipy config
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Permanently in your shell profile (_~/.config/fish/config.fish_)
|
|
90
|
+
|
|
91
|
+
```fish
|
|
92
|
+
set -Ux IPY_METRICS_ENABLE false
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Windows
|
|
96
|
+
|
|
97
|
+
- PowerShell
|
|
98
|
+
|
|
99
|
+
For a single command:
|
|
100
|
+
|
|
101
|
+
```powershell
|
|
102
|
+
$env:IPY_METRICS_ENABLE="false"; ipy config
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Permanently for the current user:
|
|
106
|
+
|
|
107
|
+
```powershell
|
|
108
|
+
[Environment]::SetEnvironmentVariable("IPY_METRICS_ENABLE", "false", "User")
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
- CMD
|
|
112
|
+
|
|
113
|
+
For a single command
|
|
114
|
+
```cmd
|
|
115
|
+
set IPY_METRICS_ENABLE=false && ipy config
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Permanently for the current user:
|
|
119
|
+
|
|
120
|
+
```cmd
|
|
121
|
+
setx IPY_METRICS_ENABLE "false"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Questions or Concerns?
|
|
125
|
+
|
|
126
|
+
If you have any questions or concerns about our data collection practices:
|
|
127
|
+
|
|
128
|
+
- 💬 Start a discussion on [GitHub Discussions]
|
|
129
|
+
- 🐛 Report issues on [GitHub Issues]
|
|
130
|
+
- 🔒 For security concerns, see our [Security Policy]
|
|
131
|
+
|
|
132
|
+
We're committed to transparency and respect for your privacy. Thank you for helping us improve `instant-python`!
|
|
133
|
+
|
|
134
|
+
[GitHub Discussions]: https://github.com/dimanu-py/instant-python/discussions
|
|
135
|
+
[GitHub Issues]: https://github.com/dimanu-py/instant-python/issues
|
|
136
|
+
[Security Policy]: ../development/security.md
|
|
137
|
+
|
|
@@ -9,6 +9,7 @@ project.
|
|
|
9
9
|
|
|
10
10
|
- [Overview](#overview) - What the config command does
|
|
11
11
|
- [Usage](#usage) - How to run the config command
|
|
12
|
+
- [JSON Schema Support](#json-schema-support) - IDE autocompletion and validation
|
|
12
13
|
- [Configuration File Structure](#configuration-file-structure-and-restrictions) - All available options and their restrictions
|
|
13
14
|
- [General](#general) - Project metadata
|
|
14
15
|
- [Template](#template) - Project structure and features
|
|
@@ -113,6 +114,69 @@ Each dependency can have the following fields and restrictions:
|
|
|
113
114
|
| `development` | Whether the dependency is a development dependency. | Must be either `true` or `false`. | No |
|
|
114
115
|
| `group` | The development dependency group. | Only available if `development` is `true`. | Based on restrictions |
|
|
115
116
|
|
|
117
|
+
## JSON Schema Support
|
|
118
|
+
|
|
119
|
+
`instant-python` provides a JSON Schema to help you write and validate your configuration files with autocompletion and validation in your IDE.
|
|
120
|
+
|
|
121
|
+
### What is a JSON Schema?
|
|
122
|
+
|
|
123
|
+
A JSON Schema is a specification that defines the structure and validation rules for JSON and YAML files. By using a schema, your IDE can:
|
|
124
|
+
|
|
125
|
+
- **Autocomplete** field names and values
|
|
126
|
+
- **Validate** your configuration in real-time
|
|
127
|
+
- **Show inline documentation** for each field
|
|
128
|
+
- **Detect errors** before running the command
|
|
129
|
+
|
|
130
|
+
### How to Use the Schema
|
|
131
|
+
|
|
132
|
+
The schema is available at:
|
|
133
|
+
```
|
|
134
|
+
https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
!!! tip "Schema autodetection"
|
|
138
|
+
If your configuration file is named `ipy.yml`, some IDEs may automatically detect and apply the schema
|
|
139
|
+
from [SchemaStore](https://www.schemastore.org/). However, as it may take some time to updated and listed there,
|
|
140
|
+
we recommend configuring it manually to ensure you are using the latest version.
|
|
141
|
+
|
|
142
|
+
#### For Visual Studio Code
|
|
143
|
+
|
|
144
|
+
Add the following line at the top of your `ipy.yml` file:
|
|
145
|
+
|
|
146
|
+
```yaml
|
|
147
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json
|
|
148
|
+
|
|
149
|
+
general:
|
|
150
|
+
slug: my-project
|
|
151
|
+
# ...
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Alternatively, you can configure it globally in your VS Code settings (`.vscode/settings.json`):
|
|
155
|
+
|
|
156
|
+
```json
|
|
157
|
+
{
|
|
158
|
+
"yaml.schemas": {
|
|
159
|
+
"https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json": "ipy.yml"
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
#### For PyCharm / IntelliJ IDEA
|
|
165
|
+
|
|
166
|
+
1. Open your `ipy.yml` file
|
|
167
|
+
2. At the top of the file, add:
|
|
168
|
+
```yaml
|
|
169
|
+
# yaml-language-server: $schema=https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json
|
|
170
|
+
```
|
|
171
|
+
3. PyCharm will automatically detect and use the schema
|
|
172
|
+
|
|
173
|
+
Alternatively, you can configure it manually:
|
|
174
|
+
|
|
175
|
+
1. Go to **Settings** → **Languages & Frameworks** → **Schemas and DTDs** → **JSON Schema Mappings**
|
|
176
|
+
2. Click the **+** button to add a new mapping
|
|
177
|
+
3. Set the **Schema URL** to: `https://raw.githubusercontent.com/dimanu-py/instant-python/main/schemas/ipy-schema.json`
|
|
178
|
+
4. Add a file pattern: `ipy.yml`
|
|
179
|
+
|
|
116
180
|
## Configuration File Examples
|
|
117
181
|
|
|
118
182
|
### Without initializing a git repository
|