Skip to main content

Shared infrastructure for the coop-*-review standards linters: progress, diagnostics, severity/fingerprint, inline + baseline suppressions, self-update, and the rules.yml config layer.

Project description

coop-review-core

Shared infrastructure for the coop-*-review family of offline, advisory standards linters (coop-sql-review, coop-dax-review, and future siblings).

It holds the tool-agnostic building blocks that were otherwise duplicated across each linter, so an infrastructure fix lands once instead of being copy-pasted (and silently drifting) between repos. Each linter keeps its own parsers, rules, Finding/Result model, and standards.md; it parameterizes the core with its own package name, tool name, and standards file.

What's in it

Module What it provides
coop_review_core.progress Stderr-only, TTY-gated scan progress (Progress, should_enable).
coop_review_core.diagnostics The Diagnostic model + processing-problem category constants.
coop_review_core.severity Severity ordering (SEVERITIES, severity_rank, at_or_above) + the stable, line-independent fingerprint.
coop_review_core.suppressions Inline <tool>:ignore directives + a fingerprint baseline (scan_directives, is_inline_suppressed, write_baseline, load_baseline).
coop_review_core.upgrade Self-update planning — the only networked part (build_plan, upgrade_command, apply_plan).
coop_review_core.config The rules.yml config layer + standards resolution (RuleConfig, apply_config, resolve_standards_path, standards_info).

Everything is deterministic and offline except upgrade (PyPI metadata / git fetch), and nothing here ever blocks a build.

How a linter uses it

from coop_review_core.config import RuleConfig, apply_config, resolve_standards_path
from coop_review_core.suppressions import scan_directives, is_inline_suppressed
from coop_review_core.upgrade import build_plan, upgrade_command

std = resolve_standards_path(user_path, BUNDLED_STANDARDS)          # tool passes its own bundled copy
rules = apply_config(all_rules(), RuleConfig.load(config_path))     # works on the tool's own Rule type
directives = scan_directives(file_text, tool="coop-sql-review")     # tool passes its own marker
plan = build_plan("coop-sql-review", __version__)                  # tool passes its name + version

apply_config is structural: it works on any rule dataclass with id / severity / default_enabled / params fields, so each linter keeps its own Rule.

Develop

python -m venv .venv && .venv/bin/pip install -e ".[dev]"
.venv/bin/pytest -q
.venv/bin/ruff check . && .venv/bin/ruff format --check .

Release = bump __version__ in src/coop_review_core/__init__.py (the single source — pyproject derives it), then tag vX.Y.Z; publish.yml builds, publishes to PyPI via trusted publishing, and cuts a GitHub Release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coop_review_core-0.1.2.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

coop_review_core-0.1.2-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file coop_review_core-0.1.2.tar.gz.

File metadata

  • Download URL: coop_review_core-0.1.2.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for coop_review_core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 04a99db88beda1dddb4bd33c67b40f829d6e6d4c57852b36422fd5b6f5ea0877
MD5 235591e0c79946cb1f542cd23f2a3184
BLAKE2b-256 b9ea2c781143610e731bb88a6e96e7ae26130d65dadd3bdfa57f20944797d549

See more details on using hashes here.

Provenance

The following attestation bundles were made for coop_review_core-0.1.2.tar.gz:

Publisher: publish.yml on kabukisensei/coop-review-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file coop_review_core-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for coop_review_core-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d0c56ae03ba9048648f18e745ea65617f364541d256100cdf7ed907bf0066368
MD5 baae540689351bf3a26485e2e270d07e
BLAKE2b-256 3b13add7e6d70beefb3fcb5314e1ab17b140a71656041c728b6c3bf1fc196331

See more details on using hashes here.

Provenance

The following attestation bundles were made for coop_review_core-0.1.2-py3-none-any.whl:

Publisher: publish.yml on kabukisensei/coop-review-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page