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

sandialabs / LoQS
88%

Build:
DEFAULT BRANCH: main
Repo Added 10 Apr 2026 01:39AM UTC
Files 70
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 main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • bugfix-surf17
  • feat-103
  • feat-104
  • feat-51
  • feat-72
  • feat-96
  • feat-97-1
  • feat-97-2
  • feat-ftsweeps
  • feat-leakage
  • feature-cov-badge
  • feature-improve-serial
  • feature-patch-tweaks
  • kmrudin-patch-1
  • main
  • rileyjmurray-patch-1
  • stimcircuit-refactor

19 Aug 2026 07:17AM UTC coverage: 87.717% (-1.9%) from 89.656%
32227180573

push

github

web-flow
Introduce `loqs.tools.migrate` and the `loqs-migrate` CLI (#114)

* Fix PatchDictCastableTypes's rename target in the version-2 table

It pointed to PatchDictLike in loqs.core.recordables.patchdict, but that
module no longer has a real implementation to rename within -- only a
construction-only legacy shim exporting PatchDict alone, with no
PatchDictLike attribute at all. Redirects to PatchLayoutLike in
loqs.core.recordables.patchlayout instead, the same real module PatchDict
itself already redirects to. Found via a new regression test asserting
every IMPORT_LOCATION_CHANGES_BY_VERSION target is a live, importable
attribute, not from a bug report.

* Add the loqs.tools.migrate core detect/resolve/rewrite library

A library for rewriting a user's own .py/MyST Markdown source files
still using pre-1.2 LoQS APIs, distinct from Serializable's own
decode-time compatibility machinery (which only keeps already-serialized
data readable, not source code).

Three independent passes, chained together by migrate_source: straight
(module, name) renames/removals (renames.py, built on libcst's
RenameCommand plus Serializable's own IMPORT_LOCATION_CHANGES_BY_VERSION
table as data); pre-#104 positional InstructionLabel construction,
rewritten to keyword form when the target instruction can be resolved
against a caller-supplied registry (labels.py, config.py), flagged for
manual review otherwise; and detect-only patterns whose replacement is a
semantic change rather than a pure rename (.cast(), include_idles=, an
"Iz" string -- flags.py). notebook.py extracts/splices MyST code-cell
fences so the same passes run against docs/notebooks/*.md too.

Two real correctness bugs were avoided by testing against real files,
not synthetic ones: reusing Serializable._update_imports directly on
whole files corrupts unrelated code shaped like its multi-line-import
heuristic, and a blind text substitution for renamed-name usages
corrupts docstrings that narrate a rename's own history ... (continued)

2507 of 3056 branches covered (82.04%)

Branch coverage included in aggregate %.

8069 of 9001 relevant lines covered (89.65%)

0.9 hits per line

Relevant lines Covered
Build:
Build:
9001 RELEVANT LINES 8069 COVERED LINES
0.9 HITS PER LINE
Source Files on main
  • Tree
  • List 70
  • Changed 47
  • Source Changed 0
  • Coverage Changed 47
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
32227180573 main Introduce `loqs.tools.migrate` and the `loqs-migrate` CLI (#114) * Fix PatchDictCastableTypes's rename target in the version-2 table It pointed to PatchDictLike in loqs.core.recordables.patchdict, but that module no longer has a real implementat... push 19 Aug 2026 07:37AM UTC web-flow github
87.72
32216597962 feat-97-2 Merge 5c21a20cd into aa8fdf680 Pull #114 19 Aug 2026 05:10AM UTC web-flow github
87.72
32206328794 feat-97-2 Merge 7b84d2c2c into aa8fdf680 Pull #114 19 Aug 2026 02:17AM UTC web-flow github
87.72
32096351089 main SERIALIZATION_VERSION bump to version 2 (#113) * Fix _get_cumulative_changes's infinite loop and a latent KeyError _get_cumulative_changes's `while version < SERIALIZATION_VERSION` loop never incremented `version`, causing an infinite loop once ... push 18 Aug 2026 04:08AM UTC web-flow github
89.66
32095171861 feat-97-1 Merge 7c56a902a into 1d4f2f882 Pull #113 18 Aug 2026 03:46AM UTC web-flow github
89.66
31993797025 main Multiqubit generalization of `PatchDict` to `PatchLayout` (#112) * Add QECCodePatch.data_qubits and the PatchLayout/PatchRelation classes (#103) QECCodePatch.data_qubits maps a patch's template data qubits onto its own real qubits, the same comp... push 17 Aug 2026 04:30AM UTC web-flow github
89.13
31989429891 feat-103 Merge 814aedbbd into 145f72171 Pull #112 17 Aug 2026 03:18AM UTC web-flow github
89.13
31952745738 main Multi-qubit, multi-outcome instruments in statevector backend (#110) * Enable 2Q/4Q parity-check instruments in the statevector backend (#51) ZBasisOutcomeOperationDictInstrumentRep gains an outcome_qubits field, decoupled from qubit_labels, so ... push 16 Aug 2026 02:50PM UTC web-flow github
88.84
31938227986 feat-104 Merge 2d3317ab3 into 0168c4ba0 Pull #111 16 Aug 2026 09:32AM UTC web-flow github
88.72
31931039313 feat-51 Merge 77a3c9770 into 0168c4ba0 Pull #110 16 Aug 2026 06:42AM UTC web-flow github
88.38
See All Builds (72)
  • 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