summaryrefslogtreecommitdiff
path: root/sphinx/util/inspect.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/util/inspect.py')
-rw-r--r--sphinx/util/inspect.py46
1 files changed, 13 insertions, 33 deletions
diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
index 68b1456c4..af8102402 100644
--- a/sphinx/util/inspect.py
+++ b/sphinx/util/inspect.py
@@ -17,12 +17,12 @@ import typing
import warnings
from functools import partial, partialmethod
from inspect import ( # NOQA
- isclass, ismethod, ismethoddescriptor, isroutine
+ Parameter, isclass, ismethod, ismethoddescriptor, isroutine
)
from io import StringIO
from typing import Any, Callable, Mapping, List, Tuple
-from sphinx.deprecation import RemovedInSphinx30Warning, RemovedInSphinx40Warning
+from sphinx.deprecation import RemovedInSphinx40Warning
from sphinx.util import logging
from sphinx.util.typing import stringify as stringify_annotation
@@ -81,19 +81,19 @@ def getargspec(func):
kind = param.kind
name = param.name
- if kind is inspect.Parameter.POSITIONAL_ONLY:
+ if kind is Parameter.POSITIONAL_ONLY:
args.append(name)
- elif kind is inspect.Parameter.POSITIONAL_OR_KEYWORD:
+ elif kind is Parameter.POSITIONAL_OR_KEYWORD:
args.append(name)
if param.default is not param.empty:
defaults += (param.default,) # type: ignore
- elif kind is inspect.Parameter.VAR_POSITIONAL:
+ elif kind is Parameter.VAR_POSITIONAL:
varargs = name
- elif kind is inspect.Parameter.KEYWORD_ONLY:
+ elif kind is Parameter.KEYWORD_ONLY:
kwonlyargs.append(name)
if param.default is not param.empty:
kwdefaults[name] = param.default
- elif kind is inspect.Parameter.VAR_KEYWORD:
+ elif kind is Parameter.VAR_KEYWORD:
varkw = name
if param.annotation is not param.empty:
@@ -346,7 +346,7 @@ def signature(subject: Callable, bound_method: bool = False) -> inspect.Signatur
# https://bugs.python.org/issue33009
if hasattr(subject, '_partialmethod'):
parameters = []
- return_annotation = inspect.Parameter.empty
+ return_annotation = Parameter.empty
else:
raise
@@ -414,11 +414,11 @@ def stringify_signature(sig: inspect.Signature, show_annotation: bool = True,
args.append(arg.getvalue())
last_kind = param.kind
- if last_kind == inspect.Parameter.POSITIONAL_ONLY:
+ if last_kind == Parameter.POSITIONAL_ONLY:
# PEP-570: Separator for Positional Only Parameter: /
args.append('/')
- if (sig.return_annotation is inspect.Parameter.empty or
+ if (sig.return_annotation is Parameter.empty or
show_annotation is False or
show_return_annotation is False):
return '(%s)' % ', '.join(args)
@@ -427,26 +427,6 @@ def stringify_signature(sig: inspect.Signature, show_annotation: bool = True,
return '(%s) -> %s' % (', '.join(args), annotation)
-class Parameter:
- """Fake parameter class for python2."""
- POSITIONAL_ONLY = 0
- POSITIONAL_OR_KEYWORD = 1
- VAR_POSITIONAL = 2
- KEYWORD_ONLY = 3
- VAR_KEYWORD = 4
- empty = object()
-
- def __init__(self, name: str, kind: int = POSITIONAL_OR_KEYWORD,
- default: Any = empty) -> None:
- self.name = name
- self.kind = kind
- self.default = default
- self.annotation = self.empty
-
- warnings.warn('sphinx.util.inspect.Parameter is deprecated.',
- RemovedInSphinx30Warning, stacklevel=2)
-
-
class Signature:
"""The Signature object represents the call signature of a callable object and
its return annotation.
@@ -515,12 +495,12 @@ class Signature:
if self.has_retval:
return self.signature.return_annotation
else:
- return inspect.Parameter.empty
+ return Parameter.empty
else:
return None
def format_args(self, show_annotation: bool = True) -> str:
- def get_annotation(param: inspect.Parameter) -> Any:
+ def get_annotation(param: Parameter) -> Any:
if isinstance(param.annotation, str) and param.name in self.annotations:
return self.annotations[param.name]
else:
@@ -572,7 +552,7 @@ class Signature:
args.append(arg.getvalue())
last_kind = param.kind
- if self.return_annotation is inspect.Parameter.empty or show_annotation is False:
+ if self.return_annotation is Parameter.empty or show_annotation is False:
return '(%s)' % ', '.join(args)
else:
if 'return' in self.annotations: