Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Introduce Params[*Ps] as a wrapper for the parameter list in extended Callable types. Callable[Params[Param[...], ...], ret] replaces Callable[[Param[...], ...], ret], making it easy to distinguish extended callables from standard ones. GetArg on a Callable now always returns Params[...] for the first arg. Uses typing._ConcatenateGenericAlias internally so that Params survives the typing.Callable round-trip without monkey-patching.
_callable_type_to_signature now treats standard callables (Callable[[type, ...], ret]) separately from extended callables (Callable[Params[Param[...], ...], ret]). All test files updated to use Params wrapper consistently.
Callable[[Param[...], ...], ret] now raises TypeError instead of silently producing wrong results. Must use Callable[Params[...], ret].
Extract _unwrap_params helper that handles Params[...], list, and tuple[...] uniformly for all three callable kinds (Callable, classmethod, staticmethod). Standard callables produce simple positional-only signatures; Param types without Params wrapper are rejected.
Ellipsis in Callable[..., ret] and bare Callable now produce Params[Param[None, Any, "*"], Param[None, Any, "**"]] instead of SpecialFormEllipsis, so all Callable param access consistently returns Params.
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.
The type serves as a quasi-bound on ParamSpec.
See python/peps#4866