• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Toilal / rebulk
98%
master: 97%

Build:
Build:
LAST BUILD BRANCH: docs/zensical-site
DEFAULT BRANCH: master
Repo Added 05 Sep 2015 09:44AM UTC
Files 17
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH feat/declared-keys-contract-check
branch: feat/declared-keys-contract-check
CHANGE BRANCH
x
Reset
  • feat/declared-keys-contract-check
  • 0.5.0
  • 0.6.0
  • 0.6.1
  • 0.6.2
  • 0.6.3
  • 0.6.4
  • 0.6.5
  • 0.7.0
  • 0.7.1
  • 0.7.2
  • 0.7.3
  • 0.7.4
  • 0.7.5
  • 0.7.6
  • 0.7.7
  • 0.8.1
  • 0.8.2
  • 0.9.0
  • 1.0.0
  • 1.0.1
  • 2.0.0
  • 2.0.0b1
  • 2.0.1
  • chain
  • chore/cleanup-toposort
  • chore/remove-dead-code
  • chore/tooling-coverage-mypy
  • chore/uv-ruff-mypy-migration
  • deprecation-warnings
  • develop
  • docs
  • docs/functional-properties-check-keys
  • docs/v5-design
  • docs/zensical-site
  • feat/check-unused-declared-keys
  • feat/declared-keys-output-projection
  • feat/key-formatter
  • feat/named-variadic
  • feat/to-dict-typing
  • feat/typed-keys-children
  • feat/typed-keys-poc
  • feat/typed-query-overloads
  • feat/unify-key-param
  • feature/introspector
  • feature/upgrade-dependencies
  • fix/chain-sort-before-groupby
  • fix/declared-keys-skip-private
  • fix/key-reject-structured-types
  • fix/match-hash-stable
  • main
  • markers
  • master
  • perf/cache-getfullargspec
  • perf/extend-safe-set
  • py35
  • python-3.12-support
  • python-3.6
  • python2.6
  • refactor/chainpart-typing
  • refactor/decouple-chain-builder
  • refactor/pattern-dry
  • regex-fixes
  • rules
  • semantic-release
  • toposort
  • v0.0.1
  • v0.1.0
  • v0.2.0
  • v0.2.1
  • v0.3.0
  • v0.4.0
  • v0.4.1
  • wip

29 Jun 2026 11:39AM UTC coverage: 98.225% (+0.1%) from 98.102%
28369298945

Pull #72

github

Toilal
feat(key): opt-in debug check that match values match declared Key.value_type

A declared Key.value_type states the output type, but the actual conversion is
the per-pattern formatter (which declare_keys lets a pattern override), and
nothing verified the two agree — a mismatch silently turned the declared type
into a lie.

Add an opt-in contract check (off by default, zero cost in production): when
debug.CHECK_DECLARED_KEYS is enabled (env REBULK_CHECK_DECLARED_KEYS=1),
Rebulk.matches asserts every named match value is an instance of the same-named
declared key's value_type, raising TypeError on a mismatch via the new
Matches.check_declared_keys(). Escape hatches keep it false-positive free: None
values, value=-mapped literals (never converted), and per-match (children)
validation.

The whole suite is runnable with the check on; a dedicated CI job runs it
across both regex backends so each declared value_type becomes an enforced
contract. Documented in README and CLAUDE.md.

Closes #68

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J4Ryxr6Fc7sCERn6WChpqv
Pull Request #72: feat(key): opt-in debug check that match values match declared Key.value_type

18 of 18 new or added lines in 3 files covered. (100.0%)

1881 of 1915 relevant lines covered (98.22%)

13.73 hits per line

Relevant lines Covered
Build:
Build:
1915 RELEVANT LINES 1881 COVERED LINES
13.73 HITS PER LINE
Source Files on feat/declared-keys-contract-check
  • Tree
  • List 17
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28369298945 feat/declared-keys-contract-check feat(key): opt-in debug check that match values match declared Key.value_type A declared Key.value_type states the output type, but the actual conversion is the per-pattern formatter (which declare_keys lets a pattern override), and nothing verif... Pull #72 29 Jun 2026 11:39AM UTC Toilal github
98.22
28368935437 feat/declared-keys-contract-check feat(key): opt-in debug check that match values match declared Key.value_type A declared Key.value_type states the output type, but the actual conversion is the per-pattern formatter (which declare_keys lets a pattern override), and nothing verif... push 29 Jun 2026 11:32AM UTC Toilal github
98.12
See All Builds (485)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc