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

bluesky / hklpy2 / 24361263520
100%

Build:
DEFAULT BRANCH: main
Ran 13 Apr 2026 07:00PM UTC
Jobs 1
Files 21
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

13 Apr 2026 06:57PM UTC coverage: 100.0%. Remained the same
24361263520

push

github

web-flow
feat: add GeometryDescriptor and SolverBase geometry registry (Phase 1) (#298)

* feat #293 add GeometryDescriptor dataclass to backends/typing

Introduces GeometryDescriptor, a dataclass that captures the static
facts about a diffractometer geometry (name, pseudo/real axis names,
modes, default mode, per-mode extra axis names, description) independent
of any solver backend library.

Exports GeometryDescriptor from hklpy2.backends.__init__ alongside
the existing SolverBase, ReflectionDict, SampleDict, and
SolverMetadataDict.

Agent: OpenCode (claudesonnet46)

* feat #292 add geometry registry and register_geometry() to SolverBase

Add SolverBase._geometry_registry (per-class dict) and
SolverBase.register_geometry() classmethod so solver subclasses can
register GeometryDescriptor objects at runtime, enabling dynamic and
ad-hoc diffractometer geometry definitions.

Refactor ThTthSolver to drive all property dispatch (pseudo_axis_names,
real_axis_names, modes, extra_axis_names, geometries()) from the
registry rather than hard-coded string conditionals.  The built-in
TH TTH Q geometry is registered at module import time via a module-level
GeometryDescriptor.

Add test_geometry_descriptor.py with parametrized tests covering
GeometryDescriptor construction, field independence, register_geometry()
validation, geometries() ordering, overwrite semantics, registry
isolation between SolverBase and ThTthSolver, property dispatch, and
dynamic runtime registration.

Agent: OpenCode (claudesonnet46)

* ci: enforce 100% code coverage via fail_under and CI report

Add [tool.coverage.report] to pyproject.toml with fail_under=100 and
exclude_also patterns for abstract-method stubs, TYPE_CHECKING guards,
and ellipsis-only lines that are genuinely untestable.

Remove the '|| true' suppressor from the 'coverage report' step in
code.yml so that a coverage shortfall now fails the CI build rather
than being silently swallowed.

Agent: OpenCode (claudesonnet46)

* ci: omit tes... (continued)

53 of 53 new or added lines in 4 files covered. (100.0%)

3034 of 3034 relevant lines covered (100.0%)

4.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24361263520.1 13 Apr 2026 07:01PM UTC 21
100.0
GitHub Action Run
Source Files on build 24361263520
  • Tree
  • List 21
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 7e1cc8e9 on github
  • Prev Build on main (#24357447060)
  • Next Build on main (#24378085776)
  • Delete
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