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.0.tar.gz (16.8 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.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: coop_review_core-0.1.0.tar.gz
  • Upload date:
  • Size: 16.8 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.0.tar.gz
Algorithm Hash digest
SHA256 2d104e0a8860cf881578575bdd3ea0641475bd1bd216214bc1e9198675d16140
MD5 c4d60415e27ce4fc1a638fa8813d00b7
BLAKE2b-256 f3bc8b0f17143a083b97e883fcefd5f4ec51f787c49ba1ff06f4653fa55521ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for coop_review_core-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f41131cea67f828f0b8a0182fd21d6c55dc4ea3bdaac9acfc6c7387105385b53
MD5 9c79c526e34b8df38c59add77c78c00c
BLAKE2b-256 1708334c4153fca411d4722807bb46feddb5460f34b46385efb039e928559492

See more details on using hashes here.

Provenance

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