@@ -1294,17 +1294,17 @@ def _formatannotation(annot):
1294
1294
>>> _formatannotation(NewType('MyType', str))
1295
1295
'pdoc.MyType'
1296
1296
>>> _formatannotation(Optional[Tuple[Optional[int], None]])
1297
- 'Optional[ Tuple[Optional[ int] , None]] '
1297
+ 'Tuple[int | None , None] | None '
1298
1298
>>> _formatannotation(Optional[Union[int, float, None]])
1299
- 'Optional[ int | float] '
1299
+ 'int | float | None '
1300
1300
>>> _formatannotation(Union[int, float])
1301
1301
'int | float'
1302
1302
>>> from typing import Callable
1303
1303
>>> _formatannotation(Callable[[Optional[int]], float])
1304
- 'Callable[[Optional[ int] ], float]'
1304
+ 'Callable[[int | None ], float]'
1305
1305
>>> from collections.abc import Callable
1306
1306
>>> _formatannotation(Callable[[Optional[int]], float])
1307
- 'Callable[[Optional[ int] ], float]'
1307
+ 'Callable[[int | None ], float]'
1308
1308
"""
1309
1309
class force_repr (str ):
1310
1310
__repr__ = str .__str__
@@ -1322,7 +1322,7 @@ def maybe_replace_reprs(a):
1322
1322
t = ' | ' .join (inspect .formatannotation (maybe_replace_reprs (x ))
1323
1323
for x in union_args )
1324
1324
if is_optional :
1325
- t = f'Optional[ { t } ] '
1325
+ t += ' | None '
1326
1326
return force_repr (t )
1327
1327
# typing.NewType('T', foo) -> T
1328
1328
module = getattr (a , '__module__' , '' )
0 commit comments