hyperi-ci 2.2.2__tar.gz → 2.2.3__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.
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/CHANGELOG.md +9 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/PKG-INFO +2 -1
- hyperi_ci-2.2.3/VERSION +1 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/pyproject.toml +19 -2
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/detect.py +73 -7
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/test_detect_tier.py +99 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/uv.lock +9 -248
- hyperi_ci-2.2.2/VERSION +0 -1
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/.ai-version +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/doco.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/load.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/review.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/save.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/setup-claude.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/simplify.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/commands/standards.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/UNIVERSAL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/ai-conduct.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/ansible.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/bash.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/chars-policy.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/ci.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/clickhouse-sql.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/code-header.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/code-style.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/config-and-logging.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/cpp.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/design-principles.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/dfe-metrics.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/docker.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/error-handling.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/git.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/golang.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/issue-management.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/k8s.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/licensing.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/mocks-policy.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/pki.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/python.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/repo-naming.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/rust.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/security.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/sql-clickhouse.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/terraform.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/testing.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/typescript.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/rules/universal.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/settings.json +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/ai-common/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/ai-guidelines/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/bleeding-edge/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/ci-check/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/ci-logs/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/ci-watch/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/deps/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/docs-audit/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/documentation/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/python/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/release/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/standards/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/test-review/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.claude/skills/verification/SKILL.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.gitattributes +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/actions/predict-version/action.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/workflows/_release-tail.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/workflows/ci.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/workflows/go-ci.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/workflows/python-ci.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/workflows/rust-ci.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.github/workflows/ts-ci.yml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.gitignore +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.gitmodules +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.hyperi-ci.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.mcp.json +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/.releaserc.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/AI-TRAINING-POLICY.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/CLAUDE.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/LICENSE +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/README.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/STATE.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/TODO.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/config/commit-types.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/config/org.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/config/runners.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/config/secrets-access.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/config/versions.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/ARC-RUNNERS.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/ARCHITECTURE.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/CI-LESSONS.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/DESIGN.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/JFROG-MIGRATION.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/MIGRATION-GUIDE.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/PGO-WORKLOAD-GUIDE.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/deployment-contract.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/migration/deployment-contract-tier3.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/rust.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/docs/typescript.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/renovate.json +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/robots.txt +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/scripts/pre-commit-versions.sh +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/scripts/setup-rust-dev.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/scripts/sync-secrets-access.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/scripts/update-versions.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/cli.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/common.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/defaults.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/native-deps/golang.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/native-deps/python.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/native-deps/rust.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/native-deps/typescript.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/org.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/toolchains/gcc.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config/toolchains/llvm.yaml +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/config.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/binary_stage.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/build.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/compose.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/detect.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/labels.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/manifest.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/registry.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/stage.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/container/templates.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/cli.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/contract.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/registry.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/scaffold.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/deployment/stage.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/detect.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/dispatch.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/gh.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/init.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/install_deps.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/_build_common.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/golang/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/golang/build.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/golang/publish.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/golang/quality.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/golang/test.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/python/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/python/build.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/python/publish.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/python/quality.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/python/test.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/quality_common.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/build.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/optimize.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/pgo.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/publish.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/quality.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/rust/test.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/_common.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/build.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/install_deps.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/publish.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/quality.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/languages/typescript/test.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/logs.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/migrate.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/native_deps.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/publish/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/publish/binaries.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/publish/dispatch.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/publish_binaries.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/push.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/quality/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/quality/commit_validation.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/quality/gitleaks.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/release.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/trigger.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/upgrade.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/src/hyperi_ci/watch.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/templates/pgo-workload/README.md +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/templates/pgo-workload/grpc-server.sh +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/templates/pgo-workload/http-server.sh +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/templates/pgo-workload/kafka-consumer.sh +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/templates/pgo-workload/kafka-producer.sh +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/templates/pgo-workload/multi-protocol.sh +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/integration/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/integration/test_rust_build_optimize.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/__init__.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/test_contract.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/test_emit_artefacts_cli.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/test_registry_cascade.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/test_scaffold.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/deployment/test_stage.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_cli.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_commit_validation.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_common.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_config.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_binary_stage.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_build.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_compose.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_detect.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_labels.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_manifest.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_registry.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_stage.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_container_templates.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_detect.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_dispatch_alias.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_dispatch_status.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_gh.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_init.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_migrate.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_native_deps.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_publish.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_push.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_rust_optimize.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_rust_pgo.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_rust_quality.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_typescript_quality.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_upgrade.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_watch.py +0 -0
- {hyperi_ci-2.2.2 → hyperi_ci-2.2.3}/tests/unit/test_workflow_consistency.py +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [2.2.3](https://github.com/hyperi-io/hyperi-ci/compare/v2.2.2...v2.2.3) (2026-05-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **deployment:** exclude self-name from tier detection ([f61921b](https://github.com/hyperi-io/hyperi-ci/commit/f61921b9b0dcfe36c3c1809b0bacbedee4c78386))
|
|
7
|
+
* **deps:** declare typer explicitly in runtime dependencies ([895a4a6](https://github.com/hyperi-io/hyperi-ci/commit/895a4a637e2f7f55bd74e2276ddb51f9184fc7cd))
|
|
8
|
+
* **deps:** remove editable pylib source override to unblock Dependabot graph ([a4f1b28](https://github.com/hyperi-io/hyperi-ci/commit/a4f1b28551758e0e1287bf931f60e52194076021))
|
|
9
|
+
|
|
1
10
|
## [2.2.2](https://github.com/hyperi-io/hyperi-ci/compare/v2.2.1...v2.2.2) (2026-05-13)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hyperi-ci
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.3
|
|
4
4
|
Summary: HyperI CI/CD CLI tool — multi-language build, test, and publish automation
|
|
5
5
|
License: Proprietary
|
|
6
6
|
License-File: LICENSE
|
|
@@ -10,3 +10,4 @@ Requires-Dist: packaging>=26.0
|
|
|
10
10
|
Requires-Dist: pydantic>=2.13
|
|
11
11
|
Requires-Dist: pyyaml>=6.0
|
|
12
12
|
Requires-Dist: tomli-w>=1.2.0
|
|
13
|
+
Requires-Dist: typer>=0.25
|
hyperi_ci-2.2.3/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.2.3
|
|
@@ -23,6 +23,11 @@ dependencies = [
|
|
|
23
23
|
"pydantic>=2.13",
|
|
24
24
|
"pyyaml>=6.0",
|
|
25
25
|
"tomli-w>=1.2.0",
|
|
26
|
+
# typer is used directly by src/hyperi_ci/cli.py — declare
|
|
27
|
+
# explicitly rather than relying on the transitive pull from
|
|
28
|
+
# hyperi-pylib's CLI infra. If pylib ever drops typer, this
|
|
29
|
+
# keeps us pinned to a known surface.
|
|
30
|
+
"typer>=0.25",
|
|
26
31
|
]
|
|
27
32
|
|
|
28
33
|
[project.scripts]
|
|
@@ -83,8 +88,20 @@ source = ["hyperi_ci"]
|
|
|
83
88
|
# Keep this low so `pytest --cov` reports without failing the run.
|
|
84
89
|
fail_under = 30
|
|
85
90
|
|
|
86
|
-
[tool.uv.sources]
|
|
87
|
-
|
|
91
|
+
# NOTE: no [tool.uv.sources] block here on purpose.
|
|
92
|
+
#
|
|
93
|
+
# Tempting to point `hyperi-pylib` at a local editable checkout
|
|
94
|
+
# (/projects/hyperi-pylib) so dev changes flow through `uv sync`,
|
|
95
|
+
# but that breaks two things:
|
|
96
|
+
# - Dependabot's update_graph job can't resolve the path inside its
|
|
97
|
+
# container — fails on every push to main, leaving the dep-graph
|
|
98
|
+
# stale and GitHub's vulnerability banner inaccurate.
|
|
99
|
+
# - Reproducibility for anyone whose checkout isn't at that exact
|
|
100
|
+
# path.
|
|
101
|
+
#
|
|
102
|
+
# For local pylib co-development, run from this repo:
|
|
103
|
+
# uv pip install -e /path/to/hyperi-pylib
|
|
104
|
+
# Manual install is per-developer scratch state; not in pyproject.
|
|
88
105
|
|
|
89
106
|
[dependency-groups]
|
|
90
107
|
dev = [
|
|
@@ -94,25 +94,91 @@ def _depends_on(manifest: Path, package_name: str) -> bool:
|
|
|
94
94
|
dependencies = ["hyperi-pylib>=2.24"]
|
|
95
95
|
dependencies = ["hyperi-pylib[metrics]>=2.24"]
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
**Self-match exclusion.** If the manifest declares its own package
|
|
98
|
+
name as ``package_name`` (i.e. this manifest IS the library, not a
|
|
99
|
+
consumer of it), returns False. Without this, the library's own
|
|
100
|
+
repo gets misdispatched as a Tier 1/2 consumer and the
|
|
101
|
+
deployment-artefact producer fails with "no Rust binary found" /
|
|
102
|
+
equivalent. The check is generic — applies to any rustlib /
|
|
103
|
+
pylib / future *lib and to consumer projects whose own name
|
|
104
|
+
happens to share a prefix.
|
|
105
|
+
|
|
106
|
+
Doesn't try to parse TOML beyond pulling the ``name`` field out of
|
|
107
|
+
a recognised top-level section because:
|
|
108
|
+
|
|
98
109
|
1. Avoids hauling `tomllib` in just for tier detection.
|
|
99
110
|
2. Catches every form (workspace inheritance, extras, comments)
|
|
100
111
|
that a stricter parse would have to handle case by case.
|
|
101
|
-
3. False positives
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
the binary fails clearly" rather than silent miscategorisation.
|
|
112
|
+
3. False positives in the dep-match are bounded: the consequence
|
|
113
|
+
is "we try to invoke generate-artefacts and the binary fails
|
|
114
|
+
clearly" rather than silent miscategorisation.
|
|
105
115
|
|
|
106
116
|
Args:
|
|
107
117
|
manifest: Path to Cargo.toml or pyproject.toml.
|
|
108
118
|
package_name: Dependency name to look for.
|
|
109
119
|
|
|
110
120
|
Returns:
|
|
111
|
-
True if the substring appears
|
|
121
|
+
True if the substring appears AND the manifest isn't itself
|
|
122
|
+
the named package; False otherwise.
|
|
112
123
|
|
|
113
124
|
"""
|
|
114
125
|
try:
|
|
115
126
|
text = manifest.read_text(encoding="utf-8", errors="replace")
|
|
116
127
|
except OSError:
|
|
117
128
|
return False
|
|
118
|
-
|
|
129
|
+
if package_name not in text:
|
|
130
|
+
return False
|
|
131
|
+
return _manifest_self_name(text) != package_name
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
# Top-level tables whose ``name`` field is the manifest's own package
|
|
135
|
+
# name. Listed in scan precedence — the first match wins, so a Cargo
|
|
136
|
+
# manifest's ``[package] name`` beats any later table (unlikely in
|
|
137
|
+
# Cargo, but pyproject.toml can legitimately have both ``[project]``
|
|
138
|
+
# and ``[tool.poetry]`` and we treat them equivalently).
|
|
139
|
+
_SELF_NAME_SECTIONS: frozenset[str] = frozenset(
|
|
140
|
+
{"[package]", "[project]", "[tool.poetry]"}
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def _manifest_self_name(text: str) -> str | None:
|
|
145
|
+
"""Extract the manifest's own package name, if declared.
|
|
146
|
+
|
|
147
|
+
Scans for a ``name = "..."`` (or single-quoted) line inside one of
|
|
148
|
+
the recognised self-name sections (:data:`_SELF_NAME_SECTIONS`).
|
|
149
|
+
Returns the first match. No TOML parser — line-scoped, tolerant of
|
|
150
|
+
extra whitespace around ``=``.
|
|
151
|
+
|
|
152
|
+
Args:
|
|
153
|
+
text: Full manifest text.
|
|
154
|
+
|
|
155
|
+
Returns:
|
|
156
|
+
The declared package name, or ``None`` if no recognised
|
|
157
|
+
declaration is found.
|
|
158
|
+
|
|
159
|
+
"""
|
|
160
|
+
current_section: str | None = None
|
|
161
|
+
for raw in text.splitlines():
|
|
162
|
+
stripped = raw.strip()
|
|
163
|
+
if stripped.startswith("[") and stripped.endswith("]"):
|
|
164
|
+
current_section = stripped
|
|
165
|
+
continue
|
|
166
|
+
if current_section not in _SELF_NAME_SECTIONS:
|
|
167
|
+
continue
|
|
168
|
+
# Cheap pre-filter: skip lines that don't even start with "name".
|
|
169
|
+
if not stripped.startswith("name"):
|
|
170
|
+
continue
|
|
171
|
+
eq = stripped.find("=")
|
|
172
|
+
if eq < 0:
|
|
173
|
+
continue
|
|
174
|
+
# Confirm the LHS is exactly "name" (avoids matching "name-foo").
|
|
175
|
+
lhs = stripped[:eq].strip()
|
|
176
|
+
if lhs != "name":
|
|
177
|
+
continue
|
|
178
|
+
rhs = stripped[eq + 1 :].strip()
|
|
179
|
+
# Strip a trailing inline comment if present.
|
|
180
|
+
if "#" in rhs:
|
|
181
|
+
rhs = rhs[: rhs.index("#")].strip()
|
|
182
|
+
if len(rhs) >= 2 and rhs[0] in {'"', "'"} and rhs[-1] == rhs[0]:
|
|
183
|
+
return rhs[1:-1]
|
|
184
|
+
return None
|
|
@@ -120,6 +120,105 @@ class TestDetectTier:
|
|
|
120
120
|
assert detect_tier(tmp_path) == Tier.PYTHON
|
|
121
121
|
|
|
122
122
|
|
|
123
|
+
class TestSelfMatchExclusion:
|
|
124
|
+
"""A library's own repo is NOT a Tier 1/2 consumer of itself.
|
|
125
|
+
|
|
126
|
+
These tests cover the case where a library's Cargo.toml /
|
|
127
|
+
pyproject.toml has its own package name (e.g. `hyperi-rustlib`)
|
|
128
|
+
in the `[package]` / `[project]` table. The substring match would
|
|
129
|
+
otherwise misdetect the library as a consumer and dispatch the
|
|
130
|
+
Tier 1/2 producer, which then fails with "no binary found".
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
def test_hyperi_rustlib_own_repo_is_not_rust(self, tmp_path: Path) -> None:
|
|
134
|
+
# The library's own Cargo.toml has `name = "hyperi-rustlib"` in
|
|
135
|
+
# [package] but no `hyperi-rustlib = ...` dep line.
|
|
136
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
137
|
+
'[package]\nname = "hyperi-rustlib"\nversion = "2.7.0"\n',
|
|
138
|
+
encoding="utf-8",
|
|
139
|
+
)
|
|
140
|
+
assert detect_tier(tmp_path) == Tier.NONE
|
|
141
|
+
|
|
142
|
+
def test_hyperi_rustlib_with_self_in_dev_deps_still_excluded(
|
|
143
|
+
self, tmp_path: Path
|
|
144
|
+
) -> None:
|
|
145
|
+
# Hypothetical: library lists its own name in [dev-dependencies]
|
|
146
|
+
# for an example-binary workspace pattern. Still not a consumer.
|
|
147
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
148
|
+
'[package]\nname = "hyperi-rustlib"\nversion = "2.7.0"\n'
|
|
149
|
+
'[dev-dependencies]\nhyperi-rustlib = { path = "." }\n',
|
|
150
|
+
encoding="utf-8",
|
|
151
|
+
)
|
|
152
|
+
assert detect_tier(tmp_path) == Tier.NONE
|
|
153
|
+
|
|
154
|
+
def test_hyperi_pylib_own_repo_is_not_python(self, tmp_path: Path) -> None:
|
|
155
|
+
(tmp_path / "pyproject.toml").write_text(
|
|
156
|
+
'[project]\nname = "hyperi-pylib"\nversion = "2.24.0"\n',
|
|
157
|
+
encoding="utf-8",
|
|
158
|
+
)
|
|
159
|
+
assert detect_tier(tmp_path) == Tier.NONE
|
|
160
|
+
|
|
161
|
+
def test_hyperi_pylib_poetry_section_also_excluded(self, tmp_path: Path) -> None:
|
|
162
|
+
# Poetry-managed projects use [tool.poetry] instead of [project].
|
|
163
|
+
(tmp_path / "pyproject.toml").write_text(
|
|
164
|
+
'[tool.poetry]\nname = "hyperi-pylib"\nversion = "2.24.0"\n',
|
|
165
|
+
encoding="utf-8",
|
|
166
|
+
)
|
|
167
|
+
assert detect_tier(tmp_path) == Tier.NONE
|
|
168
|
+
|
|
169
|
+
def test_single_quoted_name_excluded(self, tmp_path: Path) -> None:
|
|
170
|
+
# TOML allows single-quoted strings — must still match.
|
|
171
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
172
|
+
"[package]\nname = 'hyperi-rustlib'\nversion = '2.7.0'\n",
|
|
173
|
+
encoding="utf-8",
|
|
174
|
+
)
|
|
175
|
+
assert detect_tier(tmp_path) == Tier.NONE
|
|
176
|
+
|
|
177
|
+
def test_consumer_with_real_dep_still_detected(self, tmp_path: Path) -> None:
|
|
178
|
+
# A real consumer has its own name AND lists the library as a dep.
|
|
179
|
+
# Self-match exclusion must not break this case.
|
|
180
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
181
|
+
'[package]\nname = "dfe-loader"\n[dependencies]\nhyperi-rustlib = "2.5"\n',
|
|
182
|
+
encoding="utf-8",
|
|
183
|
+
)
|
|
184
|
+
assert detect_tier(tmp_path) == Tier.RUST
|
|
185
|
+
|
|
186
|
+
def test_consumer_with_similar_prefix_not_misdetected(self, tmp_path: Path) -> None:
|
|
187
|
+
# `name = "hyperi-rustlib-extras"` should NOT count as self-match
|
|
188
|
+
# for `hyperi-rustlib` because the full string differs. This
|
|
189
|
+
# consumer DOES depend on hyperi-rustlib.
|
|
190
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
191
|
+
'[package]\nname = "hyperi-rustlib-extras"\n'
|
|
192
|
+
'[dependencies]\nhyperi-rustlib = "2.5"\n',
|
|
193
|
+
encoding="utf-8",
|
|
194
|
+
)
|
|
195
|
+
assert detect_tier(tmp_path) == Tier.RUST
|
|
196
|
+
|
|
197
|
+
def test_name_with_trailing_comment_handled(self, tmp_path: Path) -> None:
|
|
198
|
+
# Inline comments after the name field shouldn't break parsing.
|
|
199
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
200
|
+
'[package]\nname = "hyperi-rustlib" # the library itself\n',
|
|
201
|
+
encoding="utf-8",
|
|
202
|
+
)
|
|
203
|
+
assert detect_tier(tmp_path) == Tier.NONE
|
|
204
|
+
|
|
205
|
+
def test_name_outside_recognised_section_not_self_match(
|
|
206
|
+
self, tmp_path: Path
|
|
207
|
+
) -> None:
|
|
208
|
+
# A `name = "hyperi-rustlib"` in some other table (e.g.
|
|
209
|
+
# [features.something]) shouldn't count as the manifest's own
|
|
210
|
+
# name. We only treat [package] / [project] / [tool.poetry] as
|
|
211
|
+
# self-name sections.
|
|
212
|
+
(tmp_path / "Cargo.toml").write_text(
|
|
213
|
+
'[package]\nname = "consumer-app"\n'
|
|
214
|
+
"[features.weird]\n"
|
|
215
|
+
'name = "hyperi-rustlib"\n'
|
|
216
|
+
'[dependencies]\nhyperi-rustlib = "2.5"\n',
|
|
217
|
+
encoding="utf-8",
|
|
218
|
+
)
|
|
219
|
+
assert detect_tier(tmp_path) == Tier.RUST
|
|
220
|
+
|
|
221
|
+
|
|
123
222
|
class TestTierEnum:
|
|
124
223
|
"""`Tier` enum has the four values expected by callers."""
|
|
125
224
|
|
|
@@ -20,115 +20,6 @@ wheels = [
|
|
|
20
20
|
{ url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" },
|
|
21
21
|
]
|
|
22
22
|
|
|
23
|
-
[[package]]
|
|
24
|
-
name = "anyio"
|
|
25
|
-
version = "4.13.0"
|
|
26
|
-
source = { registry = "https://pypi.org/simple" }
|
|
27
|
-
dependencies = [
|
|
28
|
-
{ name = "idna" },
|
|
29
|
-
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
30
|
-
]
|
|
31
|
-
sdist = { url = "https://files.pythonhosted.org/packages/19/14/2c5dd9f512b66549ae92767a9c7b330ae88e1932ca57876909410251fe13/anyio-4.13.0.tar.gz", hash = "sha256:334b70e641fd2221c1505b3890c69882fe4a2df910cba14d97019b90b24439dc", size = 231622, upload-time = "2026-03-24T12:59:09.671Z" }
|
|
32
|
-
wheels = [
|
|
33
|
-
{ url = "https://files.pythonhosted.org/packages/da/42/e921fccf5015463e32a3cf6ee7f980a6ed0f395ceeaa45060b61d86486c2/anyio-4.13.0-py3-none-any.whl", hash = "sha256:08b310f9e24a9594186fd75b4f73f4a4152069e3853f1ed8bfbf58369f4ad708", size = 114353, upload-time = "2026-03-24T12:59:08.246Z" },
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
[[package]]
|
|
37
|
-
name = "asyncer"
|
|
38
|
-
version = "0.0.17"
|
|
39
|
-
source = { registry = "https://pypi.org/simple" }
|
|
40
|
-
dependencies = [
|
|
41
|
-
{ name = "anyio" },
|
|
42
|
-
{ name = "sniffio" },
|
|
43
|
-
{ name = "typing-extensions", marker = "python_full_version < '3.15'" },
|
|
44
|
-
]
|
|
45
|
-
sdist = { url = "https://files.pythonhosted.org/packages/d2/4c/62b6044679e08788322bbd0dee5b487a6f7f60bb4e2bd45617ff0d94d1e3/asyncer-0.0.17.tar.gz", hash = "sha256:8a41e185e7ec2ecd583c269d72907a0f9f832e744b6c7474aeb21e349c4becf4", size = 19516, upload-time = "2026-02-21T16:35:54.068Z" }
|
|
46
|
-
wheels = [
|
|
47
|
-
{ url = "https://files.pythonhosted.org/packages/2a/c5/b72735a095b4b3170b34150e89314a40dd0450d0eb6746b331cb664479d1/asyncer-0.0.17-py3-none-any.whl", hash = "sha256:b0055950e094fb84fd8d21611c7e7b6f5715ddcb57c522c058f64c20badd1438", size = 9252, upload-time = "2026-02-21T16:35:55.022Z" },
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
[[package]]
|
|
51
|
-
name = "certifi"
|
|
52
|
-
version = "2026.4.22"
|
|
53
|
-
source = { registry = "https://pypi.org/simple" }
|
|
54
|
-
sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" }
|
|
55
|
-
wheels = [
|
|
56
|
-
{ url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" },
|
|
57
|
-
]
|
|
58
|
-
|
|
59
|
-
[[package]]
|
|
60
|
-
name = "charset-normalizer"
|
|
61
|
-
version = "3.4.7"
|
|
62
|
-
source = { registry = "https://pypi.org/simple" }
|
|
63
|
-
sdist = { url = "https://files.pythonhosted.org/packages/e7/a1/67fe25fac3c7642725500a3f6cfe5821ad557c3abb11c9d20d12c7008d3e/charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5", size = 144271, upload-time = "2026-04-02T09:28:39.342Z" }
|
|
64
|
-
wheels = [
|
|
65
|
-
{ url = "https://files.pythonhosted.org/packages/0c/eb/4fc8d0a7110eb5fc9cc161723a34a8a6c200ce3b4fbf681bc86feee22308/charset_normalizer-3.4.7-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:eca9705049ad3c7345d574e3510665cb2cf844c2f2dcfe675332677f081cbd46", size = 311328, upload-time = "2026-04-02T09:26:24.331Z" },
|
|
66
|
-
{ url = "https://files.pythonhosted.org/packages/f8/e3/0fadc706008ac9d7b9b5be6dc767c05f9d3e5df51744ce4cc9605de7b9f4/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6178f72c5508bfc5fd446a5905e698c6212932f25bcdd4b47a757a50605a90e2", size = 208061, upload-time = "2026-04-02T09:26:25.568Z" },
|
|
67
|
-
{ url = "https://files.pythonhosted.org/packages/42/f0/3dd1045c47f4a4604df85ec18ad093912ae1344ac706993aff91d38773a2/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e1421b502d83040e6d7fb2fb18dff63957f720da3d77b2fbd3187ceb63755d7b", size = 229031, upload-time = "2026-04-02T09:26:26.865Z" },
|
|
68
|
-
{ url = "https://files.pythonhosted.org/packages/dc/67/675a46eb016118a2fbde5a277a5d15f4f69d5f3f5f338e5ee2f8948fcf43/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:edac0f1ab77644605be2cbba52e6b7f630731fc42b34cb0f634be1a6eface56a", size = 225239, upload-time = "2026-04-02T09:26:28.044Z" },
|
|
69
|
-
{ url = "https://files.pythonhosted.org/packages/4b/f8/d0118a2f5f23b02cd166fa385c60f9b0d4f9194f574e2b31cef350ad7223/charset_normalizer-3.4.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5649fd1c7bade02f320a462fdefd0b4bd3ce036065836d4f42e0de958038e116", size = 216589, upload-time = "2026-04-02T09:26:29.239Z" },
|
|
70
|
-
{ url = "https://files.pythonhosted.org/packages/b1/f1/6d2b0b261b6c4ceef0fcb0d17a01cc5bc53586c2d4796fa04b5c540bc13d/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:203104ed3e428044fd943bc4bf45fa73c0730391f9621e37fe39ecf477b128cb", size = 202733, upload-time = "2026-04-02T09:26:30.5Z" },
|
|
71
|
-
{ url = "https://files.pythonhosted.org/packages/6f/c0/7b1f943f7e87cc3db9626ba17807d042c38645f0a1d4415c7a14afb5591f/charset_normalizer-3.4.7-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:298930cec56029e05497a76988377cbd7457ba864beeea92ad7e844fe74cd1f1", size = 212652, upload-time = "2026-04-02T09:26:31.709Z" },
|
|
72
|
-
{ url = "https://files.pythonhosted.org/packages/38/dd/5a9ab159fe45c6e72079398f277b7d2b523e7f716acc489726115a910097/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:708838739abf24b2ceb208d0e22403dd018faeef86ddac04319a62ae884c4f15", size = 211229, upload-time = "2026-04-02T09:26:33.282Z" },
|
|
73
|
-
{ url = "https://files.pythonhosted.org/packages/d5/ff/531a1cad5ca855d1c1a8b69cb71abfd6d85c0291580146fda7c82857caa1/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:0f7eb884681e3938906ed0434f20c63046eacd0111c4ba96f27b76084cd679f5", size = 203552, upload-time = "2026-04-02T09:26:34.845Z" },
|
|
74
|
-
{ url = "https://files.pythonhosted.org/packages/c1/4c/a5fb52d528a8ca41f7598cb619409ece30a169fbdf9cdce592e53b46c3a6/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4dc1e73c36828f982bfe79fadf5919923f8a6f4df2860804db9a98c48824ce8d", size = 230806, upload-time = "2026-04-02T09:26:36.152Z" },
|
|
75
|
-
{ url = "https://files.pythonhosted.org/packages/59/7a/071feed8124111a32b316b33ae4de83d36923039ef8cf48120266844285b/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:aed52fea0513bac0ccde438c188c8a471c4e0f457c2dd20cdbf6ea7a450046c7", size = 212316, upload-time = "2026-04-02T09:26:37.672Z" },
|
|
76
|
-
{ url = "https://files.pythonhosted.org/packages/fd/35/f7dba3994312d7ba508e041eaac39a36b120f32d4c8662b8814dab876431/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464", size = 227274, upload-time = "2026-04-02T09:26:38.93Z" },
|
|
77
|
-
{ url = "https://files.pythonhosted.org/packages/8a/2d/a572df5c9204ab7688ec1edc895a73ebded3b023bb07364710b05dd1c9be/charset_normalizer-3.4.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb6d88045545b26da47aa879dd4a89a71d1dce0f0e549b1abcb31dfe4a8eac49", size = 218468, upload-time = "2026-04-02T09:26:40.17Z" },
|
|
78
|
-
{ url = "https://files.pythonhosted.org/packages/86/eb/890922a8b03a568ca2f336c36585a4713c55d4d67bf0f0c78924be6315ca/charset_normalizer-3.4.7-cp312-cp312-win32.whl", hash = "sha256:2257141f39fe65a3fdf38aeccae4b953e5f3b3324f4ff0daf9f15b8518666a2c", size = 148460, upload-time = "2026-04-02T09:26:41.416Z" },
|
|
79
|
-
{ url = "https://files.pythonhosted.org/packages/35/d9/0e7dffa06c5ab081f75b1b786f0aefc88365825dfcd0ac544bdb7b2b6853/charset_normalizer-3.4.7-cp312-cp312-win_amd64.whl", hash = "sha256:5ed6ab538499c8644b8a3e18debabcd7ce684f3fa91cf867521a7a0279cab2d6", size = 159330, upload-time = "2026-04-02T09:26:42.554Z" },
|
|
80
|
-
{ url = "https://files.pythonhosted.org/packages/9e/5d/481bcc2a7c88ea6b0878c299547843b2521ccbc40980cb406267088bc701/charset_normalizer-3.4.7-cp312-cp312-win_arm64.whl", hash = "sha256:56be790f86bfb2c98fb742ce566dfb4816e5a83384616ab59c49e0604d49c51d", size = 147828, upload-time = "2026-04-02T09:26:44.075Z" },
|
|
81
|
-
{ url = "https://files.pythonhosted.org/packages/c1/3b/66777e39d3ae1ddc77ee606be4ec6d8cbd4c801f65e5a1b6f2b11b8346dd/charset_normalizer-3.4.7-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f496c9c3cc02230093d8330875c4c3cdfc3b73612a5fd921c65d39cbcef08063", size = 309627, upload-time = "2026-04-02T09:26:45.198Z" },
|
|
82
|
-
{ url = "https://files.pythonhosted.org/packages/2e/4e/b7f84e617b4854ade48a1b7915c8ccfadeba444d2a18c291f696e37f0d3b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ea948db76d31190bf08bd371623927ee1339d5f2a0b4b1b4a4439a65298703c", size = 207008, upload-time = "2026-04-02T09:26:46.824Z" },
|
|
83
|
-
{ url = "https://files.pythonhosted.org/packages/c4/bb/ec73c0257c9e11b268f018f068f5d00aa0ef8c8b09f7753ebd5f2880e248/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a277ab8928b9f299723bc1a2dabb1265911b1a76341f90a510368ca44ad9ab66", size = 228303, upload-time = "2026-04-02T09:26:48.397Z" },
|
|
84
|
-
{ url = "https://files.pythonhosted.org/packages/85/fb/32d1f5033484494619f701e719429c69b766bfc4dbc61aa9e9c8c166528b/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3bec022aec2c514d9cf199522a802bd007cd588ab17ab2525f20f9c34d067c18", size = 224282, upload-time = "2026-04-02T09:26:49.684Z" },
|
|
85
|
-
{ url = "https://files.pythonhosted.org/packages/fa/07/330e3a0dda4c404d6da83b327270906e9654a24f6c546dc886a0eb0ffb23/charset_normalizer-3.4.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e044c39e41b92c845bc815e5ae4230804e8e7bc29e399b0437d64222d92809dd", size = 215595, upload-time = "2026-04-02T09:26:50.915Z" },
|
|
86
|
-
{ url = "https://files.pythonhosted.org/packages/e3/7c/fc890655786e423f02556e0216d4b8c6bcb6bdfa890160dc66bf52dee468/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:f495a1652cf3fbab2eb0639776dad966c2fb874d79d87ca07f9d5f059b8bd215", size = 201986, upload-time = "2026-04-02T09:26:52.197Z" },
|
|
87
|
-
{ url = "https://files.pythonhosted.org/packages/d8/97/bfb18b3db2aed3b90cf54dc292ad79fdd5ad65c4eae454099475cbeadd0d/charset_normalizer-3.4.7-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e712b419df8ba5e42b226c510472b37bd57b38e897d3eca5e8cfd410a29fa859", size = 211711, upload-time = "2026-04-02T09:26:53.49Z" },
|
|
88
|
-
{ url = "https://files.pythonhosted.org/packages/6f/a5/a581c13798546a7fd557c82614a5c65a13df2157e9ad6373166d2a3e645d/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7804338df6fcc08105c7745f1502ba68d900f45fd770d5bdd5288ddccb8a42d8", size = 210036, upload-time = "2026-04-02T09:26:54.975Z" },
|
|
89
|
-
{ url = "https://files.pythonhosted.org/packages/8c/bf/b3ab5bcb478e4193d517644b0fb2bf5497fbceeaa7a1bc0f4d5b50953861/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:481551899c856c704d58119b5025793fa6730adda3571971af568f66d2424bb5", size = 202998, upload-time = "2026-04-02T09:26:56.303Z" },
|
|
90
|
-
{ url = "https://files.pythonhosted.org/packages/e7/4e/23efd79b65d314fa320ec6017b4b5834d5c12a58ba4610aa353af2e2f577/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f59099f9b66f0d7145115e6f80dd8b1d847176df89b234a5a6b3f00437aa0832", size = 230056, upload-time = "2026-04-02T09:26:57.554Z" },
|
|
91
|
-
{ url = "https://files.pythonhosted.org/packages/b9/9f/1e1941bc3f0e01df116e68dc37a55c4d249df5e6fa77f008841aef68264f/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:f59ad4c0e8f6bba240a9bb85504faa1ab438237199d4cce5f622761507b8f6a6", size = 211537, upload-time = "2026-04-02T09:26:58.843Z" },
|
|
92
|
-
{ url = "https://files.pythonhosted.org/packages/80/0f/088cbb3020d44428964a6c97fe1edfb1b9550396bf6d278330281e8b709c/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:3dedcc22d73ec993f42055eff4fcfed9318d1eeb9a6606c55892a26964964e48", size = 226176, upload-time = "2026-04-02T09:27:00.437Z" },
|
|
93
|
-
{ url = "https://files.pythonhosted.org/packages/6a/9f/130394f9bbe06f4f63e22641d32fc9b202b7e251c9aef4db044324dac493/charset_normalizer-3.4.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:64f02c6841d7d83f832cd97ccf8eb8a906d06eb95d5276069175c696b024b60a", size = 217723, upload-time = "2026-04-02T09:27:02.021Z" },
|
|
94
|
-
{ url = "https://files.pythonhosted.org/packages/73/55/c469897448a06e49f8fa03f6caae97074fde823f432a98f979cc42b90e69/charset_normalizer-3.4.7-cp313-cp313-win32.whl", hash = "sha256:4042d5c8f957e15221d423ba781e85d553722fc4113f523f2feb7b188cc34c5e", size = 148085, upload-time = "2026-04-02T09:27:03.192Z" },
|
|
95
|
-
{ url = "https://files.pythonhosted.org/packages/5d/78/1b74c5bbb3f99b77a1715c91b3e0b5bdb6fe302d95ace4f5b1bec37b0167/charset_normalizer-3.4.7-cp313-cp313-win_amd64.whl", hash = "sha256:3946fa46a0cf3e4c8cb1cc52f56bb536310d34f25f01ca9b6c16afa767dab110", size = 158819, upload-time = "2026-04-02T09:27:04.454Z" },
|
|
96
|
-
{ url = "https://files.pythonhosted.org/packages/68/86/46bd42279d323deb8687c4a5a811fd548cb7d1de10cf6535d099877a9a9f/charset_normalizer-3.4.7-cp313-cp313-win_arm64.whl", hash = "sha256:80d04837f55fc81da168b98de4f4b797ef007fc8a79ab71c6ec9bc4dd662b15b", size = 147915, upload-time = "2026-04-02T09:27:05.971Z" },
|
|
97
|
-
{ url = "https://files.pythonhosted.org/packages/97/c8/c67cb8c70e19ef1960b97b22ed2a1567711de46c4ddf19799923adc836c2/charset_normalizer-3.4.7-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:c36c333c39be2dbca264d7803333c896ab8fa7d4d6f0ab7edb7dfd7aea6e98c0", size = 309234, upload-time = "2026-04-02T09:27:07.194Z" },
|
|
98
|
-
{ url = "https://files.pythonhosted.org/packages/99/85/c091fdee33f20de70d6c8b522743b6f831a2f1cd3ff86de4c6a827c48a76/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1c2aed2e5e41f24ea8ef1590b8e848a79b56f3a5564a65ceec43c9d692dc7d8a", size = 208042, upload-time = "2026-04-02T09:27:08.749Z" },
|
|
99
|
-
{ url = "https://files.pythonhosted.org/packages/87/1c/ab2ce611b984d2fd5d86a5a8a19c1ae26acac6bad967da4967562c75114d/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:54523e136b8948060c0fa0bc7b1b50c32c186f2fceee897a495406bb6e311d2b", size = 228706, upload-time = "2026-04-02T09:27:09.951Z" },
|
|
100
|
-
{ url = "https://files.pythonhosted.org/packages/a8/29/2b1d2cb00bf085f59d29eb773ce58ec2d325430f8c216804a0a5cd83cbca/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:715479b9a2802ecac752a3b0efa2b0b60285cf962ee38414211abdfccc233b41", size = 224727, upload-time = "2026-04-02T09:27:11.175Z" },
|
|
101
|
-
{ url = "https://files.pythonhosted.org/packages/47/5c/032c2d5a07fe4d4855fea851209cca2b6f03ebeb6d4e3afdb3358386a684/charset_normalizer-3.4.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bd6c2a1c7573c64738d716488d2cdd3c00e340e4835707d8fdb8dc1a66ef164e", size = 215882, upload-time = "2026-04-02T09:27:12.446Z" },
|
|
102
|
-
{ url = "https://files.pythonhosted.org/packages/2c/c2/356065d5a8b78ed04499cae5f339f091946a6a74f91e03476c33f0ab7100/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:c45e9440fb78f8ddabcf714b68f936737a121355bf59f3907f4e17721b9d1aae", size = 200860, upload-time = "2026-04-02T09:27:13.721Z" },
|
|
103
|
-
{ url = "https://files.pythonhosted.org/packages/0c/cd/a32a84217ced5039f53b29f460962abb2d4420def55afabe45b1c3c7483d/charset_normalizer-3.4.7-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3534e7dcbdcf757da6b85a0bbf5b6868786d5982dd959b065e65481644817a18", size = 211564, upload-time = "2026-04-02T09:27:15.272Z" },
|
|
104
|
-
{ url = "https://files.pythonhosted.org/packages/44/86/58e6f13ce26cc3b8f4a36b94a0f22ae2f00a72534520f4ae6857c4b81f89/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e8ac484bf18ce6975760921bb6148041faa8fef0547200386ea0b52b5d27bf7b", size = 211276, upload-time = "2026-04-02T09:27:16.834Z" },
|
|
105
|
-
{ url = "https://files.pythonhosted.org/packages/8f/fe/d17c32dc72e17e155e06883efa84514ca375f8a528ba2546bee73fc4df81/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a5fe03b42827c13cdccd08e6c0247b6a6d4b5e3cdc53fd1749f5896adcdc2356", size = 201238, upload-time = "2026-04-02T09:27:18.229Z" },
|
|
106
|
-
{ url = "https://files.pythonhosted.org/packages/6a/29/f33daa50b06525a237451cdb6c69da366c381a3dadcd833fa5676bc468b3/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2d6eb928e13016cea4f1f21d1e10c1cebd5a421bc57ddf5b1142ae3f86824fab", size = 230189, upload-time = "2026-04-02T09:27:19.445Z" },
|
|
107
|
-
{ url = "https://files.pythonhosted.org/packages/b6/6e/52c84015394a6a0bdcd435210a7e944c5f94ea1055f5cc5d56c5fe368e7b/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:e74327fb75de8986940def6e8dee4f127cc9752bee7355bb323cc5b2659b6d46", size = 211352, upload-time = "2026-04-02T09:27:20.79Z" },
|
|
108
|
-
{ url = "https://files.pythonhosted.org/packages/8c/d7/4353be581b373033fb9198bf1da3cf8f09c1082561e8e922aa7b39bf9fe8/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:d6038d37043bced98a66e68d3aa2b6a35505dc01328cd65217cefe82f25def44", size = 227024, upload-time = "2026-04-02T09:27:22.063Z" },
|
|
109
|
-
{ url = "https://files.pythonhosted.org/packages/30/45/99d18aa925bd1740098ccd3060e238e21115fffbfdcb8f3ece837d0ace6c/charset_normalizer-3.4.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7579e913a5339fb8fa133f6bbcfd8e6749696206cf05acdbdca71a1b436d8e72", size = 217869, upload-time = "2026-04-02T09:27:23.486Z" },
|
|
110
|
-
{ url = "https://files.pythonhosted.org/packages/5c/05/5ee478aa53f4bb7996482153d4bfe1b89e0f087f0ab6b294fcf92d595873/charset_normalizer-3.4.7-cp314-cp314-win32.whl", hash = "sha256:5b77459df20e08151cd6f8b9ef8ef1f961ef73d85c21a555c7eed5b79410ec10", size = 148541, upload-time = "2026-04-02T09:27:25.146Z" },
|
|
111
|
-
{ url = "https://files.pythonhosted.org/packages/48/77/72dcb0921b2ce86420b2d79d454c7022bf5be40202a2a07906b9f2a35c97/charset_normalizer-3.4.7-cp314-cp314-win_amd64.whl", hash = "sha256:92a0a01ead5e668468e952e4238cccd7c537364eb7d851ab144ab6627dbbe12f", size = 159634, upload-time = "2026-04-02T09:27:26.642Z" },
|
|
112
|
-
{ url = "https://files.pythonhosted.org/packages/c6/a3/c2369911cd72f02386e4e340770f6e158c7980267da16af8f668217abaa0/charset_normalizer-3.4.7-cp314-cp314-win_arm64.whl", hash = "sha256:67f6279d125ca0046a7fd386d01b311c6363844deac3e5b069b514ba3e63c246", size = 148384, upload-time = "2026-04-02T09:27:28.271Z" },
|
|
113
|
-
{ url = "https://files.pythonhosted.org/packages/94/09/7e8a7f73d24dba1f0035fbbf014d2c36828fc1bf9c88f84093e57d315935/charset_normalizer-3.4.7-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:effc3f449787117233702311a1b7d8f59cba9ced946ba727bdc329ec69028e24", size = 330133, upload-time = "2026-04-02T09:27:29.474Z" },
|
|
114
|
-
{ url = "https://files.pythonhosted.org/packages/8d/da/96975ddb11f8e977f706f45cddd8540fd8242f71ecdb5d18a80723dcf62c/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbccdc05410c9ee21bbf16a35f4c1d16123dcdeb8a1d38f33654fa21d0234f79", size = 216257, upload-time = "2026-04-02T09:27:30.793Z" },
|
|
115
|
-
{ url = "https://files.pythonhosted.org/packages/e5/e8/1d63bf8ef2d388e95c64b2098f45f84758f6d102a087552da1485912637b/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:733784b6d6def852c814bce5f318d25da2ee65dd4839a0718641c696e09a2960", size = 234851, upload-time = "2026-04-02T09:27:32.44Z" },
|
|
116
|
-
{ url = "https://files.pythonhosted.org/packages/9b/40/e5ff04233e70da2681fa43969ad6f66ca5611d7e669be0246c4c7aaf6dc8/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a89c23ef8d2c6b27fd200a42aa4ac72786e7c60d40efdc76e6011260b6e949c4", size = 233393, upload-time = "2026-04-02T09:27:34.03Z" },
|
|
117
|
-
{ url = "https://files.pythonhosted.org/packages/be/c1/06c6c49d5a5450f76899992f1ee40b41d076aee9279b49cf9974d2f313d5/charset_normalizer-3.4.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6c114670c45346afedc0d947faf3c7f701051d2518b943679c8ff88befe14f8e", size = 223251, upload-time = "2026-04-02T09:27:35.369Z" },
|
|
118
|
-
{ url = "https://files.pythonhosted.org/packages/2b/9f/f2ff16fb050946169e3e1f82134d107e5d4ae72647ec8a1b1446c148480f/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:a180c5e59792af262bf263b21a3c49353f25945d8d9f70628e73de370d55e1e1", size = 206609, upload-time = "2026-04-02T09:27:36.661Z" },
|
|
119
|
-
{ url = "https://files.pythonhosted.org/packages/69/d5/a527c0cd8d64d2eab7459784fb4169a0ac76e5a6fc5237337982fd61347e/charset_normalizer-3.4.7-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3c9a494bc5ec77d43cea229c4f6db1e4d8fe7e1bbffa8b6f0f0032430ff8ab44", size = 220014, upload-time = "2026-04-02T09:27:38.019Z" },
|
|
120
|
-
{ url = "https://files.pythonhosted.org/packages/7e/80/8a7b8104a3e203074dc9aa2c613d4b726c0e136bad1cc734594b02867972/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8d828b6667a32a728a1ad1d93957cdf37489c57b97ae6c4de2860fa749b8fc1e", size = 218979, upload-time = "2026-04-02T09:27:39.37Z" },
|
|
121
|
-
{ url = "https://files.pythonhosted.org/packages/02/9a/b759b503d507f375b2b5c153e4d2ee0a75aa215b7f2489cf314f4541f2c0/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:cf1493cd8607bec4d8a7b9b004e699fcf8f9103a9284cc94962cb73d20f9d4a3", size = 209238, upload-time = "2026-04-02T09:27:40.722Z" },
|
|
122
|
-
{ url = "https://files.pythonhosted.org/packages/c2/4e/0f3f5d47b86bdb79256e7290b26ac847a2832d9a4033f7eb2cd4bcf4bb5b/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0c96c3b819b5c3e9e165495db84d41914d6894d55181d2d108cc1a69bfc9cce0", size = 236110, upload-time = "2026-04-02T09:27:42.33Z" },
|
|
123
|
-
{ url = "https://files.pythonhosted.org/packages/96/23/bce28734eb3ed2c91dcf93abeb8a5cf393a7b2749725030bb630e554fdd8/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:752a45dc4a6934060b3b0dab47e04edc3326575f82be64bc4fc293914566503e", size = 219824, upload-time = "2026-04-02T09:27:43.924Z" },
|
|
124
|
-
{ url = "https://files.pythonhosted.org/packages/2c/6f/6e897c6984cc4d41af319b077f2f600fc8214eb2fe2d6bcb79141b882400/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:8778f0c7a52e56f75d12dae53ae320fae900a8b9b4164b981b9c5ce059cd1fcb", size = 233103, upload-time = "2026-04-02T09:27:45.348Z" },
|
|
125
|
-
{ url = "https://files.pythonhosted.org/packages/76/22/ef7bd0fe480a0ae9b656189ec00744b60933f68b4f42a7bb06589f6f576a/charset_normalizer-3.4.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ce3412fbe1e31eb81ea42f4169ed94861c56e643189e1e75f0041f3fe7020abe", size = 225194, upload-time = "2026-04-02T09:27:46.706Z" },
|
|
126
|
-
{ url = "https://files.pythonhosted.org/packages/c5/a7/0e0ab3e0b5bc1219bd80a6a0d4d72ca74d9250cb2382b7c699c147e06017/charset_normalizer-3.4.7-cp314-cp314t-win32.whl", hash = "sha256:c03a41a8784091e67a39648f70c5f97b5b6a37f216896d44d2cdcb82615339a0", size = 159827, upload-time = "2026-04-02T09:27:48.053Z" },
|
|
127
|
-
{ url = "https://files.pythonhosted.org/packages/7a/1d/29d32e0fb40864b1f878c7f5a0b343ae676c6e2b271a2d55cc3a152391da/charset_normalizer-3.4.7-cp314-cp314t-win_amd64.whl", hash = "sha256:03853ed82eeebbce3c2abfdbc98c96dc205f32a79627688ac9a27370ea61a49c", size = 174168, upload-time = "2026-04-02T09:27:49.795Z" },
|
|
128
|
-
{ url = "https://files.pythonhosted.org/packages/de/32/d92444ad05c7a6e41fb2036749777c163baf7a0301a040cb672d6b2b1ae9/charset_normalizer-3.4.7-cp314-cp314t-win_arm64.whl", hash = "sha256:c35abb8bfff0185efac5878da64c45dafd2b37fb0383add1be155a763c1f083d", size = 153018, upload-time = "2026-04-02T09:27:51.116Z" },
|
|
129
|
-
{ url = "https://files.pythonhosted.org/packages/db/8f/61959034484a4a7c527811f4721e75d02d653a35afb0b6054474d8185d4c/charset_normalizer-3.4.7-py3-none-any.whl", hash = "sha256:3dce51d0f5e7951f8bb4900c257dad282f49190fdbebecd4ba99bcc41fef404d", size = 61958, upload-time = "2026-04-02T09:28:37.794Z" },
|
|
130
|
-
]
|
|
131
|
-
|
|
132
23
|
[[package]]
|
|
133
24
|
name = "click"
|
|
134
25
|
version = "8.3.3"
|
|
@@ -234,19 +125,6 @@ wheels = [
|
|
|
234
125
|
{ url = "https://files.pythonhosted.org/packages/61/e8/cb8e80d6f9f55b99588625062822bf946cf03ed06315df4bd8397f5632a1/coverage-7.14.0-py3-none-any.whl", hash = "sha256:8de5b61163aee3d05c8a2beab6f47913df7981dad1baf82c414d99158c286ab1", size = 211764, upload-time = "2026-05-10T18:02:29.538Z" },
|
|
235
126
|
]
|
|
236
127
|
|
|
237
|
-
[[package]]
|
|
238
|
-
name = "detect-secrets"
|
|
239
|
-
version = "1.5.0"
|
|
240
|
-
source = { registry = "https://pypi.org/simple" }
|
|
241
|
-
dependencies = [
|
|
242
|
-
{ name = "pyyaml" },
|
|
243
|
-
{ name = "requests" },
|
|
244
|
-
]
|
|
245
|
-
sdist = { url = "https://files.pythonhosted.org/packages/69/67/382a863fff94eae5a0cf05542179169a1c49a4c8784a9480621e2066ca7d/detect_secrets-1.5.0.tar.gz", hash = "sha256:6bb46dcc553c10df51475641bb30fd69d25645cc12339e46c824c1e0c388898a", size = 97351, upload-time = "2024-05-06T17:46:19.721Z" }
|
|
246
|
-
wheels = [
|
|
247
|
-
{ url = "https://files.pythonhosted.org/packages/4e/5e/4f5fe4b89fde1dc3ed0eb51bd4ce4c0bca406246673d370ea2ad0c58d747/detect_secrets-1.5.0-py3-none-any.whl", hash = "sha256:e24e7b9b5a35048c313e983f76c4bd09dad89f045ff059e354f9943bf45aa060", size = 120341, upload-time = "2024-05-06T17:46:16.628Z" },
|
|
248
|
-
]
|
|
249
|
-
|
|
250
128
|
[[package]]
|
|
251
129
|
name = "dulwich"
|
|
252
130
|
version = "1.2.1"
|
|
@@ -305,6 +183,7 @@ dependencies = [
|
|
|
305
183
|
{ name = "pydantic" },
|
|
306
184
|
{ name = "pyyaml" },
|
|
307
185
|
{ name = "tomli-w" },
|
|
186
|
+
{ name = "typer" },
|
|
308
187
|
]
|
|
309
188
|
|
|
310
189
|
[package.dev-dependencies]
|
|
@@ -317,11 +196,12 @@ dev = [
|
|
|
317
196
|
|
|
318
197
|
[package.metadata]
|
|
319
198
|
requires-dist = [
|
|
320
|
-
{ name = "hyperi-pylib", extras = ["metrics"],
|
|
199
|
+
{ name = "hyperi-pylib", extras = ["metrics"], specifier = ">=2.28.0" },
|
|
321
200
|
{ name = "packaging", specifier = ">=26.0" },
|
|
322
201
|
{ name = "pydantic", specifier = ">=2.13" },
|
|
323
202
|
{ name = "pyyaml", specifier = ">=6.0" },
|
|
324
203
|
{ name = "tomli-w", specifier = ">=1.2.0" },
|
|
204
|
+
{ name = "typer", specifier = ">=0.25" },
|
|
325
205
|
]
|
|
326
206
|
|
|
327
207
|
[package.metadata.requires-dev]
|
|
@@ -334,12 +214,9 @@ dev = [
|
|
|
334
214
|
|
|
335
215
|
[[package]]
|
|
336
216
|
name = "hyperi-pylib"
|
|
337
|
-
version = "2.
|
|
338
|
-
source = {
|
|
217
|
+
version = "2.28.0"
|
|
218
|
+
source = { registry = "https://pypi.org/simple" }
|
|
339
219
|
dependencies = [
|
|
340
|
-
{ name = "anyio" },
|
|
341
|
-
{ name = "asyncer" },
|
|
342
|
-
{ name = "detect-secrets" },
|
|
343
220
|
{ name = "dulwich" },
|
|
344
221
|
{ name = "dynaconf" },
|
|
345
222
|
{ name = "loguru" },
|
|
@@ -349,6 +226,10 @@ dependencies = [
|
|
|
349
226
|
{ name = "tomli-w" },
|
|
350
227
|
{ name = "typer" },
|
|
351
228
|
]
|
|
229
|
+
sdist = { url = "https://files.pythonhosted.org/packages/35/37/a14ce0980cf87eb2e90a9b08b19a43f2892394d9c6be6f8b581452e63e90/hyperi_pylib-2.28.0.tar.gz", hash = "sha256:2a38f9e7edc86eb995e4b6928a624d85f20f7926463b9cee7a65dab2b3d3ab37", size = 228502, upload-time = "2026-05-01T03:59:10.723Z" }
|
|
230
|
+
wheels = [
|
|
231
|
+
{ url = "https://files.pythonhosted.org/packages/34/c6/cf762491dc45c6182b097290e43e05724837ef35793c80672dfc06e60466/hyperi_pylib-2.28.0-py3-none-any.whl", hash = "sha256:0a451725cfed783de25988bda116ccb30ca178d5860030c35b28f3c46afe0a0e", size = 279895, upload-time = "2026-05-01T03:59:11.897Z" },
|
|
232
|
+
]
|
|
352
233
|
|
|
353
234
|
[package.optional-dependencies]
|
|
354
235
|
metrics = [
|
|
@@ -356,102 +237,6 @@ metrics = [
|
|
|
356
237
|
{ name = "psutil" },
|
|
357
238
|
]
|
|
358
239
|
|
|
359
|
-
[package.metadata]
|
|
360
|
-
requires-dist = [
|
|
361
|
-
{ name = "aiobotocore", marker = "extra == 'dev'", specifier = ">=3.6.0" },
|
|
362
|
-
{ name = "aiobotocore", marker = "extra == 'secrets'", specifier = ">=3.6.0" },
|
|
363
|
-
{ name = "aiobotocore", marker = "extra == 'secrets-aws'", specifier = ">=3.6.0" },
|
|
364
|
-
{ name = "ansible-vault", marker = "extra == 'dev'", specifier = ">=4.0.0" },
|
|
365
|
-
{ name = "ansible-vault", marker = "extra == 'secrets'", specifier = ">=4.0.0" },
|
|
366
|
-
{ name = "ansible-vault", marker = "extra == 'secrets-ansible-vault'", specifier = ">=4.0.0" },
|
|
367
|
-
{ name = "anyio", specifier = ">=4.13.0" },
|
|
368
|
-
{ name = "asyncer", specifier = ">=0.0.17" },
|
|
369
|
-
{ name = "azure-identity", marker = "extra == 'secrets'", specifier = ">=1.25.1" },
|
|
370
|
-
{ name = "azure-identity", marker = "extra == 'secrets-azure'", specifier = ">=1.25.1" },
|
|
371
|
-
{ name = "azure-keyvault-secrets", marker = "extra == 'secrets'", specifier = ">=4.11.0" },
|
|
372
|
-
{ name = "azure-keyvault-secrets", marker = "extra == 'secrets-azure'", specifier = ">=4.11.0" },
|
|
373
|
-
{ name = "bandit", extras = ["toml"], marker = "extra == 'dev'", specifier = ">=1.7.0" },
|
|
374
|
-
{ name = "boto3", marker = "extra == 'dev'", specifier = ">=1.43.0" },
|
|
375
|
-
{ name = "boto3", marker = "extra == 'secrets'", specifier = ">=1.43.0" },
|
|
376
|
-
{ name = "boto3", marker = "extra == 'secrets-aws'", specifier = ">=1.43.0" },
|
|
377
|
-
{ name = "cashews", marker = "extra == 'cache'", specifier = ">=7.5.0" },
|
|
378
|
-
{ name = "common-expression-language", marker = "extra == 'expression'", specifier = ">=0.5.6" },
|
|
379
|
-
{ name = "confluent-kafka", marker = "extra == 'kafka'", specifier = ">=2.14.0" },
|
|
380
|
-
{ name = "cryptography", marker = "extra == 'dev'", specifier = ">=48.0.0" },
|
|
381
|
-
{ name = "cryptography", marker = "extra == 'license'", specifier = ">=48.0.0" },
|
|
382
|
-
{ name = "datafog", marker = "extra == 'pii'", specifier = ">=4.4.0" },
|
|
383
|
-
{ name = "datafog", extras = ["nlp"], marker = "extra == 'pii-ner'", specifier = ">=4.4.0" },
|
|
384
|
-
{ name = "detect-secrets", specifier = ">=1.5.0" },
|
|
385
|
-
{ name = "dulwich", specifier = ">=1.2.0" },
|
|
386
|
-
{ name = "dynaconf", specifier = ">=3.2.13" },
|
|
387
|
-
{ name = "faker", marker = "extra == 'dev'", specifier = ">=40.0.0" },
|
|
388
|
-
{ name = "genson", marker = "extra == 'kafka'", specifier = ">=1.3.0" },
|
|
389
|
-
{ name = "google-cloud-secret-manager", marker = "extra == 'secrets'", specifier = ">=2.28.0" },
|
|
390
|
-
{ name = "google-cloud-secret-manager", marker = "extra == 'secrets-gcp'", specifier = ">=2.28.0" },
|
|
391
|
-
{ name = "httpx", marker = "extra == 'dev'", specifier = ">=0.28.0" },
|
|
392
|
-
{ name = "httpx", marker = "extra == 'http'", specifier = ">=0.28.0" },
|
|
393
|
-
{ name = "httpx", marker = "extra == 'license'", specifier = ">=0.28.0" },
|
|
394
|
-
{ name = "loguru", specifier = ">=0.7.3" },
|
|
395
|
-
{ name = "mergedeep", specifier = ">=1.3.4" },
|
|
396
|
-
{ name = "mergedeep", marker = "extra == 'dev'", specifier = ">=1.3.4" },
|
|
397
|
-
{ name = "moto", extras = ["secretsmanager"], marker = "extra == 'dev'", specifier = ">=5.2.0" },
|
|
398
|
-
{ name = "msgpack", marker = "extra == 'cache'", specifier = ">=1.1.0" },
|
|
399
|
-
{ name = "mypy", marker = "extra == 'dev'", specifier = ">=1.0.0" },
|
|
400
|
-
{ name = "myst-parser", marker = "extra == 'docs'", specifier = ">=5.0.0" },
|
|
401
|
-
{ name = "opentelemetry-api", marker = "extra == 'opentelemetry'", specifier = ">=1.41.0" },
|
|
402
|
-
{ name = "opentelemetry-exporter-otlp", marker = "extra == 'opentelemetry'", specifier = ">=1.41.0" },
|
|
403
|
-
{ name = "opentelemetry-exporter-prometheus", marker = "extra == 'opentelemetry'", specifier = ">=0.62b0" },
|
|
404
|
-
{ name = "opentelemetry-sdk", marker = "extra == 'opentelemetry'", specifier = ">=1.41.0" },
|
|
405
|
-
{ name = "pip-audit", marker = "extra == 'dev'", specifier = ">=2.6.0" },
|
|
406
|
-
{ name = "pre-commit", marker = "extra == 'dev'", specifier = ">=4.6.0" },
|
|
407
|
-
{ name = "presidio-analyzer", marker = "extra == 'presidio'", specifier = ">=2.2.362" },
|
|
408
|
-
{ name = "presidio-anonymizer", marker = "extra == 'presidio'", specifier = ">=2.2.362" },
|
|
409
|
-
{ name = "prometheus-client", marker = "extra == 'metrics'", specifier = ">=0.25.0" },
|
|
410
|
-
{ name = "psutil", marker = "extra == 'metrics'", specifier = ">=7.2.0" },
|
|
411
|
-
{ name = "psycopg", extras = ["binary", "pool"], marker = "extra == 'cache'", specifier = ">=3.3.0" },
|
|
412
|
-
{ name = "purgatory", marker = "extra == 'http'", specifier = ">=3.0.1" },
|
|
413
|
-
{ name = "purgatory", marker = "extra == 'resilience'", specifier = ">=3.0.1" },
|
|
414
|
-
{ name = "pycryptodomex", marker = "extra == 'dev'", specifier = ">=3.20.0" },
|
|
415
|
-
{ name = "pydantic", marker = "extra == 'deployment'", specifier = ">=2.13.0" },
|
|
416
|
-
{ name = "pydantic", marker = "extra == 'dev'", specifier = ">=2.13.0" },
|
|
417
|
-
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" },
|
|
418
|
-
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23.0" },
|
|
419
|
-
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=7.0.0" },
|
|
420
|
-
{ name = "pytest-httpx", marker = "extra == 'dev'", specifier = ">=0.36.0" },
|
|
421
|
-
{ name = "python-dotenv", specifier = ">=1.0.0" },
|
|
422
|
-
{ name = "pyyaml", specifier = ">=6.0.3" },
|
|
423
|
-
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.15.0" },
|
|
424
|
-
{ name = "sphinx", marker = "extra == 'docs'", specifier = ">=8.0.0,<10" },
|
|
425
|
-
{ name = "sphinx-autobuild", marker = "extra == 'docs'", specifier = ">=2024.0.0" },
|
|
426
|
-
{ name = "sphinx-rtd-theme", marker = "extra == 'docs'", specifier = ">=3.0.0" },
|
|
427
|
-
{ name = "stamina", marker = "extra == 'dev'", specifier = ">=26.1.0" },
|
|
428
|
-
{ name = "stamina", marker = "extra == 'http'", specifier = ">=26.1.0" },
|
|
429
|
-
{ name = "stamina", marker = "extra == 'resilience'", specifier = ">=26.1.0" },
|
|
430
|
-
{ name = "tiktoken", marker = "extra == 'dev'", specifier = ">=0.5.0" },
|
|
431
|
-
{ name = "tomli-w", specifier = ">=1.0.0" },
|
|
432
|
-
{ name = "ty", marker = "extra == 'dev'", specifier = ">=0.0.34" },
|
|
433
|
-
{ name = "typer", specifier = ">=0.25.0" },
|
|
434
|
-
{ name = "vulture", marker = "extra == 'dev'", specifier = ">=2.16" },
|
|
435
|
-
]
|
|
436
|
-
provides-extras = ["cli", "resilience", "http", "cache", "metrics", "opentelemetry", "expression", "deployment", "database", "kafka", "pii", "pii-ner", "presidio", "secrets-ansible-vault", "secrets-vault", "secrets-aws", "secrets-gcp", "secrets-azure", "secrets", "license", "version-check", "enhanced", "dev", "docs"]
|
|
437
|
-
|
|
438
|
-
[package.metadata.requires-dev]
|
|
439
|
-
dev = [
|
|
440
|
-
{ name = "azure-identity", specifier = ">=1.25.1" },
|
|
441
|
-
{ name = "azure-keyvault-secrets", specifier = ">=4.9.0" },
|
|
442
|
-
{ name = "fastapi", specifier = ">=0.115.0" },
|
|
443
|
-
{ name = "google-cloud-secret-manager", specifier = ">=2.26.0" },
|
|
444
|
-
]
|
|
445
|
-
|
|
446
|
-
[[package]]
|
|
447
|
-
name = "idna"
|
|
448
|
-
version = "3.15"
|
|
449
|
-
source = { registry = "https://pypi.org/simple" }
|
|
450
|
-
sdist = { url = "https://files.pythonhosted.org/packages/82/77/7b3966d0b9d1d31a36ddf1746926a11dface89a83409bf1483f0237aa758/idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc", size = 199245, upload-time = "2026-05-12T22:45:57.011Z" }
|
|
451
|
-
wheels = [
|
|
452
|
-
{ url = "https://files.pythonhosted.org/packages/d2/23/408243171aa9aaba178d3e2559159c24c1171a641aa83b67bdd3394ead8e/idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8", size = 72340, upload-time = "2026-05-12T22:45:55.733Z" },
|
|
453
|
-
]
|
|
454
|
-
|
|
455
240
|
[[package]]
|
|
456
241
|
name = "iniconfig"
|
|
457
242
|
version = "2.3.0"
|
|
@@ -743,21 +528,6 @@ wheels = [
|
|
|
743
528
|
{ url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" },
|
|
744
529
|
]
|
|
745
530
|
|
|
746
|
-
[[package]]
|
|
747
|
-
name = "requests"
|
|
748
|
-
version = "2.34.0"
|
|
749
|
-
source = { registry = "https://pypi.org/simple" }
|
|
750
|
-
dependencies = [
|
|
751
|
-
{ name = "certifi" },
|
|
752
|
-
{ name = "charset-normalizer" },
|
|
753
|
-
{ name = "idna" },
|
|
754
|
-
{ name = "urllib3" },
|
|
755
|
-
]
|
|
756
|
-
sdist = { url = "https://files.pythonhosted.org/packages/43/b8/7a707d60fea4c49094e40262cc0e2ca6c768cca21587e34d3f705afec47e/requests-2.34.0.tar.gz", hash = "sha256:7d62fe92f50eb82c529b0916bb445afa1531a566fc8f35ffdc64446e771b856a", size = 142436, upload-time = "2026-05-11T19:29:51.717Z" }
|
|
757
|
-
wheels = [
|
|
758
|
-
{ url = "https://files.pythonhosted.org/packages/ef/e6/e300fce5fe83c30520607a015dabd985df3251e188d234bfe9492e17a389/requests-2.34.0-py3-none-any.whl", hash = "sha256:917520a21b767485ce7c588f4ebb917c436b24a31231b44228715eaeb5a52c60", size = 73021, upload-time = "2026-05-11T19:29:49.923Z" },
|
|
759
|
-
]
|
|
760
|
-
|
|
761
531
|
[[package]]
|
|
762
532
|
name = "rich"
|
|
763
533
|
version = "15.0.0"
|
|
@@ -805,15 +575,6 @@ wheels = [
|
|
|
805
575
|
{ url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" },
|
|
806
576
|
]
|
|
807
577
|
|
|
808
|
-
[[package]]
|
|
809
|
-
name = "sniffio"
|
|
810
|
-
version = "1.3.1"
|
|
811
|
-
source = { registry = "https://pypi.org/simple" }
|
|
812
|
-
sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" }
|
|
813
|
-
wheels = [
|
|
814
|
-
{ url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" },
|
|
815
|
-
]
|
|
816
|
-
|
|
817
578
|
[[package]]
|
|
818
579
|
name = "tomli-w"
|
|
819
580
|
version = "1.2.0"
|
hyperi_ci-2.2.2/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2.2.2
|