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

hbmartin / pyldraw3
94%
main: 94%

Build:
Build:
LAST BUILD BRANCH: release-prep-1.1.0-followup
DEFAULT BRANCH: main
Repo Added 29 Jul 2025 03:31PM UTC
Files 32
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 feedback-requests
branch: feedback-requests
CHANGE BRANCH
x
Reset
  • feedback-requests
  • address-upstream-issues
  • codex/fix-bom-model-import-cycle
  • convenience-and-colour-canon
  • feedback-followups
  • fix-bom-model-import-cycle-followup
  • fix-direct-colour-and-download-dedup
  • fixes-and-followups
  • gh-pages
  • improvements-followup
  • keywords
  • keywords-followup
  • keywords-followup-2
  • main
  • model-building-bom-catalog
  • model-io-and-dx
  • pr-7-followup
  • release-prep-1.1.0
  • release-prep-1.1.0-followup
  • review-fixes
  • v0.11.0
  • v0.12.0
  • v1.0.0
  • v1.1.0
  • zensical
  • zensical-auto-api
  • zensical-followup

08 Jul 2026 07:41PM UTC coverage: 93.589% (+1.0%) from 92.617%
28970619988

push

github

hbmartin
1. Finish detection — Parts.ColourAttributes now includes GLITTER, SPECKLE, LUMINANCE (not MATERIAL, which always co-occurs and would be noise). Added Colour.is_solid for the "solid palette" use case. Verified: code 114 now loads as alpha=128, ['GLITTER'].
2. Self-healing regeneration — __hash__ is now a fingerprint of generator schema version + parts.lst MD5 + ldconfig.ldr MD5 (ldraw/generation/__init__.py). Any of the three changing — including upgrading pyldraw — triggers regeneration automatically. I chose auto-heal over the suggested stamp-and-warn, mirroring the existing CATALOG_SCHEMA_VERSION pattern.
3. Identifier dedupe — colliding sanitized symbols get part-code suffixes with a warning, and a DuplicateSymbolError guards the impossible-to-fix case. Regenerating the real 2018-02 library now yields 0 collisions (was 4); all three Tile1X1WithSilver_Pattern tiles are importable. The deeper same-description collapse (~49 = alias parts) now logs one aggregate message.
4. Stubs discoverability — ldraw generate ends with a "run ldraw stubs" hint (the stub package itself already existed on this branch).
5. Geometry queries — new ldraw/part_geometry.py with Parts.bounding_box(), Parts.studs(), Parts.stud_positions(), exported at top level as BoundingBox/StudReference. Recursive subfile resolution with memoized per-file geometry; stud kind is judged from the primitive's own description ("tube"/"underside" → not a top stud) rather than a pinned name list. Against the real library: 3001 gives 8 studs at the canonical positions and box (−40,−4,−20)..(40,24,20); hollow studs and underside tubes classify correctly.
6. Step API + headers — Model.add_step(), Model.steps, and set_header(ldraw_org=..., license=...) writing 0 !LDRAW_ORG/0 !LICENSE in canonical order. (The writer itself already existed here.)
7. Case preservation — the design reversal: Piece and split_reference preserve input case, DEFAULT_SUFFIX is .dat, and all comparisons casefold (find_pieces,... (continued)

238 of 238 new or added lines in 13 files covered. (100.0%)

2292 of 2449 relevant lines covered (93.59%)

1.87 hits per line

Relevant lines Covered
Build:
Build:
2449 RELEVANT LINES 2292 COVERED LINES
1.87 HITS PER LINE
Source Files on feedback-requests
  • Tree
  • List 31
  • Changed 13
  • Source Changed 0
  • Coverage Changed 13
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28970619988 feedback-requests 1. Finish detection — Parts.ColourAttributes now includes GLITTER, SPECKLE, LUMINANCE (not MATERIAL, which always co-occurs and would be noise). Added Colour.is_solid for the "solid palette" use case. Verified: code 114 now loads as alpha=128, ['G... push 08 Jul 2026 07:41PM UTC hbmartin github
93.59
See All Builds (61)
  • Repo on GitHub
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