sphinx-autodoc-typehints
sphinx-autodoc-typehints copied to clipboard
Find a way to make sphinx output in tests more predictable
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
A PR for this would we welcome.
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?
That would be to discover :thinking: