Remove dead get_market_positions and fix 0.5.0 ImportError cleanly#385
Merged
Remove dead get_market_positions and fix 0.5.0 ImportError cleanly#385
Conversation
`get_market_positions` referenced `websocket_api.MarketPositions` and `websocket_api.GetMarketPositions`, neither of which exist in the proto schema, the Rust backend, or the generated websocket_api module. The method could never have worked — it was only invisible because 0.4.x had `from __future__ import annotations` making the dangling return type lazy. 0.5.0 dropped the future import, surfacing the bug at `import metagame` time and crash-looping every consumer. 0.5.1 plastered over it by restoring `from __future__ import annotations`, but that approach hides similar dead code from ever being caught. Instead, delete the method (positions are already streamed via Portfolio on the normal ServerMessage channel) and keep annotations eagerly evaluated. Bumps to 0.5.2.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Supersedes #384. 0.5.0 crash-looped every
metagameconsumer becauseimport metagameraisedAttributeErroronwebsocket_api.MarketPositions— a class that does not exist anywhere: not in the proto schema, not in the Rust backend, not in the generatedwebsocket_apimodule.get_market_positionsreferenced two phantom messages (MarketPositionsandGetMarketPositions) and could never have worked at runtime; it was only invisible because 0.4.x hadfrom __future__ import annotationsmaking the return type lazy.0.5.1 plastered over the crash by re-adding the future import. That works, but it permanently hides similar dead references from ever being caught at import. Better fix: delete the dead method, keep annotations eager.
Positions are already streamed to clients via the
Portfoliomessage on the normalServerMessagechannel, so nothing is lost by removing this method.Bumps to 0.5.2.
Test plan
uv sync && uv run python -c "from metagame import TradingClient"succeedsinspect.get_annotations(method, eval_str=True)resolves for everyTradingClientmethod (no other dangling references)uv buildproduces 0.5.2 artifactsmetagame==0.5.2in scenarios and confirm Fly smoke checks pass