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

Toilal / rebulk
96%
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 fix/match-hash-stable
branch: fix/match-hash-stable
CHANGE BRANCH
x
Reset
  • fix/match-hash-stable
  • 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-contract-check
  • 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
  • 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

28 Jun 2026 10:52AM UTC coverage: 96.152%. First build
28319864212

Pull #51

github

Toilal
fix(match): make Match.__hash__ independent of the mutable value

Match.__hash__ mixed in self.value, which has a public setter (and is set
during pattern processing), so a Match placed in a set/dict and then mutated
became unfindable -- a broken hash/eq contract. Hash on the span only (a
subset of the __eq__ fields, so equal matches still share a hash); same-span
matches with different values now collide harmlessly and __eq__ separates
them. Adds a regression test that mutates value while the match sits in a set.

Closes #34

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pull Request #51: fix(match): make Match.__hash__ independent of the mutable value

1 of 1 new or added line in 1 file covered. (100.0%)

1799 of 1871 relevant lines covered (96.15%)

13.43 hits per line

Relevant lines Covered
Build:
Build:
1871 RELEVANT LINES 1799 COVERED LINES
13.43 HITS PER LINE
Source Files on fix/match-hash-stable
  • Tree
  • List 17
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28319864212 fix/match-hash-stable fix(match): make Match.__hash__ independent of the mutable value Match.__hash__ mixed in self.value, which has a public setter (and is set during pattern processing), so a Match placed in a set/dict and then mutated became unfindable -- a broken ... Pull #51 28 Jun 2026 10:53AM UTC Toilal github
96.15
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