Repository navigation
feat(client)!: enforce the beta 100-contract batch ceiling - #40
Closed
thestephenromano wants to merge 1 commit into
Closed
thestephenromano wants to merge 1 commit into
thestephenromano wants to merge 1 commit into
Conversation
thestephenromano
added a commit
that referenced
this pull request
Nov 4, 2026
Align the Python SDK with deployed API v0.5.0. Existing SDK 0.1.x lacks discovery and standard-five operations, assumes all Greeks are always available, and permits obsolete 1,024-item batches. This update exposes the current contract and preserves server capability errors and unavailable-quantity evidence. - Both clients cover all 14 numerical/discovery/cost operations. Add unauthenticated `pricing_models()`, standard-five single/batch methods and explicit chunk workflows; support quoting and `max_cu` on all 11 execution methods. - Pin API commit `2284d802b5ac0b37b43ee269bbf4bfeec3777776`, schema SHA-256 `e206327e13aee32c02dbfa22e1d8e8a80ea2d549083971a1cc87aa2b67f401e7` (beta wire version remains 0.1.0). - Enforce the 100-item wire ceiling, forward current canonical selectors/aliases, preserve optional Greek values and typed reasons, and retain gaps in pandas output. Protected calls reject missing credentials before transport; public discovery never sends a key. - Update examples, guides and six notebooks. American Greeks/analytics/batches select BS1993 explicitly. No client model substitutions, numerical fallbacks, policy-rate arithmetic, or automatic retries. - Supersedes the contract-pin and batch-limit work in #39 and #40. Release Please retains ownership of package versions and publication. Validation at `ec86a6e`: Ruff lint/format and mypy passed; isolated sdist/wheel installation and all five pandas batch conversions passed; all 18 native integration checks passed against an optimized locked build of API v0.5.0, including a 100-contract standard-five batch, cash-dividend IV and capability errors. Docker startup/authentication, all six notebooks, persistent edits and missing-notebook seeding passed. The clean installed-wheel audit passed **all 555 tests**, including all 18 native integration tests, in a fresh Python 3.14.10 environment with no source-tree imports. Candidate wheel SHA-256: `9613ffa514ccf4ab3ccc8c9980cbdfff1759aea2ff4b9313101e76ea2d1d0452` (development candidate retains version 0.1.1; Release Please owns the next version). Native schema identity and fixture provenance are checked. No production credentials or customer data are used. Compatibility notes and reproducible commands: [API v0.5.0 adoption](https://github.com/MorphIQ-Labs/morphiq-sdk-python/blob/feature/cost-utilities/docs/API_V050_ADOPTION.md).
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.
Superseded by #41, which adopts deployed API v0.5.0 and includes this contract/batch-limit change with current native fixtures and full validation. This branch is retained for history.
Restrict all four option batch models and explicit workflow chunk sizes to 100 contracts, matching the beta API ceiling. A 101-item batch fails local validation before any request; ordinary batch calls are not silently split. Keep the 30-second client timeout and document the API's ten-second compute deadline and post-start timeout charges.
Pin the exact OpenAPI bytes from API commit
d15a738fd13d79671d65b14358795908a9949f1f. Preserve the fixtures' original source identity and numerical values, and replay them against the candidate. No engine, numerical result, CU price or release version changes.Validation: 493 tests passed with the pinned native API running on loopback, including controlled integration tests. Ruff lint/format, mypy, notebook generation checks, and isolated wheel/sdist/package-extra checks passed. Native HTTP accepted 100 contracts and refused 101; served API and SDK schema bytes matched exactly.
Stacked on #39; paired with API !184. Keep draft until the producer contract is reviewed and the API/docs/SDK rollout is coordinated. No package publication or production deployment is performed here.