You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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__ importannotationsdeffunction(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__ importannotationsdeffunction(x: bool) ->str|int: ...
gets compiled to *:
...
Parameters:
* **x** (*bool*) -- foo
The text was updated successfully, but these errors were encountered:
Idk what the best approach is, or even where to fix this. Can we configure Sphinx to produce more predictable output? Or do we need an upstream change there?
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,gets compiled to
"
:And when you do use
|
union syntax anywhere in the file (or is it just anywhere in the compilation unit?),gets compiled to
*
:The text was updated successfully, but these errors were encountered: