diff options
author | maxim-yurchuk <[email protected]> | 2024-10-09 12:29:46 +0300 |
---|---|---|
committer | maxim-yurchuk <[email protected]> | 2024-10-09 13:14:22 +0300 |
commit | 9731d8a4bb7ee2cc8554eaf133bb85498a4c7d80 (patch) | |
tree | a8fb3181d5947c0d78cf402aa56e686130179049 /contrib/deprecated/python/enum34/patches | |
parent | a44b779cd359f06c3ebbef4ec98c6b38609d9d85 (diff) |
publishFullContrib: true for ydb
<HIDDEN_URL>
commit_hash:c82a80ac4594723cebf2c7387dec9c60217f603e
Diffstat (limited to 'contrib/deprecated/python/enum34/patches')
-rw-r--r-- | contrib/deprecated/python/enum34/patches/01-unknown.patch | 82 | ||||
-rw-r--r-- | contrib/deprecated/python/enum34/patches/02-fix-tests.patch | 216 |
2 files changed, 298 insertions, 0 deletions
diff --git a/contrib/deprecated/python/enum34/patches/01-unknown.patch b/contrib/deprecated/python/enum34/patches/01-unknown.patch new file mode 100644 index 00000000000..4ed999b4e6e --- /dev/null +++ b/contrib/deprecated/python/enum34/patches/01-unknown.patch @@ -0,0 +1,82 @@ +--- contrib/deprecated/python/enum34/enum/__init__.py (index) ++++ contrib/deprecated/python/enum34/enum/__init__.py (working tree) +@@ -8,6 +8,8 @@ version = 1, 1, 10 + + pyver = float('%s.%s' % _sys.version_info[:2]) + ++ALLOW_SYNONYMS = '__allow_synonyms__' ++ + try: + any + except NameError: +@@ -161,6 +163,7 @@ class EnumMeta(type): + for k, v in original_dict.items(): + classdict[k] = v + ++ allow_synonyms = classdict.get(ALLOW_SYNONYMS, True) + member_type, first_enum = metacls._get_mixins_(bases) + __new__, save_new, use_args = metacls._find_new_(classdict, member_type, + first_enum) +@@ -215,8 +218,18 @@ class EnumMeta(type): + # auto-numbering ;) + if __new__ is None: + __new__ = enum_class.__new__ ++ ++ val2name = {} + for member_name in _order_: + value = members[member_name] ++ if not allow_synonyms: ++ if value in val2name: ++ raise ValueError( ++ 'allow_synonyms=False forbids multiple names of the same value; ' ++ 'Members {!r} and {!r} break this'.format(val2name[value], member_name) ++ ) ++ val2name[value] = member_name ++ + if not isinstance(value, tuple): + args = (value, ) + else: +@@ -237,7 +250,7 @@ class EnumMeta(type): + enum_member.__init__(*args) + # If another member with the same value was already defined, the + # new member becomes an alias to the existing one. +- for name, canonical_member in enum_class._member_map_.items(): ++ for name, canonical_member in (enum_class._member_map_.items() if allow_synonyms else ()): + if canonical_member.value == enum_member._value_: + enum_member = canonical_member + break +@@ -328,7 +341,7 @@ class EnumMeta(type): + """ + return True + +- def __call__(cls, value, names=None, module=None, type=None, start=1): ++ def __call__(cls, value, names=None, module=None, type=None, start=1, allow_synonyms=True): + """Either returns an existing member, or creates a new enum class. + + This method is used both when an enum class is given a value to match +@@ -347,7 +360,7 @@ class EnumMeta(type): + if names is None: # simple value lookup + return cls.__new__(cls, value) + # otherwise, functional API: we're creating a new Enum type +- return cls._create_(value, names, module=module, type=type, start=start) ++ return cls._create_(value, names, module=module, type=type, start=start, allow_synonyms=allow_synonyms) + + def __contains__(cls, member): + return isinstance(member, cls) and member.name in cls._member_map_ +@@ -420,7 +433,7 @@ class EnumMeta(type): + raise AttributeError('Cannot reassign members.') + super(EnumMeta, cls).__setattr__(name, value) + +- def _create_(cls, class_name, names=None, module=None, type=None, start=1): ++ def _create_(cls, class_name, names=None, module=None, type=None, start=1, allow_synonyms=True): + """Convenience method to create a new Enum class. + + `names` can be: +@@ -465,6 +478,7 @@ class EnumMeta(type): + # only set _order_ in classdict if name/value was not from a mapping + if not isinstance(item, basestring): + classdict['_order_'] = _order_ ++ classdict[ALLOW_SYNONYMS] = getattr(cls, ALLOW_SYNONYMS, allow_synonyms) + enum_class = metacls.__new__(metacls, class_name, bases, classdict) + + # TODO: replace the frame hack if a blessed way to know the calling diff --git a/contrib/deprecated/python/enum34/patches/02-fix-tests.patch b/contrib/deprecated/python/enum34/patches/02-fix-tests.patch new file mode 100644 index 00000000000..96e67e60b89 --- /dev/null +++ b/contrib/deprecated/python/enum34/patches/02-fix-tests.patch @@ -0,0 +1,216 @@ +--- contrib/deprecated/python/enum34/enum/test.py (index) ++++ contrib/deprecated/python/enum34/enum/test.py (working tree) +@@ -94,7 +94,9 @@ try: + except Exception: + pass + +-def test_pickle_dump_load(assertion, source, target=None, ++import pytest ++ ++def check_pickle_dump_load(assertion, source, target=None, + protocol=(0, HIGHEST_PROTOCOL)): + start, stop = protocol + failures = [] +@@ -110,7 +112,7 @@ def test_pickle_dump_load(assertion, source, target=None, + if failures: + raise ValueError('Failed with protocols: %s' % ', '.join(failures)) + +-def test_pickle_exception(assertion, exception, obj, ++def check_pickle_exception(assertion, exception, obj, + protocol=(0, HIGHEST_PROTOCOL)): + start, stop = protocol + failures = [] +@@ -610,32 +612,32 @@ class TestEnum(unittest.TestCase): + def test_pickle_enum(self): + if isinstance(Stooges, Exception): + raise Stooges +- test_pickle_dump_load(self.assertTrue, Stooges.CURLY) +- test_pickle_dump_load(self.assertTrue, Stooges) ++ check_pickle_dump_load(self.assertTrue, Stooges.CURLY) ++ check_pickle_dump_load(self.assertTrue, Stooges) + + def test_pickle_int(self): + if isinstance(IntStooges, Exception): + raise IntStooges +- test_pickle_dump_load(self.assertTrue, IntStooges.CURLY) +- test_pickle_dump_load(self.assertTrue, IntStooges) ++ check_pickle_dump_load(self.assertTrue, IntStooges.CURLY) ++ check_pickle_dump_load(self.assertTrue, IntStooges) + + def test_pickle_float(self): + if isinstance(FloatStooges, Exception): + raise FloatStooges +- test_pickle_dump_load(self.assertTrue, FloatStooges.CURLY) +- test_pickle_dump_load(self.assertTrue, FloatStooges) ++ check_pickle_dump_load(self.assertTrue, FloatStooges.CURLY) ++ check_pickle_dump_load(self.assertTrue, FloatStooges) + + def test_pickle_enum_function(self): + if isinstance(Answer, Exception): + raise Answer +- test_pickle_dump_load(self.assertTrue, Answer.him) +- test_pickle_dump_load(self.assertTrue, Answer) ++ check_pickle_dump_load(self.assertTrue, Answer.him) ++ check_pickle_dump_load(self.assertTrue, Answer) + + def test_pickle_enum_function_with_module(self): + if isinstance(Question, Exception): + raise Question +- test_pickle_dump_load(self.assertTrue, Question.who) +- test_pickle_dump_load(self.assertTrue, Question) ++ check_pickle_dump_load(self.assertTrue, Question.who) ++ check_pickle_dump_load(self.assertTrue, Question) + + if pyver == 3.4: + def test_class_nested_enum_and_pickle_protocol_four(self): +@@ -646,10 +648,10 @@ class TestEnum(unittest.TestCase): + + self.__class__.NestedEnum = NestedEnum + self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__ +- test_pickle_exception( ++ check_pickle_exception( + self.assertRaises, PicklingError, self.NestedEnum.twigs, + protocol=(0, 3)) +- test_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs, ++ check_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs, + protocol=(4, HIGHEST_PROTOCOL)) + + elif pyver == 3.5: +@@ -661,15 +663,15 @@ class TestEnum(unittest.TestCase): + + self.__class__.NestedEnum = NestedEnum + self.NestedEnum.__qualname__ = '%s.NestedEnum' % self.__class__.__name__ +- test_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs, ++ check_pickle_dump_load(self.assertTrue, self.NestedEnum.twigs, + protocol=(0, HIGHEST_PROTOCOL)) + + def test_exploding_pickle(self): + BadPickle = Enum('BadPickle', 'dill sweet bread_n_butter') + enum._make_class_unpicklable(BadPickle) + globals()['BadPickle'] = BadPickle +- test_pickle_exception(self.assertRaises, TypeError, BadPickle.dill) +- test_pickle_exception(self.assertRaises, PicklingError, BadPickle) ++ check_pickle_exception(self.assertRaises, TypeError, BadPickle.dill) ++ check_pickle_exception(self.assertRaises, PicklingError, BadPickle) + + def test_string_enum(self): + class SkillLevel(str, Enum): +@@ -1066,7 +1068,7 @@ class TestEnum(unittest.TestCase): + self.assertEqual(Name.BDFL, 'Guido van Rossum') + self.assertTrue(Name.BDFL, Name('Guido van Rossum')) + self.assertTrue(Name.BDFL is getattr(Name, 'BDFL')) +- test_pickle_dump_load(self.assertTrue, Name.BDFL) ++ check_pickle_dump_load(self.assertTrue, Name.BDFL) + + def test_extending(self): + def bad_extension(): +@@ -1291,9 +1293,9 @@ class TestEnum(unittest.TestCase): + globals()['NEI'] = NEI + NI5 = NamedInt('test', 5) + self.assertEqual(NI5, 5) +- test_pickle_dump_load(self.assertTrue, NI5, 5) ++ check_pickle_dump_load(self.assertTrue, NI5, 5) + self.assertEqual(NEI.y.value, 2) +- test_pickle_dump_load(self.assertTrue, NEI.y) ++ check_pickle_dump_load(self.assertTrue, NEI.y) + + if pyver >= 3.4: + def test_subclasses_with_getnewargs_ex(self): +@@ -1348,9 +1350,9 @@ class TestEnum(unittest.TestCase): + globals()['NEI'] = NEI + NI5 = NamedInt('test', 5) + self.assertEqual(NI5, 5) +- test_pickle_dump_load(self.assertEqual, NI5, 5, protocol=(4, HIGHEST_PROTOCOL)) ++ check_pickle_dump_load(self.assertEqual, NI5, 5, protocol=(4, HIGHEST_PROTOCOL)) + self.assertEqual(NEI.y.value, 2) +- test_pickle_dump_load(self.assertTrue, NEI.y, protocol=(4, HIGHEST_PROTOCOL)) ++ check_pickle_dump_load(self.assertTrue, NEI.y, protocol=(4, HIGHEST_PROTOCOL)) + + def test_subclasses_with_reduce(self): + class NamedInt(int): +@@ -1404,9 +1406,9 @@ class TestEnum(unittest.TestCase): + globals()['NEI'] = NEI + NI5 = NamedInt('test', 5) + self.assertEqual(NI5, 5) +- test_pickle_dump_load(self.assertEqual, NI5, 5) ++ check_pickle_dump_load(self.assertEqual, NI5, 5) + self.assertEqual(NEI.y.value, 2) +- test_pickle_dump_load(self.assertTrue, NEI.y) ++ check_pickle_dump_load(self.assertTrue, NEI.y) + + def test_subclasses_with_reduce_ex(self): + class NamedInt(int): +@@ -1460,9 +1462,9 @@ class TestEnum(unittest.TestCase): + globals()['NEI'] = NEI + NI5 = NamedInt('test', 5) + self.assertEqual(NI5, 5) +- test_pickle_dump_load(self.assertEqual, NI5, 5) ++ check_pickle_dump_load(self.assertEqual, NI5, 5) + self.assertEqual(NEI.y.value, 2) +- test_pickle_dump_load(self.assertTrue, NEI.y) ++ check_pickle_dump_load(self.assertTrue, NEI.y) + + def test_subclasses_without_direct_pickle_support(self): + class NamedInt(int): +@@ -1514,8 +1516,8 @@ class TestEnum(unittest.TestCase): + NI5 = NamedInt('test', 5) + self.assertEqual(NI5, 5) + self.assertEqual(NEI.y.value, 2) +- test_pickle_exception(self.assertRaises, TypeError, NEI.x) +- test_pickle_exception(self.assertRaises, PicklingError, NEI) ++ check_pickle_exception(self.assertRaises, TypeError, NEI.x) ++ check_pickle_exception(self.assertRaises, PicklingError, NEI) + + def test_subclasses_without_direct_pickle_support_using_name(self): + class NamedInt(int): +@@ -1569,8 +1571,8 @@ class TestEnum(unittest.TestCase): + NI5 = NamedInt('test', 5) + self.assertEqual(NI5, 5) + self.assertEqual(NEI.y.value, 2) +- test_pickle_dump_load(self.assertTrue, NEI.y) +- test_pickle_dump_load(self.assertTrue, NEI) ++ check_pickle_dump_load(self.assertTrue, NEI.y) ++ check_pickle_dump_load(self.assertTrue, NEI) + + def test_tuple_subclass(self): + class SomeTuple(tuple, Enum): +@@ -1582,7 +1584,7 @@ class TestEnum(unittest.TestCase): + self.assertTrue(isinstance(SomeTuple.second, tuple)) + self.assertEqual(SomeTuple.third, (3, 'for the music')) + globals()['SomeTuple'] = SomeTuple +- test_pickle_dump_load(self.assertTrue, SomeTuple.first) ++ check_pickle_dump_load(self.assertTrue, SomeTuple.first) + + def test_duplicate_values_give_unique_enum_items(self): + class AutoNumber(Enum): +@@ -1832,6 +1834,30 @@ class TestUnique(unittest.TestCase): + self.assertTrue('double -> single' in message) + self.assertTrue('turkey -> triple' in message) + ++ def test_unique_class(self): ++ values = [ ++ ('switzerland', 1), ++ ('sweden', 2), ++ ('usa', 3), ++ ('iran', 4), ++ ('iraq', 4), ++ ] ++ with self.assertRaises(ValueError): ++ enum.Enum('Country', values, allow_synonyms=False) ++ ++ with self.assertRaises(ValueError): ++ class Country(enum.Enum): ++ __allow_synonyms__ = False ++ ++ austria = 1 ++ australia = 1 ++ ++ with self.assertRaises(ValueError): ++ class NoDuplicatesAllowed(enum.Enum): ++ __allow_synonyms__ = False ++ ++ t = NoDuplicatesAllowed('NewEnum', [('russia', 1), ('belorussia', 1)]) ++ + + class TestMe(unittest.TestCase): + |