summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/frozendict')
-rw-r--r--dev-python/frozendict/files/frozendict-2.3.4-optional-extension.patch20
-rw-r--r--dev-python/frozendict/frozendict-2.3.4-r1.ebuild42
2 files changed, 62 insertions, 0 deletions
diff --git a/dev-python/frozendict/files/frozendict-2.3.4-optional-extension.patch b/dev-python/frozendict/files/frozendict-2.3.4-optional-extension.patch
new file mode 100644
index 000000000000..f64402b023e3
--- /dev/null
+++ b/dev-python/frozendict/files/frozendict-2.3.4-optional-extension.patch
@@ -0,0 +1,20 @@
+Autodetect availability of C extension. Taken from upstream PR.
+
+Upstream-PR: https://github.com/Marco-Sulla/python-frozendict/pull/69
+
+diff --git a/setup.py b/setup.py
+index 0325383..0667b59 100755
+--- a/setup.py
++++ b/setup.py
+@@ -163,7 +163,7 @@ if len(argv) > 1 and argv[1] in custom_args:
+ impl = python_implementation()
+
+ if custom_arg == None:
+- if impl == "PyPy":
++ if impl == "PyPy" or not src_path.exists():
+ custom_arg = "py"
+ else:
+ custom_arg = "c"
+--
+2.39.1
+
diff --git a/dev-python/frozendict/frozendict-2.3.4-r1.ebuild b/dev-python/frozendict/frozendict-2.3.4-r1.ebuild
new file mode 100644
index 000000000000..986217d9dcee
--- /dev/null
+++ b/dev-python/frozendict/frozendict-2.3.4-r1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit distutils-r1
+
+DESCRIPTION="A simple immutable mapping for python"
+HOMEPAGE="
+ https://github.com/Marco-Sulla/python-frozendict/
+ https://pypi.org/project/frozendict/
+"
+SRC_URI="
+ https://github.com/Marco-Sulla/python-frozendict/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/python-${P}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ "${FILESDIR}/${P}-optional-extension.patch"
+)
+
+python_test() {
+ local EPYTEST_IGNORE=()
+ # skip tests of native extension for python versions where it is not available
+ [[ ${EPYTHON} == python3.11 ]] && EPYTEST_IGNORE+=(
+ test/test_frozendict_c.py
+ test/test_frozendict_c_subclass.py
+ )
+
+ rm -rf frozendict || die
+ epytest
+}