@@ -1092,6 +1092,21 @@ def _add_member_(cls, name, member):
10921092 # now add to _member_map_ (even aliases)
10931093 cls ._member_map_ [name ] = member
10941094
1095+ @property
1096+ def __signature__ (cls ):
1097+ from inspect import Parameter , Signature
1098+ if cls ._member_names_ :
1099+ return Signature ([Parameter ('values' , Parameter .VAR_POSITIONAL )])
1100+ else :
1101+ return Signature ([Parameter ('new_class_name' , Parameter .POSITIONAL_ONLY ),
1102+ Parameter ('names' , Parameter .POSITIONAL_OR_KEYWORD ),
1103+ Parameter ('module' , Parameter .KEYWORD_ONLY , default = None ),
1104+ Parameter ('qualname' , Parameter .KEYWORD_ONLY , default = None ),
1105+ Parameter ('type' , Parameter .KEYWORD_ONLY , default = None ),
1106+ Parameter ('start' , Parameter .KEYWORD_ONLY , default = 1 ),
1107+ Parameter ('boundary' , Parameter .KEYWORD_ONLY , default = None )])
1108+
1109+
10951110EnumMeta = EnumType # keep EnumMeta name for backwards compatibility
10961111
10971112
@@ -1135,13 +1150,6 @@ class Enum(metaclass=EnumType):
11351150 attributes -- see the documentation for details.
11361151 """
11371152
1138- @classmethod
1139- def __signature__ (cls ):
1140- if cls ._member_names_ :
1141- return '(*values)'
1142- else :
1143- return '(new_class_name, /, names, *, module=None, qualname=None, type=None, start=1, boundary=None)'
1144-
11451153 def __new__ (cls , value ):
11461154 # all enum instances are actually created during class construction
11471155 # without calling this method; this method is called by the metaclass'
0 commit comments