@@ -1294,17 +1294,17 @@ def _formatannotation(annot):
12941294 >>> _formatannotation(NewType('MyType', str))
12951295 'pdoc.MyType'
12961296 >>> _formatannotation(Optional[Tuple[Optional[int], None]])
1297- 'Optional[ Tuple[Optional[ int] , None]] '
1297+ 'Tuple[int | None , None] | None '
12981298 >>> _formatannotation(Optional[Union[int, float, None]])
1299- 'Optional[ int | float] '
1299+ 'int | float | None '
13001300 >>> _formatannotation(Union[int, float])
13011301 'int | float'
13021302 >>> from typing import Callable
13031303 >>> _formatannotation(Callable[[Optional[int]], float])
1304- 'Callable[[Optional[ int] ], float]'
1304+ 'Callable[[int | None ], float]'
13051305 >>> from collections.abc import Callable
13061306 >>> _formatannotation(Callable[[Optional[int]], float])
1307- 'Callable[[Optional[ int] ], float]'
1307+ 'Callable[[int | None ], float]'
13081308 """
13091309 class force_repr (str ):
13101310 __repr__ = str .__str__
@@ -1322,7 +1322,7 @@ def maybe_replace_reprs(a):
13221322 t = ' | ' .join (inspect .formatannotation (maybe_replace_reprs (x ))
13231323 for x in union_args )
13241324 if is_optional :
1325- t = f'Optional[ { t } ] '
1325+ t += ' | None '
13261326 return force_repr (t )
13271327 # typing.NewType('T', foo) -> T
13281328 module = getattr (a , '__module__' , '' )
0 commit comments