Add py.typed markers for PEP 561 typing support#503
Open
konichuvak wants to merge 1 commit intobinance:masterfrom
Open
Add py.typed markers for PEP 561 typing support#503konichuvak wants to merge 1 commit intobinance:masterfrom
konichuvak wants to merge 1 commit intobinance:masterfrom
Conversation
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
This PR adds
py.typedmarkers tobinance-commonand all Python SDK client packages, and updates each package's build metadata so the marker is included in built distributions.This marks the packages as typed per PEP 561.
What Changed
py.typedfile to each published package under its import rootpyproject.tomlinclude = [...]list sopy.typedis shipped in wheels and source distributionsScope includes:
commonclients/*Why
These packages already contain inline type annotations in their Python sources.
Without a
py.typedmarker, type checkers such asmypytreat installed packages as untyped. In downstream projects, that causes imported SDK symbols, especially generated model classes, to degrade toAnyeven when the source package contains usable type information.Adding
py.typedallows type checkers to consume the inline annotations from installed distributions as intended by PEP 561.Impact
Validation
py.typedis present in wheel contentsmypythat downstream imports resolve concrete model types instead of collapsing toAnyNotes
This PR does not add generated stubs or change runtime code paths.
It only marks the distributed packages as typed so existing inline annotations are visible to downstream type checkers.