You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upgrading unxt 2.0.0 → 2.0.1 (no other change) makes ty emit 13 false missing-argument errors in coordinax, failing its type-check gate. Runtime is unaffected — the full test suite passes.
Reproduction
In coordinax at 2680b1a (pristine, no source change), bump only the unxt floor:
- "unxt>=2.0",+ "unxt>=2.0.1",
$ uv run ty check .src/coordinax/vectors/_src/point.py:206:12: error[missing-argument] No argument provided for required parameter `rep`src/coordinax/vectors/_src/point.py:239:12: ...src/coordinax/vectors/_src/point.py:273:12: ...src/coordinax/vectors/_src/point.py:304:12: ...src/coordinax/vectors/_src/register_cx.py:361:12: ...src/coordinax/vectors/_src/tangent.py:198:12: ...packages/coordinaxs.interop.astropy/.../frames.py:344:14: ...packages/coordinaxs.interop.astropy/.../vec_constructors.py: (5 sites)packages/coordinaxs.interop.astropy/.../vec_converters.py:388:12: error[missing-argument] No arguments provided for required parameters `basis`, `semantic`
With unxt==2.0.0 the same tree reports 6 diagnostics, all warnings, and the gate passes.
The errors are wrong
The flagged call is
returncls(data=data, chart=chart)
and Point has no rep field at all:
>>> [f.name for f in dataclasses.fields(cxv.Point)]
['data', 'chart', 'frame']
data and chart have no default, frame does. So the call is complete, and rep is not a constructor parameter. Every test passes on 2.0.1 — this is inference, not behaviour.
Likely cause
2.0.1 backports #816 (adopt quax-blocks v5 __make__ for unchecked quantity construction, PR #817), which changes how the unchecked constructor is attached:
unxt 2.0.1 fails coordinax's ty gate with the phantom errors above.
So there is currently no combination that gives a downstream user the new ustrip and a passing type-check. Reverted the pins in GalacticDynamics/coordinax#716 pending this.
Upgrading
unxt2.0.0 → 2.0.1 (no other change) makestyemit 13 falsemissing-argumenterrors incoordinax, failing its type-check gate. Runtime is unaffected — the full test suite passes.Reproduction
In
coordinaxat2680b1a(pristine, no source change), bump only theunxtfloor:With
unxt==2.0.0the same tree reports 6 diagnostics, all warnings, and the gate passes.The errors are wrong
The flagged call is
and
Pointhas norepfield at all:dataandcharthave no default,framedoes. So the call is complete, andrepis not a constructor parameter. Every test passes on 2.0.1 — this is inference, not behaviour.Likely cause
2.0.1 backports #816 (adopt quax-blocks v5
__make__for unchecked quantity construction, PR #817), which changes how the unchecked constructor is attached:That appears to change the
__init__signature ty synthesises for downstream subclasses of the affected bases.Why it matters now
This blocks the
ustripwork from #880. The chain is:unxts.linalg2.0.4 ships the newustrip/unit_ofdispatches — the thing downstream wants.QuantityMatrix._mk, which needsunxt >= 2.0.1(its declaredunxt>=2.0.0floor is wrong — unxts.linalg 2.0.4 is unusable with any releasedunxt:QuantityMatrix._mkdoes not exist #886).unxt2.0.1 failscoordinax'stygate with the phantom errors above.So there is currently no combination that gives a downstream user the new
ustripand a passing type-check. Reverted the pins in GalacticDynamics/coordinax#716 pending this.