diff options
author | Michał Górny <mgorny@gentoo.org> | 2022-04-09 18:36:48 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2022-04-09 18:36:59 +0200 |
commit | f488163d4fc1834b8727556be3084702293ead72 (patch) | |
tree | f3b94f4e2af1535e3eef2c7fc72c3866560ac97d /dev-python/pydantic | |
parent | dev-python/pydevd: Stabilize 2.8.0 arm, #837425 (diff) | |
download | gentoo-f488163d4fc1834b8727556be3084702293ead72.tar.gz gentoo-f488163d4fc1834b8727556be3084702293ead72.tar.bz2 gentoo-f488163d4fc1834b8727556be3084702293ead72.zip |
dev-python/pydantic: Switch to PEP517 build
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/pydantic')
-rw-r--r-- | dev-python/pydantic/pydantic-1.9.0-r1.ebuild | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/dev-python/pydantic/pydantic-1.9.0-r1.ebuild b/dev-python/pydantic/pydantic-1.9.0-r1.ebuild new file mode 100644 index 000000000000..1e26b96ea70b --- /dev/null +++ b/dev-python/pydantic/pydantic-1.9.0-r1.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( pypy3 python3_{8..10} ) + +inherit distutils-r1 + +DESCRIPTION="Data parsing and validation using Python type hints" +HOMEPAGE="https://github.com/samuelcolvin/pydantic" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/typing-extensions[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + test? ( + dev-python/hypothesis[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/python-dotenv[${PYTHON_USEDEP}] + dev-python/python-email-validator[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + sed -i -e '/CFLAGS/d' setup.py || die + distutils-r1_src_prepare +} + +python_compile() { + distutils-r1_python_compile + # "setup.py clean" is broken + # TODO: remove this if distutils-r1.eclass is updated to do rm + rm -rf build || die +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_mock + + local EPYTEST_DESELECT=( + # flaky test, known upstream + tests/test_hypothesis_plugin.py::test_can_construct_models_with_all_fields + ) + case ${EPYTHON} in + python3.8) + EPYTEST_DESELECT+=( + # Those fail on python 3.8 as None changed typing semantic on >=3.9 + "tests/test_types.py::test_none[value_type3]" + tests/test_typing.py::test_is_none_type + ) + ;; + pypy3) + EPYTEST_DESELECT+=( + tests/test_private_attributes.py::test_private_attribute + tests/test_private_attributes.py::test_private_attribute_annotation + tests/test_private_attributes.py::test_private_attribute_factory + tests/test_private_attributes.py::test_private_attribute_multiple_inheritance + tests/test_private_attributes.py::test_underscore_attrs_are_private + ) + ;; + esac + epytest +} |