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

openvax / topiary / 34801412262-1
92%

Build:
DEFAULT BRANCH: master
Ran 14 Sep 2026 03:11AM UTC
Jobs 1
Files 43
Run time 1min
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

14 Sep 2026 03:06AM UTC coverage: 92.136% (+0.04%) from 92.101%
34801412262-1

push

github

web-flow
Dedicated CachedPredictorCoverageError; diagnostic and efficiency fixes (#308)

An ultra code review of 5.55.0/5.55.1's changes (#302, #300, #304)
found several real issues alongside some already-considered and
declined ones. This addresses the confirmed, low-risk findings and
files follow-up issues for the two that are real design questions
rather than bugs.

Fixed, each verified independently before the fix:

- CachedPredictor raised bare KeyError for its two intentional
  coverage failures. main()'s handler caught it, which meant an
  unrelated dict-lookup bug anywhere in predict_epitopes_from_args'
  call graph would silently become a clean CLI error instead of a
  traceback. Added CachedPredictorCoverageError(KeyError) as the
  specific, exported type both raise sites use; the CLI now catches
  that instead of bare KeyError. Existing `except KeyError` callers
  are unaffected since it subclasses KeyError.

- _raise_on_uncovered_occurrences reported only the first mismatched
  flank context when a cache held more than one for the same
  (peptide, allele, kind, allele_set) - reproduced directly with two
  genuinely distinct cached contexts, only one of which the old
  message named. Now lists every stored context (capped at 5, with an
  accurate "(and N more)" past the cap driven by a true count kept
  independent of the cap) instead of silently dropping the rest.
  unmatched_context's accumulation is capped for the same reason: nothing
  past the first few rows was ever read.

- _flanks_apply_at sliced and upper-cased the whole remaining sequence
  on every (cached row, occurrence) pair, when only the cached flank's
  own length can ever match. Bounded the slice to that length;
  verified equivalent to the old logic across 20,000 randomized trials
  before relying on it, plus the existing edge-case tests (shorter
  available context, flank longer than available context).

- A bracket after an identifier the parser doesn't recognize as a
  kind now... (continued)

42 of 44 new or added lines in 5 files covered. (95.45%)

7123 of 7731 relevant lines covered (92.14%)

0.92 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
90.94
0.29% topiary/cached.py
1
95.78
0.38% topiary/wide.py
Jobs
ID Job ID Ran Files Coverage
1 34801412262-1.1 14 Sep 2026 03:11AM UTC 43
92.14
GitHub Action Run
Source Files on build 34801412262-1
  • Tree
  • List 43
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34801412...
  • c9f2e7b5 on github
  • Prev Build on master (#34607484...)
  • Next Build on master (#34803732...)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc