From b1c81de4fadbd00897700a7321f03b390d952b2e Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Thu, 26 Aug 2021 00:09:36 +0100 Subject: gentoo resync : 26.08.2021 --- dev-python/PyContracts/Manifest | 3 +- .../PyContracts/PyContracts-1.8.14-r1.ebuild | 21 ++- .../files/PyContracts-1.8.14-fix-py3.10.patch | 150 +++++++++++++++++++++ 3 files changed, 169 insertions(+), 5 deletions(-) create mode 100644 dev-python/PyContracts/files/PyContracts-1.8.14-fix-py3.10.patch (limited to 'dev-python/PyContracts') diff --git a/dev-python/PyContracts/Manifest b/dev-python/PyContracts/Manifest index d407e7d5d9bf..22590ec028cc 100644 --- a/dev-python/PyContracts/Manifest +++ b/dev-python/PyContracts/Manifest @@ -1,3 +1,4 @@ +AUX PyContracts-1.8.14-fix-py3.10.patch 5460 BLAKE2B 4c30458b9a731788055b1a5cd21ff973800e1aa82dedd613d3ebb7e3fe92f6d5264d7ecfb8bcb2ba6c67e5cfc495e894a66ab40e3d22ec818da923daafbc353e SHA512 3c6bafd95ef86c77e05ddf7c3c54bbbcf49f7275edd7f0d8a9bcbb04d95c4070e32f4b1bb1bd251351e970caf5eb469d110a9cd10cfd78ed4ad8967c8c8caae3 DIST PyContracts-1.8.14.tar.gz 92346 BLAKE2B 507fdfb313347d6650f21326b6b70b73f17cd702f25d06d97e5d84f84c9bf7f23cceb48d918727158d02081115344a4194e307caed59510265dacbf267774ab4 SHA512 95f8c76e35cc7549fefa069d9c354fc1d4a55dcab0f3fd322cb86aed92c7bfa75a06eabb7540ff991d590a90cdec781906b856291002a82ee5ab0072cdcf6ccd -EBUILD PyContracts-1.8.14-r1.ebuild 834 BLAKE2B 2d1592a0f24d75139917f11a1e1cc7c63c036979c946d9095c47ed2e4826e838330e779f579d935afa623c3861b0716667ad517ae64de6cab56f84c1a50c7ed8 SHA512 36eca8efa4204122931709887fa845f570ef951f4d109c7aeaf07dc520c0e97e5680f84935bd2907f219279a1e91a8e92e3f5fd4b5c1ae1178cae1901444e516 +EBUILD PyContracts-1.8.14-r1.ebuild 1042 BLAKE2B 65b5f77488099baff5ff8d0f106bc808964cbed5b3d24898062a336a8f15a5135ac593fe3f88ca843af633fbb60b3219b3032954e5569b7c0523a4d96595b960 SHA512 583e3400dfa47124d9f966b29426663bee1649954360868dc3c282d70e2a89b830708f847aa0a1164ac568d3c5c4bcd0af4a2f5104fdd0d8f53a0713e99ed802 MISC metadata.xml 412 BLAKE2B 168aead3c24da61c3e95e4d178546b196b07f4a1f5a51f3f5fe893222e209608e4f4d570a673c617085839756fbc3107e8544fa5db631429b596b6d7748eef9f SHA512 58a8491f4d6b1f1dca9c59036a0f3ecf20b71811d5696fa886452ebf5217f70ebc94615b86f16e130ad520ff39860128a801ed6c5566ac55a548985a56654267 diff --git a/dev-python/PyContracts/PyContracts-1.8.14-r1.ebuild b/dev-python/PyContracts/PyContracts-1.8.14-r1.ebuild index 4158f29912c4..92c510898e87 100644 --- a/dev-python/PyContracts/PyContracts-1.8.14-r1.ebuild +++ b/dev-python/PyContracts/PyContracts-1.8.14-r1.ebuild @@ -3,13 +3,12 @@ EAPI=7 -DISTUTILS_USE_SETUPTOOLS=bdepend -PYTHON_COMPAT=( python3_{7..9} pypy3 ) +PYTHON_COMPAT=( python3_{8..10} pypy3 ) -inherit distutils-r1 +inherit distutils-r1 optfeature DESCRIPTION="Declare constraints on function parameters and return values" -HOMEPAGE="https://andreacensi.github.com/contracts/ https://pypi.org/project/PyContracts/" +HOMEPAGE="https://andreacensi.github.io/contracts/ https://pypi.org/project/PyContracts/" SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" SLOT="0" @@ -22,5 +21,19 @@ RDEPEND=" dev-python/pyparsing[${PYTHON_USEDEP}] dev-python/six[${PYTHON_USEDEP}] " +BDEPEND=" + test? ( $(python_gen_cond_dep ' + dev-python/numpy[${PYTHON_USEDEP}] + ' 'python*' ) + ) +" + +PATCHES=( + "${FILESDIR}/${P}-fix-py3.10.patch" +) distutils_enable_tests nose + +pkg_postinst() { + optfeature "constraints on numpy arrays" dev-python/numpy +} diff --git a/dev-python/PyContracts/files/PyContracts-1.8.14-fix-py3.10.patch b/dev-python/PyContracts/files/PyContracts-1.8.14-fix-py3.10.patch new file mode 100644 index 000000000000..754b40efabd8 --- /dev/null +++ b/dev-python/PyContracts/files/PyContracts-1.8.14-fix-py3.10.patch @@ -0,0 +1,150 @@ +From d23ee2902e9e9aeffec86cbdb7a392d71be70861 Mon Sep 17 00:00:00 2001 +From: slorg1 +Date: Tue, 16 Apr 2019 14:13:52 -0400 +Subject: [PATCH] + upgrade to use collections.abc as needed for python 3.6+ + +--- a/src/contracts/library/map.py ++++ b/src/contracts/library/map.py +@@ -1,7 +1,11 @@ + from ..interface import Contract, ContractNotRespected + from ..syntax import (W, contract_expression, O, S, add_contract, add_keyword, + Keyword) +-import collections ++ ++try: ++ import collections.abc as collectionsAbc # python 3.6+ ++except ImportError: ++ import collections as collectionsAbc + + + class Map(Contract): +@@ -13,7 +17,7 @@ def __init__(self, length=None, key_c=None, value_c=None, where=None): + self.value_c = value_c + + def check_contract(self, context, value, silent): +- if not isinstance(value, collections.Mapping): ++ if not isinstance(value, collectionsAbc.Mapping): + error = 'Expected a Mapping, got %r.' % value.__class__.__name__ + raise ContractNotRespected(contract=self, error=error, + value=value, context=context) +--- a/src/contracts/library/miscellaneous_aliases.py ++++ b/src/contracts/library/miscellaneous_aliases.py +@@ -1,12 +1,16 @@ +-import collections +- ++try: ++ import collections.abc as collectionsAbc # python 3.6+ ++except ImportError: ++ import collections as collectionsAbc + + + def ist(C): ++ + def f(x): + f.__name__ = 'isinstance_of_%s' % C.__name__ + if not isinstance(x, C): + raise ValueError('Value is not an instance of %s.' % C.__name__) ++ + return f + + +@@ -14,33 +18,32 @@ def m_new_contract(name, f): + from contracts.library.extensions import CheckCallable + from contracts.library.extensions import Extension + Extension.registrar[name] = CheckCallable(f) +- + +-m_new_contract('Container', ist(collections.Container)) +-# todo: Iterable(x) +-m_new_contract('Iterable', ist(collections.Iterable)) +- +-m_new_contract('Hashable', ist(collections.Hashable)) + ++m_new_contract('Container', ist(collectionsAbc.Container)) ++# todo: Iterable(x) ++m_new_contract('Iterable', ist(collectionsAbc.Iterable)) + ++m_new_contract('Hashable', ist(collectionsAbc.Hashable)) + +-m_new_contract('Iterator', ist(collections.Iterator)) +-m_new_contract('Sized', ist(collections.Sized)) +-m_new_contract('Callable', ist(collections.Callable)) +-m_new_contract('Sequence', ist(collections.Sequence)) +-m_new_contract('Set', ist(collections.Set)) +-m_new_contract('MutableSequence', ist(collections.MutableSequence)) +-m_new_contract('MutableSet', ist(collections.MutableSet)) +-m_new_contract('Mapping', ist(collections.Mapping)) +-m_new_contract('MutableMapping', ist(collections.MutableMapping)) +-#new_contract('MappingView', ist(collections.MappingView)) +-#new_contract('ItemsView', ist(collections.ItemsView)) +-#new_contract('ValuesView', ist(collections.ValuesView)) ++m_new_contract('Iterator', ist(collectionsAbc.Iterator)) ++m_new_contract('Sized', ist(collectionsAbc.Sized)) ++m_new_contract('Callable', ist(collectionsAbc.Callable)) ++m_new_contract('Sequence', ist(collectionsAbc.Sequence)) ++m_new_contract('Set', ist(collectionsAbc.Set)) ++m_new_contract('MutableSequence', ist(collectionsAbc.MutableSequence)) ++m_new_contract('MutableSet', ist(collectionsAbc.MutableSet)) ++m_new_contract('Mapping', ist(collectionsAbc.Mapping)) ++m_new_contract('MutableMapping', ist(collectionsAbc.MutableMapping)) ++# new_contract('MappingView', ist(collections.MappingView)) ++# new_contract('ItemsView', ist(collections.ItemsView)) ++# new_contract('ValuesView', ist(collections.ValuesView)) + + + # Not a lambda to have better messages +-def is_None(x): ++def is_None(x): + return x is None + ++ + m_new_contract('None', is_None) + m_new_contract('NoneType', is_None) +--- a/src/contracts/library/seq.py ++++ b/src/contracts/library/seq.py +@@ -1,7 +1,12 @@ + from ..interface import Contract, ContractNotRespected + from ..syntax import (add_contract, W, contract_expression, O, S, add_keyword, + Keyword) +-import collections ++ ++try: ++ import collections.abc as collectionsAbc # python 3.6+ ++except ImportError: ++ import collections as collectionsAbc ++ + from past.builtins import xrange + + try: +@@ -38,7 +43,7 @@ def check_contract(self, context, value, silent): + + return + +- if not isinstance(value, collections.Sequence): ++ if not isinstance(value, collectionsAbc.Sequence): + error = 'Expected a Sequence, got %r.' % value.__class__.__name__ + raise ContractNotRespected(self, error, value, context) + +--- a/src/contracts/library/sets.py ++++ b/src/contracts/library/sets.py +@@ -1,7 +1,10 @@ + from ..interface import Contract, ContractNotRespected, describe_type + from ..syntax import (Keyword, O, S, W, add_contract, add_keyword, + contract_expression) +-import collections ++try: ++ import collections.abc as collectionsAbc # python 3.6+ ++except ImportError: ++ import collections as collectionsAbc + + + class ASet(Contract): +@@ -13,7 +16,7 @@ def __init__(self, length_contract=None, + self.elements_contract = elements_contract + + def check_contract(self, context, value, silent): +- if not isinstance(value, collections.Set): ++ if not isinstance(value, collectionsAbc.Set): + error = 'Expected a set, got %r.' % describe_type(value) + raise ContractNotRespected(self, error, value, context) + -- cgit v1.2.3