small steps
[software/python-on-guile.git] / modules / language / python / module / enum.py
index 4f388ad4807a8c03b6908481837a459c5b5fe166..eefc1b50bf3a024910e52560a77ad9a6f98cc477 100644 (file)
@@ -11,7 +11,6 @@ try:
 except ImportError:
     from collections import OrderedDict
 
-
 __all__ = [
         'EnumMeta',
         'Enum', 'IntEnum', 'Flag', 'IntFlag',
@@ -50,6 +49,8 @@ def _make_class_unpicklable(cls):
     cls.__module__ = '<unknown>'
 
 _auto_null = object()
+
+
 class auto:
     """
     Instances are replaced with an appropriate value in Enum class suites.
@@ -117,10 +118,13 @@ class EnumMeta(type):
     def __prepare__(metacls, cls, bases):
         # create the namespace dict
         enum_dict = _EnumDict()
+        
         # inherit previous flags and _generate_next_value_ function
         member_type, first_enum = metacls._get_mixins_(bases)
+
         if first_enum is not None:
             enum_dict['_generate_next_value_'] = getattr(first_enum, '_generate_next_value_', None)
+
         return enum_dict
 
     def __new__(metacls, cls, bases, classdict):
@@ -146,19 +150,21 @@ class EnumMeta(type):
         if invalid_names:
             raise ValueError('Invalid enum member name: {0}'.format(
                 ','.join(invalid_names)))
-
+        
         # create a default docstring if one has not been provided
         if '__doc__' not in classdict:
             classdict['__doc__'] = 'An enumeration.'
 
         # create our new Enum type
         enum_class = super().__new__(metacls, cls, bases, classdict)
+        
         enum_class._member_names_ = []               # names in definition order
         enum_class._member_map_ = OrderedDict()      # name->value map
         enum_class._member_type_ = member_type
 
         # save attributes from super classes so we know if we can take
         # the shortcut of storing members in the class dict
+        
         base_attributes = {a for b in enum_class.mro() for a in b.__dict__}
 
         # Reverse value->name map for hashable values.
@@ -255,7 +261,7 @@ class EnumMeta(type):
                 _order_ = _order_.replace(',', ' ').split()
             if _order_ != enum_class._member_names_:
                 raise TypeError('member order does not match _order_')
-
+        pk('enum class fom new',enum_class)
         return enum_class
 
     def __bool__(self):
@@ -424,6 +430,7 @@ class EnumMeta(type):
         bases: the tuple of bases that was given to __new__
 
         """
+
         if not bases:
             return object, Enum
 
@@ -436,6 +443,7 @@ class EnumMeta(type):
                     issubclass(base, Enum) and
                     base._member_names_):
                 raise TypeError("Cannot extend enumerations")
+
         # base is now the last base in bases
         if not issubclass(base, Enum):
             raise TypeError("new enumerations must be created as "
@@ -473,6 +481,7 @@ class EnumMeta(type):
         # now find the correct __new__, checking to see of one was defined
         # by the user; also check earlier enum classes in case a __new__ was
         # saved as __new_member__
+
         __new__ = classdict.get('__new__', None)
 
         # should __new__ be saved as __new_member__ later?
@@ -507,6 +516,7 @@ class EnumMeta(type):
 
         return __new__, save_new, use_args
 
+pk(1)
 class Enum(metaclass=EnumMeta):
     """Generic enumeration.
 
@@ -548,7 +558,7 @@ class Enum(metaclass=EnumMeta):
 
     def __repr__(self):
         return "<%s.%s: %r>" % (
-                self.__class__.__name__, self._name_, self._value_)
+                 self.__class__.__name__, self._name_, self._value_)
 
     def __str__(self):
         return "%s.%s" % (self.__class__.__name__, self._name_)
@@ -636,6 +646,7 @@ class Enum(metaclass=EnumMeta):
         module_globals[name] = cls
         return cls
 
+pk(2)
 
 class IntEnum(int, Enum):
     """Enum where members are also (and must be) ints"""