@@ -162,6 +162,13 @@ def _dedent(text):
162162 lines [j ] = l [i :]
163163 return '\n ' .join (lines )
164164
165+ class _not_given :
166+ def __repr__ (self ):
167+ return ('<not given>' )
168+ def __bool__ (self ):
169+ return False
170+ _not_given = _not_given ()
171+
165172class _auto_null :
166173 def __repr__ (self ):
167174 return '_auto_null'
@@ -680,7 +687,7 @@ def __bool__(cls):
680687 """
681688 return True
682689
683- def __call__ (cls , value , names = None , * values , module = None , qualname = None , type = None , start = 1 , boundary = None ):
690+ def __call__ (cls , value , names = _not_given , * values , module = None , qualname = None , type = None , start = 1 , boundary = None ):
684691 """
685692 Either returns an existing member, or creates a new enum class.
686693
@@ -709,18 +716,18 @@ def __call__(cls, value, names=None, *values, module=None, qualname=None, type=N
709716 """
710717 if cls ._member_map_ :
711718 # simple value lookup if members exist
712- if names :
719+ if names is not _not_given :
713720 value = (value , names ) + values
714721 return cls .__new__ (cls , value )
715722 # otherwise, functional API: we're creating a new Enum type
716- if names is None and type is None :
723+ if names is _not_given and type is None :
717724 # no body? no data-type? possibly wrong usage
718725 raise TypeError (
719726 f"{ cls } has no members; specify `names=()` if you meant to create a new, empty, enum"
720727 )
721728 return cls ._create_ (
722729 class_name = value ,
723- names = names ,
730+ names = names or None ,
724731 module = module ,
725732 qualname = qualname ,
726733 type = type ,
0 commit comments