code-standards 8.151.0__tar.gz → 8.151.40__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.
- {code_standards-8.151.0 → code_standards-8.151.40}/PKG-INFO +2 -2
- {code_standards-8.151.0 → code_standards-8.151.40}/pyproject.toml +2 -2
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/cli/main.py +88 -10
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/cli-reference.v1.json +2 -2
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/devops_tools.py +13 -3
- code_standards-8.151.40/src/sarj_standards/schemas/rule-catalog.v1.json +1 -0
- code_standards-8.151.0/src/sarj_standards/schemas/rule-catalog.v1.json +0 -1
- {code_standards-8.151.0 → code_standards-8.151.40}/.gitignore +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/LICENSE +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/README.md +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/__main__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/_meta.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/api.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/cli/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/Mintfile.mobile.strict +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/LICENSE.actions +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/LICENSE.cronstrue +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/LICENSE.yaml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/generate.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/index.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/package-lock.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/package.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser/upstream.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/action-parser.cjs +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/actionlint.strict.yaml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/basedpyright.python315-watch.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/basedpyright.strict.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/checkov.strict.yml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/compile-eslint.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/detekt.strict.yml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/devops-verification.v1.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/doctor.config.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint-compact-formatter.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint-required-policy.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint-selected-rules.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint.application.mjs +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint.peers.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint.strict.mjs +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/eslint.strict.ts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/hadolint.strict.yaml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/ktlint.strict.editorconfig +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/markdownlint.strict.yaml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/mobile-tools.versions.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/mobsf.strict.yml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/pyright.strict.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/ruff.application.toml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/ruff.cast.toml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/ruff.python315-watch.toml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/ruff.required.toml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/ruff.strict.toml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/rule-calibration-campaign.v1.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/rule-inventory.v1.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/rule-ledger.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/rule-level-source.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/schemas/SKAFFOLD-LICENSE +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/schemas/google-build-v1-schema.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/schemas/google-build-v1.LICENSE +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/schemas/skaffold-v4beta7.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/schemas/upstream-schemas.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/semgrep-overrides.txt +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/shellcheck.strict.rc +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/swiftformat.strict +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/swiftlint.strict.yml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/taplo.strict.toml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/tflint.strict.hcl +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/tflint.version.hcl +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/tool-json.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/yamllint.strict.yaml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/zizmor.strict.yml +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/age_transition.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/configs.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/devops.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/doctor.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/exclusions.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/hooks.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/launcher.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/lifecycle.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/manifest.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/native_bootstrap.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/packagemanager.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/repository_baseline.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/retired_suppressions.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/scaffold.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/service.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/transaction.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/upgrade.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/adoption/uvtool.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/catalogs/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/catalogs/slack_automations.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/corpus/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/corpus/manifest.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/corpus/snapshot.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/analysis.schema.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/baseline.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/initial_import.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/models.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/serialize.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/diagnostics/source.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/filesystem.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/json_boundary.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/_cloudbuild_autofix.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/action_metadata.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/analysis.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/autofix.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/chart_schemas.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/cloudbuild.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/cloudbuild_schema.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/complexity_baseline.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/devops_programs.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/devops_schema.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/devops_source.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/duplicate_code.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/embedded_shell.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/execution_plan.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/external.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/kubernetes_context.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/library_policy.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/mobile_tools.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/policy.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/prepared_devops.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/prepared_kubernetes.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/prepared_native.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/process.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/python_fixes.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/repo_standards.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/runner.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/scheduling.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/security_tools.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/shell_ast.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/shell_format.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/shell_policy.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/test_value.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/text_rule_base.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/text_rules/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/text_rules/_registry.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/text_rules/_slack_payload.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/text_rules/cloudbuild_contract.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/text_rules/slack_event_text_in_mrkdwn.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/textlint.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/toml_literals.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/unused_modules.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/_values.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/artifacts.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/causality.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/changes.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/ci_artifacts.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/make_checks.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/metadata_verification.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/native_test_setup.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/process.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/publish.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/registry.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/release_age.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/release_detect.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/retirement.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/reviewed_analysis.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/rollout.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/status.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/tags.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/test_selection.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/typescript.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/verification_process.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/release/wheel_tests.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/cli_examples.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/cli_reference_artifact.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/cloudbuild_schema_projection.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/comment_corpus.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/config_generation.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/docs.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/hooks.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/immutable_git.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/ledger.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/repository.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/ruff_freshness.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_authoring.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_catalog_artifact.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_changes.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_checkout.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_dependencies.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_examples.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_imports.mts +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_inventory_artifact.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_level_source.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_lifecycle.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_maintenance.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/rule_registration.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/shell_checks.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/repository/third_party_catalog_artifact.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/rules/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/rules/catalog.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/rules/contracts.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/rules/corpus_runner.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/rules/evaluation.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/schema_boundary.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/setup/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/setup/repository.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/typed_containers.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/yaml_boundary.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/py.typed +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/schemas/__init__.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/schemas/_paths.py +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/schemas/rule-catalog.v1.schema.json +0 -0
- {code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/schemas/slack-automations.v1.schema.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: code-standards
|
|
3
|
-
Version: 8.151.
|
|
3
|
+
Version: 8.151.40
|
|
4
4
|
Summary: One deterministic quality gate for Sarj Python, TypeScript, Swift, Kotlin, shell, SQL, IaC, and repository policy.
|
|
5
5
|
Project-URL: Homepage, https://code-standards.sarj.ai/
|
|
6
6
|
Project-URL: Documentation, https://code-standards.sarj.ai/cli/
|
|
@@ -31,7 +31,7 @@ Requires-Dist: referencing==0.37.0
|
|
|
31
31
|
Requires-Dist: repo-standards==6.14.0
|
|
32
32
|
Requires-Dist: ruff==0.17.2
|
|
33
33
|
Requires-Dist: sarj-iac-lint==0.31.0
|
|
34
|
-
Requires-Dist: sarj-python-lint==1.88.
|
|
34
|
+
Requires-Dist: sarj-python-lint==1.88.20
|
|
35
35
|
Requires-Dist: sarj-rule-contracts==0.5.0
|
|
36
36
|
Requires-Dist: sarj-sql-lint==0.33.0
|
|
37
37
|
Requires-Dist: shellcheck-py==0.11.0.1; (sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'darwin' and platform_machine == 'x86_64') or (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "code-standards"
|
|
3
|
-
version = "8.151.
|
|
3
|
+
version = "8.151.40"
|
|
4
4
|
description = "One deterministic quality gate for Sarj Python, TypeScript, Swift, Kotlin, shell, SQL, IaC, and repository policy."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.14"
|
|
@@ -32,7 +32,7 @@ dependencies = [
|
|
|
32
32
|
"ruff==0.17.2",
|
|
33
33
|
"shellcheck-py==0.11.0.1; (sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'darwin' and platform_machine == 'x86_64') or (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'win32' and platform_machine == 'AMD64')",
|
|
34
34
|
"sarj-iac-lint==0.31.0",
|
|
35
|
-
"sarj-python-lint==1.88.
|
|
35
|
+
"sarj-python-lint==1.88.20",
|
|
36
36
|
"sarj-sql-lint==0.33.0",
|
|
37
37
|
"typer==0.27.3",
|
|
38
38
|
]
|
|
@@ -2101,7 +2101,7 @@ def _staged_file_names(root: Path, *, include_deleted: bool = True) -> list[str]
|
|
|
2101
2101
|
cwd=root,
|
|
2102
2102
|
check=True,
|
|
2103
2103
|
capture_output=True,
|
|
2104
|
-
env=_git_environment(),
|
|
2104
|
+
env=_git_environment(staged=True),
|
|
2105
2105
|
)
|
|
2106
2106
|
names = [part.decode("utf-8", errors="surrogateescape") for part in completed.stdout.split(b"\0") if part]
|
|
2107
2107
|
return list(dict.fromkeys(names))
|
|
@@ -2165,22 +2165,46 @@ def _unstaged_versions(root: Path, staged_paths: Iterable[str]) -> tuple[str, ..
|
|
|
2165
2165
|
if git is None:
|
|
2166
2166
|
msg = "git is required for --staged"
|
|
2167
2167
|
raise OSError(msg)
|
|
2168
|
+
selected = set(_repository_relative_names(root, staged_paths))
|
|
2169
|
+
if not selected:
|
|
2170
|
+
return ()
|
|
2171
|
+
# Keep the index byte-exact; compare text content and refine opaque binary records internally.
|
|
2168
2172
|
completed = subprocess.run( # ruff: ignore[subprocess-without-shell-equals-true] -- fixed argv, no shell.
|
|
2169
|
-
[
|
|
2173
|
+
[
|
|
2174
|
+
git,
|
|
2175
|
+
"--literal-pathspecs",
|
|
2176
|
+
"-c",
|
|
2177
|
+
"diff.autoRefreshIndex=false",
|
|
2178
|
+
"diff",
|
|
2179
|
+
"--no-ext-diff",
|
|
2180
|
+
"--no-textconv",
|
|
2181
|
+
"--exit-code",
|
|
2182
|
+
"--numstat",
|
|
2183
|
+
"-z",
|
|
2184
|
+
"--no-renames",
|
|
2185
|
+
"--",
|
|
2186
|
+
*sorted(selected),
|
|
2187
|
+
],
|
|
2170
2188
|
cwd=root,
|
|
2171
|
-
check=
|
|
2189
|
+
check=False,
|
|
2172
2190
|
capture_output=True,
|
|
2173
|
-
env=_git_environment(),
|
|
2191
|
+
env=_git_environment(staged=True),
|
|
2174
2192
|
)
|
|
2175
|
-
|
|
2176
|
-
|
|
2193
|
+
if completed.returncode not in {0, 1}:
|
|
2194
|
+
completed.check_returncode()
|
|
2195
|
+
entries = _numstat_entries(completed.stdout)
|
|
2196
|
+
unstaged = {
|
|
2197
|
+
path
|
|
2198
|
+
for path, binary in entries.items()
|
|
2199
|
+
if path in selected and (not binary or _binary_worktree_differs(root, git, path))
|
|
2200
|
+
}
|
|
2177
2201
|
if selected:
|
|
2178
2202
|
tracked = subprocess.run( # ruff: ignore[subprocess-without-shell-equals-true] -- literal selected paths and NUL records preserve authored filenames.
|
|
2179
2203
|
[git, "--literal-pathspecs", "ls-files", "-v", "-z", "--", *sorted(selected)],
|
|
2180
2204
|
cwd=root,
|
|
2181
2205
|
check=True,
|
|
2182
2206
|
capture_output=True,
|
|
2183
|
-
env=_git_environment(),
|
|
2207
|
+
env=_git_environment(staged=True),
|
|
2184
2208
|
)
|
|
2185
2209
|
unstaged.update(
|
|
2186
2210
|
entry[2:].decode("utf-8", errors="surrogateescape")
|
|
@@ -2190,6 +2214,60 @@ def _unstaged_versions(root: Path, staged_paths: Iterable[str]) -> tuple[str, ..
|
|
|
2190
2214
|
return tuple(sorted(unstaged & selected))
|
|
2191
2215
|
|
|
2192
2216
|
|
|
2217
|
+
def _numstat_entries(output: bytes) -> dict[str, bool]:
|
|
2218
|
+
if not output:
|
|
2219
|
+
return {}
|
|
2220
|
+
if not output.endswith(b"\0"):
|
|
2221
|
+
msg = "git diff returned malformed numstat output"
|
|
2222
|
+
raise OSError(msg)
|
|
2223
|
+
entries: dict[str, bool] = {}
|
|
2224
|
+
for record in output[:-1].split(b"\0"):
|
|
2225
|
+
try:
|
|
2226
|
+
added, deleted, raw_path = record.split(b"\t", 2)
|
|
2227
|
+
except ValueError as exc:
|
|
2228
|
+
msg = "git diff returned malformed numstat output"
|
|
2229
|
+
raise OSError(msg) from exc
|
|
2230
|
+
if not raw_path:
|
|
2231
|
+
msg = "git diff returned malformed numstat output"
|
|
2232
|
+
raise OSError(msg)
|
|
2233
|
+
binary = added == deleted == b"-"
|
|
2234
|
+
if not binary and not (added.isdigit() and deleted.isdigit()):
|
|
2235
|
+
msg = "git diff returned malformed numstat output"
|
|
2236
|
+
raise OSError(msg)
|
|
2237
|
+
path = raw_path.decode("utf-8", errors="surrogateescape")
|
|
2238
|
+
if path not in entries or not binary:
|
|
2239
|
+
entries[path] = binary
|
|
2240
|
+
return entries
|
|
2241
|
+
|
|
2242
|
+
|
|
2243
|
+
def _binary_worktree_differs(root: Path, git: str, path: str) -> bool:
|
|
2244
|
+
# Binary numstat records can be stat-only. Internal patch generation compares canonical content and mode.
|
|
2245
|
+
completed = subprocess.run( # ruff: ignore[subprocess-without-shell-equals-true] -- fixed argv and literal selected path, no shell.
|
|
2246
|
+
[
|
|
2247
|
+
git,
|
|
2248
|
+
"--literal-pathspecs",
|
|
2249
|
+
"-c",
|
|
2250
|
+
"diff.autoRefreshIndex=false",
|
|
2251
|
+
"diff",
|
|
2252
|
+
"--no-ext-diff",
|
|
2253
|
+
"--no-textconv",
|
|
2254
|
+
"--exit-code",
|
|
2255
|
+
"--patch",
|
|
2256
|
+
"--no-renames",
|
|
2257
|
+
"--no-color",
|
|
2258
|
+
"--",
|
|
2259
|
+
path,
|
|
2260
|
+
],
|
|
2261
|
+
cwd=root,
|
|
2262
|
+
check=False,
|
|
2263
|
+
capture_output=True,
|
|
2264
|
+
env=_git_environment(staged=True),
|
|
2265
|
+
)
|
|
2266
|
+
if completed.returncode not in {0, 1}:
|
|
2267
|
+
completed.check_returncode()
|
|
2268
|
+
return bool(completed.stdout)
|
|
2269
|
+
|
|
2270
|
+
|
|
2193
2271
|
def _repository_relative_names(root: Path, paths: Iterable[str]) -> list[str]:
|
|
2194
2272
|
repository = root.resolve()
|
|
2195
2273
|
relative_names: list[str] = []
|
|
@@ -2207,11 +2285,11 @@ def _repository_relative_names(root: Path, paths: Iterable[str]) -> list[str]:
|
|
|
2207
2285
|
return list(dict.fromkeys(relative_names))
|
|
2208
2286
|
|
|
2209
2287
|
|
|
2210
|
-
def _git_environment() -> dict[str, str]:
|
|
2288
|
+
def _git_environment(*, staged: bool = False) -> dict[str, str]:
|
|
2211
2289
|
return {
|
|
2212
2290
|
name: value
|
|
2213
|
-
for name, value in os.environ.items() # ruff: ignore[banned-api] --
|
|
2214
|
-
if name in _GIT_SAFE_ENV
|
|
2291
|
+
for name, value in os.environ.items() # ruff: ignore[banned-api] -- staged hooks retain only Git's prospective index selection in addition to the closed environment.
|
|
2292
|
+
if name in _GIT_SAFE_ENV or (staged and name == "GIT_INDEX_FILE")
|
|
2215
2293
|
}
|
|
2216
2294
|
|
|
2217
2295
|
|
{code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/configs/cli-reference.v1.json
RENAMED
|
@@ -3316,6 +3316,6 @@
|
|
|
3316
3316
|
},
|
|
3317
3317
|
"program": "code-standards",
|
|
3318
3318
|
"schemaVersion": 1,
|
|
3319
|
-
"summary": "Adopt, check, fix, diagnose, and update sarj-ai standards (v8.151.
|
|
3320
|
-
"version": "8.151.
|
|
3319
|
+
"summary": "Adopt, check, fix, diagnose, and update sarj-ai standards (v8.151.40).",
|
|
3320
|
+
"version": "8.151.40"
|
|
3321
3321
|
}
|
{code_standards-8.151.0 → code_standards-8.151.40}/src/sarj_standards/libs/linting/devops_tools.py
RENAMED
|
@@ -65,6 +65,9 @@ TOOLS: Final = MappingProxyType(
|
|
|
65
65
|
)
|
|
66
66
|
|
|
67
67
|
|
|
68
|
+
_VERSION_QUERY_TIMEOUTS: Final = MappingProxyType({"knip": 15})
|
|
69
|
+
|
|
70
|
+
|
|
68
71
|
class NativeToolError(ValueError):
|
|
69
72
|
pass
|
|
70
73
|
|
|
@@ -140,7 +143,12 @@ def _installed_tool(tool: NativeTool, *, root: Path, runner: ProcessExecutor, ma
|
|
|
140
143
|
|
|
141
144
|
|
|
142
145
|
def _attest(tool: NativeTool, *, root: Path, runner: ProcessExecutor) -> NativeTool:
|
|
143
|
-
output = _version_output(
|
|
146
|
+
output = _version_output(
|
|
147
|
+
_argv(tool, tool.version_args),
|
|
148
|
+
root=root,
|
|
149
|
+
runner=runner,
|
|
150
|
+
timeout_seconds=_VERSION_QUERY_TIMEOUTS.get(tool.name, 5),
|
|
151
|
+
)
|
|
144
152
|
actual = _version(tool, output.stderr if tool.version_stderr else output.stdout)
|
|
145
153
|
if output.returncode or actual != tool.version:
|
|
146
154
|
msg = f"{tool.name} {actual} is installed; exact version {tool.version} is required"
|
|
@@ -148,9 +156,11 @@ def _attest(tool: NativeTool, *, root: Path, runner: ProcessExecutor) -> NativeT
|
|
|
148
156
|
return tool
|
|
149
157
|
|
|
150
158
|
|
|
151
|
-
def _version_output(
|
|
159
|
+
def _version_output(
|
|
160
|
+
argv: Sequence[str], *, root: Path, runner: ProcessExecutor, timeout_seconds: float = 5
|
|
161
|
+
) -> ProcessOutput:
|
|
152
162
|
try:
|
|
153
|
-
return runner.run(process_request(argv, cwd=root, timeout_seconds=
|
|
163
|
+
return runner.run(process_request(argv, cwd=root, timeout_seconds=timeout_seconds))
|
|
154
164
|
except subprocess.TimeoutExpired as error:
|
|
155
165
|
msg = f"{Path(argv[0]).name} query timed out after {error.timeout} seconds"
|
|
156
166
|
raise NativeToolError(msg) from error
|