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.2.0.tar.gz (24.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.2.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: coop_review_core-0.2.0.tar.gz
  • Upload date:
  • Size: 24.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.2.0.tar.gz
Algorithm Hash digest
SHA256 9b04eb0a5091ca39b6e7dff0b8e3ea366e871f97f30adff6f61801c8cb1bbfdf
MD5 e06f6be000b2c6594abaa902b0094227
BLAKE2b-256 4b243e88f3707417e645a36add90cb33f7b6acc4c97fc22253e05a110c1a4661

See more details on using hashes here.

Provenance

The following attestation bundles were made for coop_review_core-0.2.0.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.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for coop_review_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab49fa427eab8c4b61895c4acb9f73688916a5324f29fcdce29deccd5d1dcee5
MD5 94f5d8b16f494a28ede0001163245776
BLAKE2b-256 852e6b6604af81ce3408e7b49041ea8179f4ce946c68d03e69c9341629ec4558

See more details on using hashes here.

Provenance

The following attestation bundles were made for coop_review_core-0.2.0-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