• 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 perf/cache-getfullargspec
branch: perf/cache-getfullargspec
CHANGE BRANCH
x
Reset
  • perf/cache-getfullargspec
  • 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
  • fix/match-hash-stable
  • main
  • markers
  • master
  • 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

02 Jul 2026 09:10PM UTC coverage: 98.203% (+0.002%) from 98.201%
28641828000

Pull #78

github

Toilal
perf: cache getfullargspec on the hot matching path

getfullargspec is called for every validator/formatter/conflict-solver
invocation via loose.call. Its result depends only on the callable, and
those callables are stable singletons for a Rebulk instance's lifetime,
so the introspection is fully redundant across matching calls.

Wrap it in an unbounded lru_cache: ~11% faster repeated parses for a
one-line change. The set of distinct callables is small and bounded,
callables are hashable, and getfullargspec is a pure function of its
argument, so caching by identity cannot change behaviour.

closes #77

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ah1tBeqoVa8sM2CP5ibSJQ
Pull Request #78: perf: cache getfullargspec on the hot matching path

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

4 existing lines in 2 files now uncovered.

1913 of 1948 relevant lines covered (98.2%)

6.86 hits per line

Relevant lines Covered
Build:
Build:
1948 RELEVANT LINES 1913 COVERED LINES
6.86 HITS PER LINE
Source Files on perf/cache-getfullargspec
  • Tree
  • List 17
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28641828000 perf/cache-getfullargspec perf: cache getfullargspec on the hot matching path getfullargspec is called for every validator/formatter/conflict-solver invocation via loose.call. Its result depends only on the callable, and those callables are stable singletons for a Rebulk ... Pull #78 03 Jul 2026 06:04AM UTC Toilal github
98.2
28641828000 perf/cache-getfullargspec perf: cache getfullargspec on the hot matching path getfullargspec is called for every validator/formatter/conflict-solver invocation via loose.call. Its result depends only on the callable, and those callables are stable singletons for a Rebulk ... Pull #78 03 Jul 2026 06:04AM UTC Toilal github
98.2
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