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

bramp / build-along / 19055382140
89%

Build:
DEFAULT BRANCH: main
Ran 04 Nov 2025 02:03AM UTC
Jobs 1
Files 54
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

04 Nov 2025 02:02AM UTC coverage: 88.118% (+0.8%) from 87.31%
19055382140

push

github

bramp
Refactor classifiers to two-phase candidate pattern

This is a major architectural refactoring that separates element evaluation
from classification into two distinct phases:

Phase 1 - evaluate(): Score elements and construct LegoPageElement objects
Phase 2 - classify(): Select winners from pre-built candidates

Key changes:
- Renamed calculate_scores() to evaluate() across all classifiers
- Moved candidate construction from classify() into evaluate()
- Removed deprecated 'scores' parameter from all classifier methods
- Introduced Candidate dataclass to store scoring + construction results
- Updated PartsImageClassifier to use instance variables instead of scores dict
- Removed unused imports (Any, ScoreKey)

Benefits:
- Single parse: Elements constructed once in evaluate(), not re-parsed
- Full decision trail: Candidates preserve scores, failures, and reasons
- Re-evaluation ready: All candidates available for hint-based adjustments
- Cleaner separation: Scoring logic separate from winner selection

Updated classifiers:
- PageNumberClassifier
- StepNumberClassifier
- PartCountClassifier
- PartsListClassifier
- PartsImageClassifier

All tests pass. Documentation updated to reflect new architecture.

113 of 129 new or added lines in 7 files covered. (87.6%)

6 existing lines in 3 files now uncovered.

3367 of 3821 relevant lines covered (88.12%)

0.88 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
98.91
-0.13% src/build_a_long/pdf_extract/classifier/page_number_classifier.py
1
96.61
-0.26% src/build_a_long/pdf_extract/classifier/part_count_classifier.py
4
56.18
19.08% src/build_a_long/pdf_extract/classifier/parts_image_classifier.py
5
93.16
-0.06% src/build_a_long/pdf_extract/classifier/parts_list_classifier.py
5
93.1
-3.67% src/build_a_long/pdf_extract/classifier/step_number_classifier.py

Uncovered Existing Lines

Lines Coverage ∆ File
1
88.24
0.0% src/build_a_long/pdf_extract/classifier/label_classifier.py
2
56.18
19.08% src/build_a_long/pdf_extract/classifier/parts_image_classifier.py
3
76.4
1.24% src/build_a_long/pdf_extract/main.py
Jobs
ID Job ID Ran Files Coverage
1 19055382140.1 04 Nov 2025 02:03AM UTC 54
88.12
GitHub Action Run
Source Files on build 19055382140
  • Tree
  • List 54
  • Changed 8
  • Source Changed 7
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #19055382140
  • b553dd60 on github
  • Prev Build on main (#19055260581)
  • Next Build on main (#19058602748)
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