mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Merge branch '4.x' into bugfix/get-type-hints
This commit is contained in:
commit
4cceeae766
2
CHANGES
2
CHANGES
@ -46,6 +46,8 @@ Features added
|
|||||||
Bugs fixed
|
Bugs fixed
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
* #9512: sphinx-build: crashed with the HEAD of Python 3.10
|
||||||
|
|
||||||
Testing
|
Testing
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
@ -33,10 +33,10 @@ else:
|
|||||||
ref = _ForwardRef(self.arg)
|
ref = _ForwardRef(self.arg)
|
||||||
return ref._eval_type(globalns, localns)
|
return ref._eval_type(globalns, localns)
|
||||||
|
|
||||||
if sys.version_info > (3, 10):
|
try:
|
||||||
from types import Union as types_Union
|
from types import UnionType # type: ignore # python 3.10 or above
|
||||||
else:
|
except ImportError:
|
||||||
types_Union = None
|
UnionType = None
|
||||||
|
|
||||||
if False:
|
if False:
|
||||||
# For type annotation
|
# For type annotation
|
||||||
@ -117,7 +117,7 @@ def restify(cls: Optional[Type]) -> str:
|
|||||||
return ':class:`%s`' % INVALID_BUILTIN_CLASSES[cls]
|
return ':class:`%s`' % INVALID_BUILTIN_CLASSES[cls]
|
||||||
elif inspect.isNewType(cls):
|
elif inspect.isNewType(cls):
|
||||||
return ':class:`%s`' % cls.__name__
|
return ':class:`%s`' % cls.__name__
|
||||||
elif types_Union and isinstance(cls, types_Union):
|
elif UnionType and isinstance(cls, UnionType):
|
||||||
if len(cls.__args__) > 1 and None in cls.__args__:
|
if len(cls.__args__) > 1 and None in cls.__args__:
|
||||||
args = ' | '.join(restify(a) for a in cls.__args__ if a)
|
args = ' | '.join(restify(a) for a in cls.__args__ if a)
|
||||||
return 'Optional[%s]' % args
|
return 'Optional[%s]' % args
|
||||||
@ -343,7 +343,7 @@ def _stringify_py37(annotation: Any) -> str:
|
|||||||
elif hasattr(annotation, '__origin__'):
|
elif hasattr(annotation, '__origin__'):
|
||||||
# instantiated generic provided by a user
|
# instantiated generic provided by a user
|
||||||
qualname = stringify(annotation.__origin__)
|
qualname = stringify(annotation.__origin__)
|
||||||
elif types_Union and isinstance(annotation, types_Union): # types.Union (for py3.10+)
|
elif UnionType and isinstance(annotation, UnionType): # types.Union (for py3.10+)
|
||||||
qualname = 'types.Union'
|
qualname = 'types.Union'
|
||||||
else:
|
else:
|
||||||
# we weren't able to extract the base type, appending arguments would
|
# we weren't able to extract the base type, appending arguments would
|
||||||
|
Loading…
Reference in New Issue
Block a user