Tags: QTSurfer/api-client-python
Tags
feat: regenerate for spec 0.107.0, and fix the endpoint shim Adds fail_reason to ExecuteSweepResult: why a sweep produced less than it should have, as reported by the first shard to fail. The backend always sent it and the contract never declared it, so the client dropped it silently. validate_strategy 202 now deserializes into StrategyState, the same type as its 200, and the generator stops minting a model of its own for it. The consequence for callers is that the status code, not the body, is what tells the two responses apart -- sync and asyncio hand back a StrategyState either way. Separately, and not from this spec bump: five endpoints existed in the generated tree but were never re-exported through qtsurfer.api.client.api, which the package docstring points at as the endpoint surface. list_segment_instruments and the four sweep operations raised ImportError when imported the documented way, and the README listed one of them as though it worked. All five are now re-exported, and the smoke test holds the shim to the generated tree in both directions so a sixth cannot go missing quietly.
fix: pin hatchling below 1.32 to avoid invalid wheel metadata hatchling 1.32.0 emits Metadata-Version 2.5, which the pinned twine release does not recognize as valid (InvalidDistribution on twine check, blocking publish). 1.31.0 emits 2.4 and passes clean. Unrelated to the spec content change; caught only because it blocked the publish job for this release.
chore: normalize operationId names for API spec 0.99.1 Regenerated from the updated spec, which renames all 16 operationIds to a consistent verb-based scheme (no request/response shape changes). Also pulls in the Execute Sweep feature added upstream in 0.99.0 (executeSweep, getSweepResult, cancelSweep operations + supporting schemas), since this client's prior baseline was 0.98.0 -- generated only, no hand-written wrapper coverage added for sweep yet. Version tracks the spec: 0.98.0 -> 0.99.1.