feat: add combo market catalog#86
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 0fbae90. Configure here.
| elif isinstance(raw_cursor, str) and raw_cursor: | ||
| next_cursor = raw_cursor | ||
| else: | ||
| raise UnexpectedResponseError("Combo market next_cursor did not match expected shape") |
There was a problem hiding this comment.
Missing LTE pagination sentinel
Medium Severity
_parse_combo_markets_page treats any non-empty next_cursor string as a real cursor. Elsewhere in this SDK, LTE= is the documented end-of-pagination sentinel and is normalized to no next page via next_cursor_or_none. If the RFQ combo-markets API uses that sentinel, callers will see has_more true and issue another request with cursor=LTE= instead of stopping.
Reviewed by Cursor Bugbot for commit 0fbae90. Configure here.


Adds typed Combo market catalog support to the Python SDK via
list_combo_marketson sync/async public and secure clients.\n\nVerification:\n-uv run ruff format src/polymarket tests/unit/test_builder_trades.py tests/unit/test_streams_subscribe_router.py\n-uv run ruff check src/polymarket tests/unit/test_builder_trades.py tests/unit/test_streams_subscribe_router.py\n-uv run pyright\n-uv run pytest tests/unit/test_builder_trades.py tests/unit/test_streams_subscribe_router.py\n- Live smoke:PublicClient().list_combo_markets(page_size=1).first_page()Note
Low Risk
Additive read-only public API and transport plumbing; existing keyset pagination keeps default after_cursor behavior.
Overview
Adds typed Combo market catalog support: clients can page through RFQ combo-eligible markets via
list_combo_markets, with optionalexcludeof CTF condition IDs.Wires a new
rfqHTTP service (environment.rfq_url, dedicated transport on sync/async public and secure clients, lifecycle close).KeysetPaginatedSpecgains a configurablecursor_param(defaultafter_cursor); combo markets usecursorfor pagination. NewComboMarketmodels normalize the API’s parallel outcome/price arrays into yes/no outcomes.Reviewed by Cursor Bugbot for commit 0fbae90. Bugbot is set up for automated code reviews on this repo. Configure here.