-
-
Notifications
You must be signed in to change notification settings - Fork 850
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
First Check
- I added a very descriptive title to this issue.
- I used the GitHub search to find a similar issue and didn't find it.
- I searched the Typer documentation, with the integrated search.
- I already searched in Google "How to X in Typer" and didn't find any information.
- I already read and followed all the tutorial in the docs and didn't find an answer.
- I already checked if it is not related to Typer but to Click.
Commit to Help
- I commit to help with one of those options 👆
Example Code
import typer
from datetime import datetime
print(typer.__version__)
app = typer.Typer()
@app.command()
def f(x: datetime | None = None):
print(x)
if __name__ == "__main__":
app()Description
In python 3.10 this script runs as expected, but on 3.11 I get the following error
Traceback (most recent call last):
File "/Users/pcrein/qdash/test.py", line 16, in <module>
app()
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 328, in __call__
raise e
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 311, in __call__
return get_command(self)(*args, **kwargs)
^^^^^^^^^^^^^^^^^
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 364, in get_command
click_command = get_command_from_info(
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 577, in get_command_from_info
) = get_params_convertors_ctx_param_name_from_function(command_info.callback)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 553, in get_params_convertors_ctx_param_name_from_function
click_param, convertor = get_click_param(param)
^^^^^^^^^^^^^^^^^^^^^^
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 844, in get_click_param
parameter_type = get_click_type(
^^^^^^^^^^^^^^^
File "/Users/pcrein/.pyenv/versions/qdash-3.11.0/lib/python3.11/site-packages/typer/main.py", line 773, in get_click_type
raise RuntimeError(f"Type not yet supported: {annotation}") # pragma no cover
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Type not yet supported: datetime.datetime | None
Operating System
macOS
Operating System Details
No response
Typer Version
0.7.0
Python Version
3.11.0
Additional Context
I believe the issue is that for some reason, typing.get_type_hints is no longer converting the UnionType into a Union. I would suggest as a fix that get_click_param use typing.get_origin/get_args instead of __args__ and __origin__ attributes.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working