typehints: Fix wrong order of info-field-list

This commit is contained in:
Takeshi KOMIYA 2020-01-30 23:45:22 +09:00
parent 0f8a868bf7
commit 377c29db78

View File

@ -9,6 +9,7 @@
""" """
import re import re
from collections import OrderedDict
from typing import Any, Dict, Iterable from typing import Any, Dict, Iterable
from typing import cast from typing import cast
@ -37,13 +38,14 @@ def record_typehints(app: Sphinx, objtype: str, name: str, obj: Any,
"""Record type hints to env object.""" """Record type hints to env object."""
try: try:
if callable(obj): if callable(obj):
annotations = app.env.temp_data.setdefault('annotations', {}).setdefault(name, {}) annotations = app.env.temp_data.setdefault('annotations', {})
annotation = annotations.setdefault(name, OrderedDict())
sig = inspect.signature(obj) sig = inspect.signature(obj)
for param in sig.parameters.values(): for param in sig.parameters.values():
if param.annotation is not param.empty: if param.annotation is not param.empty:
annotations[param.name] = typing.stringify(param.annotation) annotation[param.name] = typing.stringify(param.annotation)
if sig.return_annotation is not sig.empty: if sig.return_annotation is not sig.empty:
annotations['return'] = typing.stringify(sig.return_annotation) annotation['return'] = typing.stringify(sig.return_annotation)
except TypeError: except TypeError:
pass pass