Hello community, here is the log from the commit of package python-enum34 for openSUSE:Factory checked in at 2015-05-10 10:52:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-enum34 (Old) and /work/SRC/openSUSE:Factory/.python-enum34.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-enum34" Changes: -------- --- /work/SRC/openSUSE:Factory/python-enum34/python-enum34.changes 2015-01-08 23:01:39.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python-enum34.new/python-enum34.changes 2015-05-10 10:52:48.000000000 +0200 @@ -1,0 +2,6 @@ +Mon May 4 14:35:13 UTC 2015 - [email protected] + +- update to version 1.0.4: + * no upstream changelog + +------------------------------------------------------------------- Old: ---- enum34-1.0.tar.gz New: ---- enum34-1.0.4.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-enum34.spec ++++++ --- /var/tmp/diff_new_pack.7i56oQ/_old 2015-05-10 10:52:49.000000000 +0200 +++ /var/tmp/diff_new_pack.7i56oQ/_new 2015-05-10 10:52:49.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-enum34 # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: python-enum34 -Version: 1.0 +Version: 1.0.4 Release: 0 Url: https://pypi.python.org/pypi/enum34 Summary: Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4 ++++++ enum34-1.0.tar.gz -> enum34-1.0.4.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enum34-1.0/PKG-INFO new/enum34-1.0.4/PKG-INFO --- old/enum34-1.0/PKG-INFO 2014-05-05 19:38:46.000000000 +0200 +++ new/enum34-1.0.4/PKG-INFO 2014-11-26 17:56:16.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: enum34 -Version: 1.0 +Version: 1.0.4 Summary: Python 3.4 Enum backported to 3.3, 3.2, 3.1, 2.7, 2.6, 2.5, and 2.4 Home-page: https://pypi.python.org/pypi/enum34 Author: Ethan Furman diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enum34-1.0/enum/__init__.py new/enum34-1.0.4/enum/__init__.py --- old/enum34-1.0/enum/__init__.py 2014-03-04 09:16:47.000000000 +0100 +++ new/enum34-1.0.4/enum/__init__.py 2014-11-26 17:53:04.000000000 +0100 @@ -4,6 +4,8 @@ __all__ = ['Enum', 'IntEnum', 'unique'] +version = 1, 0, 4 + pyver = float('%s.%s' % _sys.version_info[:2]) try: @@ -27,6 +29,12 @@ # in Python 3 it's just str, but was missing in 3.1 basestring = str +try: + unicode +except NameError: + # In Python 3 unicode no longer exists (it's just str) + unicode = str + class _RouteClassAttributeToGetattr(object): """Route attribute access on a class to __getattr__. @@ -163,7 +171,10 @@ __order__ = classdict.get('__order__') if __order__ is None: if pyver < 3.0: - __order__ = [name for (name, value) in sorted(members.items(), key=lambda item: item[1])] + try: + __order__ = [name for (name, value) in sorted(members.items(), key=lambda item: item[1])] + except TypeError: + __order__ = [name for name in sorted(members.keys())] else: __order__ = classdict._member_names else: @@ -401,6 +412,13 @@ * A mapping of member name -> value. """ + if pyver < 3.0: + # if class_name is unicode, attempt a conversion to ASCII + if isinstance(class_name, unicode): + try: + class_name = class_name.encode('ascii') + except UnicodeEncodeError: + raise TypeError('%r is not representable in ASCII' % class_name) metacls = cls.__class__ if type is None: bases = (cls, ) @@ -637,8 +655,13 @@ del __str__ def __dir__(self): - added_behavior = [m for m in self.__class__.__dict__ if m[0] != '_'] - return (['__class__', '__doc__', '__module__', 'name', 'value'] + added_behavior) + added_behavior = [ + m + for cls in self.__class__.mro() + for m in cls.__dict__ + if m[0] != '_' + ] + return (['__class__', '__doc__', '__module__', ] + added_behavior) temp_enum_dict['__dir__'] = __dir__ del __dir__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enum34-1.0/enum/enum.py new/enum34-1.0.4/enum/enum.py --- old/enum34-1.0/enum/enum.py 2014-03-04 09:16:47.000000000 +0100 +++ new/enum34-1.0.4/enum/enum.py 2014-11-26 17:53:04.000000000 +0100 @@ -4,6 +4,8 @@ __all__ = ['Enum', 'IntEnum', 'unique'] +version = 1, 0, 4 + pyver = float('%s.%s' % _sys.version_info[:2]) try: @@ -27,6 +29,12 @@ # in Python 3 it's just str, but was missing in 3.1 basestring = str +try: + unicode +except NameError: + # In Python 3 unicode no longer exists (it's just str) + unicode = str + class _RouteClassAttributeToGetattr(object): """Route attribute access on a class to __getattr__. @@ -163,7 +171,10 @@ __order__ = classdict.get('__order__') if __order__ is None: if pyver < 3.0: - __order__ = [name for (name, value) in sorted(members.items(), key=lambda item: item[1])] + try: + __order__ = [name for (name, value) in sorted(members.items(), key=lambda item: item[1])] + except TypeError: + __order__ = [name for name in sorted(members.keys())] else: __order__ = classdict._member_names else: @@ -401,6 +412,13 @@ * A mapping of member name -> value. """ + if pyver < 3.0: + # if class_name is unicode, attempt a conversion to ASCII + if isinstance(class_name, unicode): + try: + class_name = class_name.encode('ascii') + except UnicodeEncodeError: + raise TypeError('%r is not representable in ASCII' % class_name) metacls = cls.__class__ if type is None: bases = (cls, ) @@ -637,8 +655,13 @@ del __str__ def __dir__(self): - added_behavior = [m for m in self.__class__.__dict__ if m[0] != '_'] - return (['__class__', '__doc__', '__module__', 'name', 'value'] + added_behavior) + added_behavior = [ + m + for cls in self.__class__.mro() + for m in cls.__dict__ + if m[0] != '_' + ] + return (['__class__', '__doc__', '__module__', ] + added_behavior) temp_enum_dict['__dir__'] = __dir__ del __dir__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enum34-1.0/enum/test_enum.py new/enum34-1.0.4/enum/test_enum.py --- old/enum34-1.0/enum/test_enum.py 2014-04-29 06:04:17.000000000 +0200 +++ new/enum34-1.0.4/enum/test_enum.py 2014-11-26 17:53:14.000000000 +0100 @@ -178,7 +178,7 @@ IDES_OF_MARCH = 2013, 3, 15 self.Holiday = Holiday - if pyver >= 2.6: # cannot specify custom `dir` on this version + if pyver >= 2.6: # cannot specify custom `dir` on previous versions def test_dir_on_class(self): Season = self.Season self.assertEqual( @@ -194,6 +194,18 @@ set(['__class__', '__doc__', '__module__', 'name', 'value']), ) + def test_dir_on_sub_with_behavior_on_super(self): + # see issue22506 + class SuperEnum(Enum): + def invisible(self): + return "did you see me?" + class SubEnum(SuperEnum): + sample = 5 + self.assertEqual( + set(dir(SubEnum.sample)), + set(['__class__', '__doc__', '__module__', 'name', 'value', 'invisible']), + ) + if pyver >= 2.7: # OrderedDict first available here def test_members_is_ordereddict_if_ordered(self): class Ordered(Enum): @@ -448,6 +460,7 @@ with self.assertRaises(TypeError): class Color(Enum): @property + def red(self): return 'redder' red = 1 @@ -641,6 +654,17 @@ [Season.SUMMER, Season.WINTER, Season.AUTUMN, Season.SPRING], ) + def test_iteration_order_with_unorderable_values(self): + class Complex(Enum): + a = complex(7, 9) + b = complex(3.14, 2) + c = complex(1, -1) + d = complex(-77, 32) + self.assertEqual( + list(Complex), + [Complex.a, Complex.b, Complex.c, Complex.d], + ) + def test_programatic_function_string(self): SummerMonth = Enum('SummerMonth', 'june july august') lst = list(SummerMonth) @@ -867,6 +891,31 @@ self.assertTrue(e in SummerMonth) self.assertTrue(type(e) is SummerMonth) + def test_programmatic_function_unicode_class(self): + if pyver < 3.0: + class_names = unicode('SummerMonth'), 'S\xfcmm\xe9rM\xf6nth'.decode('latin1') + else: + class_names = 'SummerMonth', 'S\xfcmm\xe9rM\xf6nth' + for i, class_name in enumerate(class_names): + if pyver < 3.0 and i == 1: + self.assertRaises(TypeError, Enum, class_name, unicode('june july august')) + else: + SummerMonth = Enum(class_name, unicode('june july august')) + lst = list(SummerMonth) + self.assertEqual(len(lst), len(SummerMonth)) + self.assertEqual(len(SummerMonth), 3, SummerMonth) + self.assertEqual( + [SummerMonth.june, SummerMonth.july, SummerMonth.august], + lst, + ) + for i, month in enumerate(unicode('june july august').split()): + i += 1 + e = SummerMonth(i) + self.assertEqual(e.value, i) + self.assertEqual(e.name, month) + self.assertTrue(e in SummerMonth) + self.assertTrue(type(e) is SummerMonth) + def test_subclassing(self): if isinstance(Name, Exception): raise Name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/enum34-1.0/setup.py new/enum34-1.0.4/setup.py --- old/enum34-1.0/setup.py 2014-05-05 19:38:43.000000000 +0200 +++ new/enum34-1.0.4/setup.py 2014-11-26 17:55:47.000000000 +0100 @@ -10,7 +10,7 @@ long_desc = open('enum/doc/enum.rst').read() setup( name='enum34', - version='1.0', + version='1.0.4', url='https://pypi.python.org/pypi/enum34', packages=['enum'], package_data={
