inspect.signature: Use enum for parameter kind constants. Closes #19573
Patch by Antony Lee.
This commit is contained in:
parent
4a692ce5ec
commit
21e83a5564
|
@ -32,6 +32,7 @@ __author__ = ('Ka-Ping Yee <ping@lfw.org>',
|
||||||
'Yury Selivanov <yselivanov@sprymix.com>')
|
'Yury Selivanov <yselivanov@sprymix.com>')
|
||||||
|
|
||||||
import ast
|
import ast
|
||||||
|
import enum
|
||||||
import importlib.machinery
|
import importlib.machinery
|
||||||
import itertools
|
import itertools
|
||||||
import linecache
|
import linecache
|
||||||
|
@ -2027,24 +2028,22 @@ class _empty:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class _ParameterKind(int):
|
class _ParameterKind(enum.IntEnum):
|
||||||
def __new__(self, *args, name):
|
POSITIONAL_ONLY = 0
|
||||||
obj = int.__new__(self, *args)
|
POSITIONAL_OR_KEYWORD = 1
|
||||||
obj._name = name
|
VAR_POSITIONAL = 2
|
||||||
return obj
|
KEYWORD_ONLY = 3
|
||||||
|
VAR_KEYWORD = 4
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self._name
|
return self._name_
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return '<_ParameterKind: {!r}>'.format(self._name)
|
|
||||||
|
|
||||||
|
|
||||||
_POSITIONAL_ONLY = _ParameterKind(0, name='POSITIONAL_ONLY')
|
_POSITIONAL_ONLY = _ParameterKind.POSITIONAL_ONLY
|
||||||
_POSITIONAL_OR_KEYWORD = _ParameterKind(1, name='POSITIONAL_OR_KEYWORD')
|
_POSITIONAL_OR_KEYWORD = _ParameterKind.POSITIONAL_OR_KEYWORD
|
||||||
_VAR_POSITIONAL = _ParameterKind(2, name='VAR_POSITIONAL')
|
_VAR_POSITIONAL = _ParameterKind.VAR_POSITIONAL
|
||||||
_KEYWORD_ONLY = _ParameterKind(3, name='KEYWORD_ONLY')
|
_KEYWORD_ONLY = _ParameterKind.KEYWORD_ONLY
|
||||||
_VAR_KEYWORD = _ParameterKind(4, name='VAR_KEYWORD')
|
_VAR_KEYWORD = _ParameterKind.VAR_KEYWORD
|
||||||
|
|
||||||
|
|
||||||
class Parameter:
|
class Parameter:
|
||||||
|
|
|
@ -105,6 +105,8 @@ Library
|
||||||
- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
|
- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
|
||||||
outsize range [1902; 2037].
|
outsize range [1902; 2037].
|
||||||
|
|
||||||
|
- Issue #19573: inspect.signature: Use enum for parameter kind constants.
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue