-
-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Annotated/get_type_hints interaction in python <3.11 #310
Comments
The general aim is to reflect the behavior on most recent CPython, regardless of the Python version where typing-extensions is run. We're less likely to backport if:
In this case, the behavior isn't all that obscure and it affects versions that still have a few years of life in them, so I'd be willing to accept it as long as it doesn't get too complex. I'm OK with copying over more of |
The above PR represents a very bruteforce approach, namely in that it's not clear to me how to arrive at parity to the old, seeming much simpler, mechanism without first copying the whole implementation of Although at the same time, I noticed a number of potentially public-facing difference with The fact that |
I'm thinking this issue is what has been causing some issues using fastapi between 3.11 and versions below it; is there desire to have more discussion/move this forward a bit? |
I'm not sure if you're aiming for exact compatibility among python versions for all of the functions you support or not.
But due to python/cpython#90353,
get_type_hints
withinclude_extras=True
has inconsistent behavior among python versions below 3.11.def foo(bar: Annotated[Union[int, None]])
->Annotated[Union[int, None]]
def foo(bar: Annotated[Union[int, None]] = None)
->Optional[Annotated[Union[int, None]]]
I see #94, which mentions not wanting to do more rigorous porting due to it cascading into more code needing to be pulled in, so I'm not sure what the reaction to this will be...
The text was updated successfully, but these errors were encountered: