Skip to content

Find a way to make sphinx output in tests more predictable #194

Open
@flying-sheep

Description

@flying-sheep

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions