Open
Description
The Sphinx output changes depending on if PEP 604 Union syntax is used. It’s not about from __future__ import annotations
, it’s about actually using the syntax!
Even on versions < 3.10, a simple type like int
gets compiled to different things, depending on what syntax is used in the file:
"int"
if the file contains no new-style union syntax,*int*
if the file contains new-style union syntax,
E.g. when you don‘t use |
union syntax,
from __future__ import annotations
def function(x: bool) -> str: ...
gets compiled to "
:
...
Parameters:
* **x** ("bool") -- foo
And when you do use |
union syntax anywhere in the file (or is it just anywhere in the compilation unit?),
from __future__ import annotations
def function(x: bool) -> str | int: ...
gets compiled to *
:
...
Parameters:
* **x** (*bool*) -- foo