[Python-checkins] cpython: inspect.signature: Use enum for parameter kind constants. Closes #19573

yury.selivanov python-checkins at python.org
Thu Mar 27 16:32:30 CET 2014


http://hg.python.org/cpython/rev/c2b94f891c88
changeset: 89992:c2b94f891c88
user: Yury Selivanov <yselivanov at sprymix.com>
date: Thu Mar 27 11:23:13 2014 -0400
summary:
 inspect.signature: Use enum for parameter kind constants. Closes #19573
Patch by Antony Lee.
files:
 Lib/inspect.py | 31 +++++++++++++++----------------
 Misc/NEWS | 2 ++
 2 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/Lib/inspect.py b/Lib/inspect.py
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -32,6 +32,7 @@
 'Yury Selivanov <yselivanov at sprymix.com>')
 
 import ast
+import enum
 import importlib.machinery
 import itertools
 import linecache
@@ -2027,24 +2028,22 @@
 pass
 
 
-class _ParameterKind(int):
- def __new__(self, *args, name):
- obj = int.__new__(self, *args)
- obj._name = name
- return obj
+class _ParameterKind(enum.IntEnum):
+ POSITIONAL_ONLY = 0
+ POSITIONAL_OR_KEYWORD = 1
+ VAR_POSITIONAL = 2
+ KEYWORD_ONLY = 3
+ VAR_KEYWORD = 4
 
 def __str__(self):
- return self._name
-
- def __repr__(self):
- return '<_ParameterKind: {!r}>'.format(self._name)
-
-
-_POSITIONAL_ONLY = _ParameterKind(0, name='POSITIONAL_ONLY')
-_POSITIONAL_OR_KEYWORD = _ParameterKind(1, name='POSITIONAL_OR_KEYWORD')
-_VAR_POSITIONAL = _ParameterKind(2, name='VAR_POSITIONAL')
-_KEYWORD_ONLY = _ParameterKind(3, name='KEYWORD_ONLY')
-_VAR_KEYWORD = _ParameterKind(4, name='VAR_KEYWORD')
+ return self._name_
+
+
+_POSITIONAL_ONLY = _ParameterKind.POSITIONAL_ONLY
+_POSITIONAL_OR_KEYWORD = _ParameterKind.POSITIONAL_OR_KEYWORD
+_VAR_POSITIONAL = _ParameterKind.VAR_POSITIONAL
+_KEYWORD_ONLY = _ParameterKind.KEYWORD_ONLY
+_VAR_KEYWORD = _ParameterKind.VAR_KEYWORD
 
 
 class Parameter:
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -105,6 +105,8 @@
 - Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
 outsize range [1902; 2037].
 
+- Issue #19573: inspect.signature: Use enum for parameter kind constants.
+
 Documentation
 -------------
 
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /