diff options
20 files changed, 454 insertions, 221 deletions
diff --git a/dev-python/adblock/adblock-0.5.2-r1.ebuild b/dev-python/adblock/adblock-0.5.2-r1.ebuild new file mode 100644 index 000000000000..2e432744ce79 --- /dev/null +++ b/dev-python/adblock/adblock-0.5.2-r1.ebuild @@ -0,0 +1,99 @@ +# Copyright 2021-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + adblock-0.4.3 + addr-0.14.0 + adler-1.0.2 + aho-corasick-0.7.18 + autocfg-1.1.0 + base64-0.13.0 + bitflags-1.3.2 + byteorder-1.4.3 + cfg-if-1.0.0 + crc32fast-1.3.2 + either-1.6.1 + flate2-1.0.22 + form_urlencoded-1.0.1 + idna-0.2.3 + indoc-0.3.6 + indoc-impl-0.3.6 + instant-0.1.12 + itertools-0.10.3 + libc-0.2.118 + lock_api-0.4.6 + matches-0.1.9 + memchr-2.4.1 + miniz_oxide-0.4.4 + num-traits-0.2.14 + once_cell-1.9.0 + parking_lot-0.11.2 + parking_lot_core-0.8.5 + paste-0.1.18 + paste-impl-0.1.18 + percent-encoding-2.1.0 + proc-macro-hack-0.5.19 + proc-macro2-1.0.36 + psl-2.0.71 + psl-types-2.0.10 + pyo3-0.15.1 + pyo3-build-config-0.15.1 + pyo3-macros-0.15.1 + pyo3-macros-backend-0.15.1 + quote-1.0.15 + redox_syscall-0.2.10 + regex-1.5.4 + regex-syntax-0.6.25 + rmp-0.8.10 + rmp-serde-0.13.7 + rmp-serde-0.15.5 + scopeguard-1.1.0 + seahash-3.0.7 + serde-1.0.136 + serde_derive-1.0.136 + smallvec-1.8.0 + syn-1.0.86 + tinyvec-1.5.1 + tinyvec_macros-0.1.0 + twoway-0.2.2 + unchecked-index-0.2.2 + unicode-bidi-0.3.7 + unicode-normalization-0.1.19 + unicode-xid-0.2.2 + unindent-0.1.7 + url-2.2.2 + winapi-0.3.9 + winapi-i686-pc-windows-gnu-0.4.0 + winapi-x86_64-pc-windows-gnu-0.4.0" +DISTUTILS_USE_PEP517=maturin +PYTHON_COMPAT=( python3_{8..10} ) +inherit cargo distutils-r1 + +DESCRIPTION="Python wrapper for Brave's adblocking library, which is written in Rust" +HOMEPAGE="https://github.com/ArniDagur/python-adblock" +SRC_URI=" + https://github.com/ArniDagur/python-adblock/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz + $(cargo_crate_uris)" +S="${WORKDIR}/python-${P}" + +LICENSE="Apache-2.0 BSD MIT MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +BDEPEND="test? ( dev-python/toml[${PYTHON_USEDEP}] )" + +distutils_enable_tests pytest + +QA_FLAGS_IGNORED=".*/adblock.*.so" + +DOCS=( CHANGELOG.md README.md ) + +src_compile() { + distutils-r1_src_compile + + # tests try to find Cargo.toml + adblock/adblock.pyi in current + # directory but will fail if pytest finds init in ./adblock + rm adblock/__init__.py || die +} diff --git a/dev-python/aesara/Manifest b/dev-python/aesara/Manifest index ec0f87806588..349d20be4ae7 100644 --- a/dev-python/aesara/Manifest +++ b/dev-python/aesara/Manifest @@ -1,2 +1,3 @@ DIST aesara-rel-2.5.3.tar.gz 8191431 BLAKE2B 698bc3b6f7e84288be3318796989d13d7de92f72c66abfa83b14c08f6310f974f7381d729e712c2bd5e76f398d74a3c5dc03d7515a22254261312e586e3fd461 SHA512 5c1ad9d6ad1fb58be1477713d863f2b1371544ea8293d8e9e1a690860a0483b83c9558827856a2546498bab26360f141a5ee97d4c7f3f2aad773e84f9766a59b DIST aesara-rel-2.6.3.tar.gz 7845423 BLAKE2B 66b84a10337efc01e37d82793da56b61b1825829d982e24e0f93ebb67cd3c22e5bb2e37c71ab8bd9648b039efaf4c667dc53df2a9613ba9370c2138eb74ca400 SHA512 e0a804c0c3c1cd24753a237c386df9600d2b01cf4991aeca3d794df4068f584a9ab5341b72fa5695ccb9d06f1e4954f450436e3a7ebe4c2efc1354a5c2e5979d +DIST aesara-rel-2.6.4.tar.gz 7845688 BLAKE2B bfd0222c2a8d8e22abb56b785b73a121032832417562046445b8e0b2f6461326ba760d1839fd1acac2215a1547ed48d613998cb4915a07521f4d976a32a811b9 SHA512 a9f47bb4718fab974a35d7eab1b2a5ab8ea7d911dd9d92a791763a659f96b52b9832532e5e13aad10ac8e2f0927d2cc3e97c09e84046fee125925b3ac2898893 diff --git a/dev-python/aesara/aesara-2.6.4.ebuild b/dev-python/aesara/aesara-2.6.4.ebuild new file mode 100644 index 000000000000..5bcb330fb0af --- /dev/null +++ b/dev-python/aesara/aesara-2.6.4.ebuild @@ -0,0 +1,80 @@ +# Copyright 2021-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 multiprocessing optfeature + +MY_P=aesara-rel-${PV} +DESCRIPTION="Library for operating on mathematical expressions with multi-dimensional arrays" +HOMEPAGE=" + https://github.com/aesara-devs/aesara/ + https://pypi.org/project/aesara/ +" +SRC_URI=" + https://github.com/aesara-devs/aesara/archive/rel-${PV}.tar.gz + -> ${MY_P}.tar.gz +" +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" + +RDEPEND=" + dev-python/cons[${PYTHON_USEDEP}] + dev-python/etuples[${PYTHON_USEDEP}] + dev-python/logical-unification[${PYTHON_USEDEP}] + dev-python/minikanren[${PYTHON_USEDEP}] + dev-python/filelock[${PYTHON_USEDEP}] + >=dev-python/numpy-1.17.0[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx doc 'dev-python/sphinx_rtd_theme' +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # speed tests are unreliable + tests/scan/test_basic.py::test_speed + tests/scan/test_basic.py::test_speed_rnn + tests/scan/test_basic.py::test_speed_batchrnn + tests/link/test_vm.py::test_speed + tests/link/test_vm.py::test_speed_lazy + tests/tensor/test_gc.py::test_merge_opt_runtime + + # rounding problem? + # https://github.com/aesara-devs/aesara/issues/477 + tests/tensor/test_math_scipy.py::TestGammaUBroadcast::test_good + tests/tensor/test_math_scipy.py::TestGammaUInplaceBroadcast::test_good + ) + local EPYTEST_IGNORE=( + # we do not package numba + tests/link/test_numba.py + tests/link/test_numba_performance.py + ) + + epytest -n "$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")" +} + +python_compile() { + esetup.py build_py + distutils-r1_python_compile + rm "${BUILD_DIR}/install$(python_get_sitedir)/bin/__init__.py" || die +} + +pkg_postinst() { + optfeature "GPU code generation/execution on NVIDIA gpus" dev-util/nvidia-cuda-toolkit dev-util/nvidia-cuda-sdk + optfeature "GPU/CPU code generation on CUDA and OpenCL devices" dev-libs/libgpuarray dev-python/pycuda +} diff --git a/dev-python/funcparserlib/Manifest b/dev-python/funcparserlib/Manifest index bae6143af039..5165ae806ff4 100644 --- a/dev-python/funcparserlib/Manifest +++ b/dev-python/funcparserlib/Manifest @@ -1 +1,2 @@ DIST funcparserlib-1.0.0_alpha0.gh.tar.gz 68260 BLAKE2B e1a9a9a516142d683424df881a7c390a3999438905136fbd394f23856022f14390d22f1dd3914e680d2c188c819cce9cc4f7ff2e485478614dd4632701db4614 SHA512 02cac31d76bb888118a99367811a8cfac28a999ba113ce43f4bd6211cef815ce1793fc1767637dd019728f15d5c408e859d5bc8365a2c53804092f1d6f03e54e +DIST funcparserlib-1.0.0_alpha1.gh.tar.gz 74033 BLAKE2B bf4ee5011f595c6b7ba7430c63e21243257ddc2e00cccea75bf5b16feca2a629becd28f196d657e024419010051a33e5f12fae29b6f8763b35cb8d1bb9144a6b SHA512 16dbf07edd5cad979c61396adc3ccce7dcedd46b3cf6394ecf35c9fd2b22cdf262bb609ffca9a4b6f9f0c236124a7b7cdd929166d65056ca71e73afa2f6b97e2 diff --git a/dev-python/funcparserlib/funcparserlib-1.0.0_alpha1.ebuild b/dev-python/funcparserlib/funcparserlib-1.0.0_alpha1.ebuild new file mode 100644 index 000000000000..d8c92dcf4cde --- /dev/null +++ b/dev-python/funcparserlib/funcparserlib-1.0.0_alpha1.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 + +MY_PV="${PV/_alpha/a}" + +DESCRIPTION="Recursive descent parsing library based on functional combinators" +HOMEPAGE="https://pypi.org/project/funcparserlib/" +SRC_URI=" + https://github.com/vlasovskikh/funcparserlib/archive/${MY_PV}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${PN}-${MY_PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + +BDEPEND=" + test? ( + dev-python/six[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests unittest + +python_install_all() { + local DOCS=( doc/*.md ) + distutils-r1_python_install_all +} diff --git a/dev-python/installer/Manifest b/dev-python/installer/Manifest index 615052a2d874..0d491f829ade 100644 --- a/dev-python/installer/Manifest +++ b/dev-python/installer/Manifest @@ -1,2 +1,4 @@ DIST installer-0.5.0-py3-none-any.whl.zip 452177 BLAKE2B 41bb5929c1bc42afa1e09f366356aa441eb92d258da40421d7f46ceb466ee4604ed96fef0969dcd2fe28e8f4b06c741ac3108000f69ea42b6bb194890102ad71 SHA512 470c4fec8888114af6769db8b8cefa09a376bfcdf0d78320f884a7453a4991765cdf0b9122c74d8e147d193e75ab3e12cc24c3b93c0668956c17f52443833c4e DIST installer-0.5.0.gh.tar.gz 468351 BLAKE2B 6c258bdaae3351e87a88675fb813bb70611d9188ba16a09ba03de4caa3d79fe32544e229f880338304d00343c2b3121b1948bbef2e27c7255d231a3d5665aa5f SHA512 8731bbf8a51b1094dc87f84575eec07a650988bdeddf205d04cf80a5088eac0d8b2927022864f4011a9562fcaae9f511747e5672f94ec3cce1dccdfa833c4fce +DIST installer-0.5.1-py3-none-any.whl.zip 452220 BLAKE2B df2d2b351c3ca1e7d5991cebc77035bd8da980d0cd739b11532dac3e1fca4bcf58ebb746b4a3468978f765515ca22d3f777b279174715aaa2838231d4204028b SHA512 50f4778352393ad4d56ce5ccce2f5691df2114ef133b1a614e1c4ec2802261dd4de162fd359f47a51b4195b9b5594f5448591ee80356fd2ddb3221a2e602c797 +DIST installer-0.5.1.gh.tar.gz 468433 BLAKE2B 5ba76eb2a576209c2bdf80adfcbd8ea22b55394652640085cf8dd39ded06a0a33ab75f3e4ff73d5de2db028b8c4dac652d631c94e2c9401a825ee75e7b143c01 SHA512 0320c1795c98a593b5da46775465e26bdf8736f59835970517cb02f2756030a3744b9385a9342e8062362d0769d585ff6cce504fdf105e99d27d6ba40281842b diff --git a/dev-python/installer/installer-0.5.1.ebuild b/dev-python/installer/installer-0.5.1.ebuild new file mode 100644 index 000000000000..fc57c39dcab2 --- /dev/null +++ b/dev-python/installer/installer-0.5.1.ebuild @@ -0,0 +1,44 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# please keep this ebuild at EAPI 7 -- sys-apps/portage dep +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS=manual +PYTHON_COMPAT=( python3_{8..10} pypy3 ) +inherit distutils-r1 + +DESCRIPTION="A library for installing Python wheels" +HOMEPAGE=" + https://pypi.org/project/installer/ + https://github.com/pypa/installer/ + https://installer.readthedocs.io/en/latest/ +" +SRC_URI=" + https://github.com/pypa/installer/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + https://files.pythonhosted.org/packages/py3/${PN::1}/${PN}/${P%_p*}-py3-none-any.whl + -> ${P%_p*}-py3-none-any.whl.zip +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +BDEPEND=" + app-arch/unzip +" + +distutils_enable_tests pytest + +# do not use any build system to avoid circular deps +python_compile() { :; } + +python_test() { + local -x PYTHONPATH=src + epytest +} + +python_install() { + python_domodule src/installer "${WORKDIR}"/*.dist-info +} diff --git a/dev-python/installer/metadata.xml b/dev-python/installer/metadata.xml index 090fe7139f47..29211bd2819d 100644 --- a/dev-python/installer/metadata.xml +++ b/dev-python/installer/metadata.xml @@ -8,6 +8,6 @@ <stabilize-allarches/> <upstream> <remote-id type="pypi">installer</remote-id> - <remote-id type="github">pradyunsg/installer</remote-id> + <remote-id type="github">pypa/installer</remote-id> </upstream> </pkgmetadata> diff --git a/dev-python/jedi/Manifest b/dev-python/jedi/Manifest index 801972ab0d16..f57f4c13c346 100644 --- a/dev-python/jedi/Manifest +++ b/dev-python/jedi/Manifest @@ -1,4 +1,6 @@ DIST django-stubs-1.5.0.tar.gz 180400 BLAKE2B 0619a76f89fe4fad456a82e3048009f25fdfd8b8e3071fd5a0cc0eebd62b3e9e8b77d29c5e4e8d1e0297fc466cc7e0c49771750b609fff49516e2aa1499c198b SHA512 c3e89f02a22561b5446e1cc0f01be791767984b5791fe5bd362ec6128e2ba7b32e921f9ee719a80ace05f7f0c84a912731700b457761f64617c1415cd232c7da -DIST jedi-0.17.2.tar.gz 474372 BLAKE2B cd0bf217202e4413a7d4f1d4095fb22ad5c3de557993fd33e246a1fb516992a16a7382db9e18e0c0414ff5d927008c8148e9bbd8ee0dbd62368d01a31611c326 SHA512 cd96faa6f9cd6e8ad8b9a52ceaa6a84f30c8ced51b20d621932f0babf1b90bbc445fbe5ffd11a4f0e356bf20bdd1da756ccc3574e5fc978883de72dfdb519977 +DIST django-stubs-fd057010f6cbf176f57d1099e82be46d39b99cb9.tar.gz 183312 BLAKE2B a68f6139903f5001db994ee0d881f40ab74932e81c3e2c3a0c22dc56e6be681d0fb42ce837603b21e4d0d448ccb25884ef0f69039305f309e82603267cee9f6a SHA512 506322c132f94e6a1e88cdbde6027a566387731fa6ad59934f95c3511f49d90eff2a3138363811be648b096407d418cd1f801df0bc35b1e464ef181e4076ada1 DIST jedi-0.18.0.tar.gz 462786 BLAKE2B 35021ed1566fffc24056060f16b8a0aa6f8b6e382f716ff5978711fd66340e96f4e0b628463aadead5605db32cfc20df06a6c53a9b435658f1c455a6212da6e5 SHA512 fcee84496285a0b0b1cf1f3827593d0603bd87c84baf725cc7bdbf594979f49729b18a29b7465848413bdd3a5670fcc41187dd3eadbd9750d77788c5a9408dbf +DIST jedi-0.18.1.tar.gz 466884 BLAKE2B c2403b20447b27b1fb19c16d1131299154fcb767453116964b339bf7ef4a1ca20b6c3216c3fbd63c304dd2c0c02a67702d5228e1d847975b778597dc58b489d1 SHA512 c72dc4927fe44641ea57c61e68b3c74c3a3f70ddc2990454ba931026c288723e07263918ecbb4ecc6f79716d37e10a1b1448ae8cfc6d52465122b3d1e43bea25 +DIST typeshed-ae9d4f4b21bb5e1239816c301da7b1ea904b44c3.tar.gz 602044 BLAKE2B 53298918a7e9a1163e76d4c70ad2a2117ee90b49329aa82d82b2aaaeaf000c971872f83ed283af6dc4be068b813876760c8b1b4acb4131865572a4aed3ea9230 SHA512 b3b9da66b6c6e03e0b262b3262df31215a5e080468ca9ebf4332ed53d715cd3956db7067fad3ec267042ff704f81ac665c703ef2fd0c5b445d440bd8e52bf1aa DIST typeshed-jedi_v0.16.0.tar.gz 497407 BLAKE2B d322d70d3c46d1abcedddbd10aed5c6f213698f4e9f9aec1b4bd7e7186ab7ce384ec6a95d6adc46c7459e3bbb748d6ff432115cae744a315aed60972d2390eee SHA512 1551082938b52717f90e28ffd25e838ab04798ea86ea719fa35975a9de006bcc063a00cc8c8babd994990cdff694d48490f4d8c898c322666450d7ef3be8688a diff --git a/dev-python/jedi/jedi-0.18.0.ebuild b/dev-python/jedi/jedi-0.18.0.ebuild index ae592db2a559..59d2c1396385 100644 --- a/dev-python/jedi/jedi-0.18.0.ebuild +++ b/dev-python/jedi/jedi-0.18.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -52,22 +52,30 @@ python_prepare_all() { } python_test() { - local deselect=( + local EPYTEST_DESELECT=( # TODO 'test/test_integration.py::test_completion[stdlib:155]' 'test/test_integration.py::test_completion[on_import:29]' + # pytest? + 'test/test_integration.py::test_completion[conftest:27]' # assume pristine virtualenv test/test_utils.py::TestSetupReadline::test_local_import test/test_inference/test_imports.py::test_os_issues # fragile test/test_speed.py ) - [[ ${EPYTHON} == python3.10 ]] && deselect+=( + [[ ${EPYTHON} != python3.8 ]] && EPYTEST_DESELECT+=( + # TODO + 'test/test_integration.py::test_completion[lambdas:112]' + ) + [[ ${EPYTHON} == python3.10 ]] && EPYTEST_DESELECT+=( # new features increased the match count again test/test_utils.py::TestSetupReadline::test_import ) + # some plugin breaks case-insensitivity on completions + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 # django and pytest tests are very version dependent - epytest ${deselect[@]/#/--deselect } -k "not django and not pytest" + epytest -k "not django and not pytest" } diff --git a/dev-python/jedi/jedi-0.17.2-r1.ebuild b/dev-python/jedi/jedi-0.18.1.ebuild index d49d1ea8809d..695103134ebb 100644 --- a/dev-python/jedi/jedi-0.17.2-r1.ebuild +++ b/dev-python/jedi/jedi-0.18.1.ebuild @@ -1,33 +1,44 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 +DISTUTILS_USE_PEP517=setuptools PYTHON_COMPAT=( python3_{8..10} ) inherit distutils-r1 -TYPESHED_P="typeshed-jedi_v0.16.0" -DJANGO_STUBS_P="django-stubs-v1.5.0" +TYPESHED_P="typeshed-ae9d4f4b21bb5e1239816c301da7b1ea904b44c3" +DJANGO_STUBS_P="django-stubs-fd057010f6cbf176f57d1099e82be46d39b99cb9" DESCRIPTION="Autocompletion library for Python" -HOMEPAGE="https://github.com/davidhalter/jedi" +HOMEPAGE=" + https://github.com/davidhalter/jedi/ + https://pypi.org/project/jedi/ +" SRC_URI=" https://github.com/davidhalter/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz https://github.com/davidhalter/typeshed/archive/${TYPESHED_P#typeshed-}.tar.gz -> ${TYPESHED_P}.tar.gz https://github.com/davidhalter/django-stubs/archive/${DJANGO_STUBS_P#django-stubs-}.tar.gz - -> ${DJANGO_STUBS_P/v/}.tar.gz" + -> ${DJANGO_STUBS_P/v/}.tar.gz +" -LICENSE="MIT - test? ( Apache-2.0 )" +LICENSE=" + MIT + test? ( Apache-2.0 ) +" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" -RDEPEND="=dev-python/parso-0.7*[${PYTHON_USEDEP}]" +RDEPEND=" + =dev-python/parso-0.8*[${PYTHON_USEDEP}] +" +# RDEPEND needed because of an import jedi inside conf.py distutils_enable_sphinx docs \ + dev-python/parso \ dev-python/sphinx_rtd_theme distutils_enable_tests pytest @@ -50,22 +61,19 @@ python_prepare_all() { } python_test() { - local deselect=( - # TODO - 'test/test_integration.py::test_completion[stdlib:197]' - 'test/test_integration.py::test_completion[on_import:29]' - # assume pristine virtualenv - test/test_utils.py::TestSetupReadline::test_local_import - test/test_inference/test_imports.py::test_os_issues + local EPYTEST_DESELECT=( # fragile test/test_speed.py + # assumes pristine virtualenv + test/test_inference/test_imports.py::test_os_issues ) - [[ ${EPYTHON} == python3.10 ]] && deselect+=( - # new features increased the match count again - test/test_utils.py::TestSetupReadline::test_import - + [[ ${EPYTHON} != python3.8 ]] && EPYTEST_DESELECT+=( + # TODO + 'test/test_integration.py::test_completion[lambdas:112]' ) + # some plugin breaks case-insensitivity on completions + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 # django and pytest tests are very version dependent - epytest ${deselect[@]/#/--deselect } -k "not django and not pytest" + epytest -k "not django and not pytest" } diff --git a/dev-python/jsonref/Manifest b/dev-python/jsonref/Manifest index 7616822e2725..d4c5f01fc21a 100644 --- a/dev-python/jsonref/Manifest +++ b/dev-python/jsonref/Manifest @@ -1 +1,2 @@ DIST jsonref-0.1.tar.gz 12296 BLAKE2B cab2b4778b8a0184989ed6ff520ed6f12a68e9109a92aa0fd5521b69ea14cd5b6301ce61bf98f0d0d4d44fb016f7d6bd99fc804975bddf1c350bc4b46d62f77f SHA512 9900601feab0c20c902a6d5575fd411898af126a650d0c9ff955f50f5bd1f5da8e5a071ca86cac31ce3c5fb35a516f849cbb70098cac2cfdc910ba33a1f7411b +DIST jsonref-0.2.tar.gz 13032 BLAKE2B 0db36904f6914c889d608ac6a368cc8a80b0f81b6bf9f77bb229042c484084c6a06f31099440a48f49f5efea248e0e4f498269bdf89e240be8e149a0f221747d SHA512 415eaefcaf2c7a02bf70749522fef0d96f1e0cc5772edd50ca016a564258df21dd3eb178b7a33ee61e606125fb802a29b0cb8855a81c6116baf6393208927b0f diff --git a/dev-python/jsonref/jsonref-0.2.ebuild b/dev-python/jsonref/jsonref-0.2.ebuild new file mode 100644 index 000000000000..84fdd34cbed9 --- /dev/null +++ b/dev-python/jsonref/jsonref-0.2.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 + +DESCRIPTION="An implementation of JSON Reference for Python" +HOMEPAGE=" + https://github.com/gazpachoking/jsonref/ + https://pypi.org/project/jsonref/ +" +SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +distutils_enable_tests pytest + +python_test() { + epytest tests.py +} diff --git a/dev-python/jsonrpclib/Manifest b/dev-python/jsonrpclib/Manifest index ce059b105bec..cda3cfd16183 100644 --- a/dev-python/jsonrpclib/Manifest +++ b/dev-python/jsonrpclib/Manifest @@ -1 +1,2 @@ DIST jsonrpclib-0.4.2.tar.gz 59590 BLAKE2B 4201d62c9be469d7016943acfc84dca56606f17383ac26e86f574c34927ee6131c5c1a9bc5c3934b8324049ac35b1ff5e4e49ca7ef850251ebdf9a42a53e59a4 SHA512 8d9e5ebe8de960272a1ea0a194544d41851f96c5bc16b9eb6984ac4e48ec1aeaee8e4c3846cfe747a737612934d43a3df72bb1267f0608b1cd2d6faba2acc7b2 +DIST jsonrpclib-0.4.3.2.gh.tar.gz 63127 BLAKE2B 4301f23a981f00e78f88f78a8f5e8d776985fcd5d268373430b308cd9e2b07d5e1aaae9fa514640275439f4269ecf9ac5a2e42d5c96b870b72e37e4faea7c790 SHA512 718b9a8a49b6f936635ea8e500d16b8d3f42a28e44c4d0bb2bf1e648063ab1107edca93b4f178600a0b36d2e0584cf531f6e9721f5ed6967ea9a160c923103f3 diff --git a/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.ebuild b/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.ebuild new file mode 100644 index 000000000000..afe4f32dda97 --- /dev/null +++ b/dev-python/jsonrpclib/jsonrpclib-0.4.3.2.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 + +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="https://github.com/tcalmant/jsonrpclib.git" + inherit git-r3 +else + SRC_URI=" + https://github.com/tcalmant/jsonrpclib/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz + " + KEYWORDS="~amd64 ~arm ~arm64 ~mips ~x86" +fi + +DESCRIPTION="python implementation of the JSON-RPC spec (1.0 and 2.0)" +HOMEPAGE=" + https://github.com/tcalmant/jsonrpclib/ + https://pypi.org/project/jsonrpclib/ +" + +LICENSE="Apache-2.0" +SLOT="0" + +BDEPEND=" + test? ( + dev-python/simplejson[${PYTHON_USEDEP}] + dev-python/ujson[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test() { + epytest + + # NB: we need to run this test separately as it breaks + # tests/test_server.py::PooledServerTests + # see jsonlib.py, get_handler() + # the most preferred (first) lib that's in test deps + local -x JSONRPCLIB_TEST_EXPECTED_LIB=ujson + epytest tests/test_jsonlib.py::TestJsonLibLoading +} diff --git a/dev-python/parso/Manifest b/dev-python/parso/Manifest index 91bdb40e9e69..bdcfd4c9eab0 100644 --- a/dev-python/parso/Manifest +++ b/dev-python/parso/Manifest @@ -1,2 +1 @@ -DIST parso-0.7.1.tar.gz 399842 BLAKE2B 1e47c1dd6846d01aa5820d7cedc3eafcf12ea0d4a2e95fa3f54429633b1c12dc39a4abe237fa46eb629408006777bd1f512cf878025b55119568ac19729b8c19 SHA512 318969a7a941c4a0948e58643b07b6f5c446ea166b3a8e44a556f0677ec9a36d7dc8c6d37ca7bce3f8276ee3d7144e22fbaaeac90c738fb90f7e94a0cf8abf7d DIST parso-0.8.3.tar.gz 397648 BLAKE2B 8942408e27198075c92ef51f7a191cc7781eb3a5110119b91fd95f86e13ebe2fbfee11022a2bfec794150f60b3af8c4d5f324cb011703cd581c17f92232ae5bf SHA512 7874460053662d40c2cfcf0015e330e1c8201eeb07682e2079a636db553a82dc25b70b14ad0f0c82fb817f655359d695101a17f616abf9a39f49c61ae5fd49b1 diff --git a/dev-python/parso/files/parso-0.7.1-flaky-test.patch b/dev-python/parso/files/parso-0.7.1-flaky-test.patch deleted file mode 100644 index 609918f31bb5..000000000000 --- a/dev-python/parso/files/parso-0.7.1-flaky-test.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2799a7a3c2cf87fdc2d0c19a0890acea425091ce Mon Sep 17 00:00:00 2001 -From: Ivan Babrou <github@ivan.computer> -Date: Tue, 23 Feb 2021 22:27:05 -0800 -Subject: [PATCH] Fix flaky test_cache_last_used_update - -Sometimes time moves slowly and strict comparison is not enough: - -``` -> assert now < node_cache_item.last_used < time.time() -E assert 1614147958.869299 < 1614147958.869299 -E + where 1614147958.869299 = <parso.cache._NodeCacheItem object at 0x10456fe80>.last_used -E + and 1614147958.869299 = <built-in function time>() -E + where <built-in function time> = time.time - -test/test_cache.py:149: AssertionError -``` - -In particular, macOS timings can be a bit coarse. - -The test failure is from Apple Silicon M1. ---- - test/test_cache.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/test_cache.py b/test/test_cache.py -index bfdbaf5..f4291c2 100644 ---- a/test/test_cache.py -+++ b/test/test_cache.py -@@ -146,7 +146,7 @@ def test_cache_last_used_update(diff_cache, use_file_io): - parse('somecode2', cache=True, path=p, diff_cache=diff_cache) - - node_cache_item = next(iter(parser_cache.values()))[p] -- assert now < node_cache_item.last_used < time.time() -+ assert now <= node_cache_item.last_used <= time.time() - - - @skip_pypy diff --git a/dev-python/parso/files/parso-0.8.2-flaky-test.patch b/dev-python/parso/files/parso-0.8.2-flaky-test.patch deleted file mode 100644 index 729ec409c829..000000000000 --- a/dev-python/parso/files/parso-0.8.2-flaky-test.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 60fed7b9f80cbb3d9cb7a9e42ad8c0f3c513801d Mon Sep 17 00:00:00 2001 -From: Saiyang Gou <gousaiyang@163.com> -Date: Sat, 29 May 2021 18:17:24 -0700 -Subject: [PATCH] Fix flaky test_cache_last_used_update again (#189) - -This is a follow up for #177. On Windows, `assert node_cache_item.last_used < now` may fail as the two time values can be equal. ---- - test/test_cache.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/test/test_cache.py b/test/test_cache.py -index f4291c2..5e633fc 100644 ---- a/test/test_cache.py -+++ b/test/test_cache.py -@@ -137,7 +137,7 @@ def test_cache_last_used_update(diff_cache, use_file_io): - parse('somecode', cache=True, path=p) - node_cache_item = next(iter(parser_cache.values()))[p] - now = time.time() -- assert node_cache_item.last_used < now -+ assert node_cache_item.last_used <= now - - if use_file_io: - f = _FixedTimeFileIO(p, 'code', node_cache_item.last_used - 10) diff --git a/dev-python/parso/parso-0.7.1-r1.ebuild b/dev-python/parso/parso-0.7.1-r1.ebuild deleted file mode 100644 index 61ffc2a3595c..000000000000 --- a/dev-python/parso/parso-0.7.1-r1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} pypy3 ) - -inherit distutils-r1 - -DESCRIPTION="a python parser that supports error recovery and round-trip parsing" -HOMEPAGE="https://github.com/davidhalter/parso https://pypi.org/project/parso/" -SRC_URI="https://github.com/davidhalter/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv ~s390 sparc x86" - -distutils_enable_sphinx docs -distutils_enable_tests pytest - -PATCHES=( - "${FILESDIR}"/${P}-flaky-test.patch - "${FILESDIR}"/${PN}-0.8.2-flaky-test.patch -) - -python_test() { - local deselect=() - [[ ${EPYTHON} == python3.10 ]] && deselect+=( - # py3.10 changed exception messages - test/test_python_errors.py::test_python_exception_matches - test/test_python_errors.py::test_default_except_error_postition - ) - epytest ${deselect[@]/#/--deselect } -} diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index 5528ff74cccf..6fc9f1b9c1ff 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -104,6 +104,8 @@ esac # # - jupyter - jupyter_packaging backend # +# - maturin - maturin backend +# # - pdm - pdm.pep517 backend # # - poetry - poetry-core backend @@ -157,13 +159,6 @@ esac # ${DISTUTILS_DEPS}" # @CODE -# @ECLASS_VARIABLE: GPEP517_TESTING -# @USER_VARIABLE -# @DESCRIPTION: -# Enable in make.conf to test building via dev-python/gpep517 instead of -# inline Python snippets. dev-python/gpep517 needs to be installed -# first. - if [[ ! ${_DISTUTILS_R1} ]]; then [[ ${EAPI} == 6 ]] && inherit eutils xdg-utils @@ -190,11 +185,8 @@ _distutils_set_globals() { die "DISTUTILS_USE_SETUPTOOLS is not used in PEP517 mode" fi - # installer is used to install the wheel - # tomli is used to read build-backend from pyproject.toml bdep=' - >=dev-python/installer-0.4.0_p20220124[${PYTHON_USEDEP}] - >=dev-python/tomli-1.2.3[${PYTHON_USEDEP}]' + >=dev-python/gpep517-3[${PYTHON_USEDEP}]' case ${DISTUTILS_USE_PEP517} in flit) bdep+=' @@ -212,6 +204,10 @@ _distutils_set_globals() { bdep+=' >=dev-python/jupyter_packaging-0.11.1[${PYTHON_USEDEP}]' ;; + maturin) + bdep+=' + >=dev-util/maturin-0.12.7[${PYTHON_USEDEP}]' + ;; pdm) bdep+=' >=dev-python/pdm-pep517-0.12.3[${PYTHON_USEDEP}]' @@ -992,6 +988,9 @@ _distutils-r1_backend_to_key() { jupyter_packaging.build_api) echo jupyter ;; + maturin) + echo maturin + ;; pdm.pep517.api) echo pdm ;; @@ -1019,20 +1018,7 @@ _distutils-r1_get_backend() { if [[ -f pyproject.toml ]]; then # if pyproject.toml exists, try getting the backend from it # NB: this could fail if pyproject.toml doesn't list one - if [[ ${GPEP517_TESTING} ]]; then - build_backend=$(gpep517 get-backend) - else - build_backend=$( - "${EPYTHON}" - 3>&1 <<-EOF - import os - import tomli - print(tomli.load(open("pyproject.toml", "rb")) - .get("build-system", {}) - .get("build-backend", ""), - file=os.fdopen(3, "w")) - EOF - ) - fi + build_backend=$(gpep517 get-backend) fi if [[ -z ${build_backend} && ${DISTUTILS_USE_PEP517} == setuptools && -f setup.py ]] @@ -1098,45 +1084,18 @@ distutils_pep517_install() { local build_backend=$(_distutils-r1_get_backend) einfo " Building the wheel for ${PWD#${WORKDIR}/} via ${build_backend}" - if [[ ${GPEP517_TESTING} ]]; then - local wheel=$( - gpep517 build-wheel --backend "${build_backend}" \ - --output-fd 3 \ - --wheel-dir "${WHEEL_BUILD_DIR}" 3>&1 >&2 || - die "Wheel build failed" - ) - else - local wheel=$( - "${EPYTHON}" - 3>&1 >&2 <<-EOF || die "Wheel build failed" - import ${build_backend%:*} - import os - print(${build_backend/:/.}.build_wheel(os.environ['WHEEL_BUILD_DIR']), - file=os.fdopen(3, 'w')) - EOF - ) - fi + local wheel=$( + gpep517 build-wheel --backend "${build_backend}" \ + --output-fd 3 \ + --wheel-dir "${WHEEL_BUILD_DIR}" 3>&1 >&2 || + die "Wheel build failed" + ) [[ -n ${wheel} ]] || die "No wheel name returned" einfo " Installing the wheel to ${root}" - if [[ ${GPEP517_TESTING} ]]; then - gpep517 install-wheel --destdir="${root}" --interpreter="${PYTHON}" \ - --prefix="${EPREFIX}/usr" "${WHEEL_BUILD_DIR}/${wheel}" || - die "Wheel install failed" - else - # NB: --compile-bytecode does not produce the correct paths, - # and python_optimize doesn't handle being called outside D, - # so we just defer compiling until the final merge - # NB: we override sys.prefix & sys.exec_prefix because otherwise - # installer would use virtualenv's prefix - local -x PYTHON_PREFIX=${EPREFIX}/usr - "${EPYTHON}" - -d "${root}" "${WHEEL_BUILD_DIR}/${wheel}" --no-compile-bytecode \ - <<-EOF || die "installer failed" - import os, sys - sys.prefix = sys.exec_prefix = os.environ["PYTHON_PREFIX"] - from installer.__main__ import main - main(sys.argv[1:]) - EOF - fi + gpep517 install-wheel --destdir="${root}" --interpreter="${PYTHON}" \ + --prefix="${EPREFIX}/usr" "${WHEEL_BUILD_DIR}/${wheel}" || + die "Wheel install failed" # remove installed licenses find "${root}$(python_get_sitedir)" \ @@ -1146,11 +1105,7 @@ distutils_pep517_install() { # clean the build tree; otherwise we may end up with PyPy3 # extensions duplicated into CPython dists if [[ ${DISTUTILS_USE_PEP517:-setuptools} == setuptools ]]; then - if [[ ${GPEP517_TESTING} ]]; then - rm -rf build || die - else - esetup.py clean -a - fi + rm -rf build || die fi } @@ -1168,42 +1123,57 @@ distutils-r1_python_compile() { _python_check_EPYTHON - # call setup.py build when using setuptools (either via PEP517 - # or in legacy mode) - if [[ ${DISTUTILS_USE_PEP517:-setuptools} == setuptools ]]; then - if [[ ${GPEP517_TESTING} && ${DISTUTILS_USE_PEP517} ]]; then - if [[ -d build ]]; then - eqawarn "A 'build' directory exists already. Artifacts from this directory may" - eqawarn "be picked up by setuptools when building for another interpreter." - eqawarn "Please remove this directory prior to building." + case ${DISTUTILS_USE_PEP517:-setuptools} in + setuptools) + # call setup.py build when using setuptools (either via PEP517 + # or in legacy mode) + + if [[ ${DISTUTILS_USE_PEP517} ]]; then + if [[ -d build ]]; then + eqawarn "A 'build' directory exists already. Artifacts from this directory may" + eqawarn "be picked up by setuptools when building for another interpreter." + eqawarn "Please remove this directory prior to building." + fi + else + _distutils-r1_copy_egg_info fi - elif [[ ! ${DISTUTILS_USE_PEP517} ]]; then - _distutils-r1_copy_egg_info - fi - # distutils is parallel-capable since py3.5 - local jobs=$(makeopts_jobs "${MAKEOPTS}" INF) - if [[ ${jobs} == INF ]]; then - local nproc=$(get_nproc) - jobs=$(( nproc + 1 )) - fi + # distutils is parallel-capable since py3.5 + local jobs=$(makeopts_jobs "${MAKEOPTS} ${*}" INF) + if [[ ${jobs} == INF ]]; then + local nproc=$(get_nproc) + jobs=$(( nproc + 1 )) + fi - if [[ ${DISTUTILS_USE_PEP517} && ${GPEP517_TESTING} ]]; then - # issue build_ext only if it looks like we have something - # to build; setuptools is expensive to start - # see extension.py for list of suffixes - # .pyx is added for Cython - if [[ -n $( - find '(' -name '*.c' -o -name '*.cc' -o -name '*.cpp' \ - -o -name '*.cxx' -o -name '*.c++' -o -name '*.m' \ - -o -name '*.mm' -o -name '*.pyx' ')' -print -quit - ) ]]; then - esetup.py build_ext -j "${jobs}" "${@}" + if [[ ${DISTUTILS_USE_PEP517} ]]; then + # issue build_ext only if it looks like we have at least + # two source files to build; setuptools is expensive + # to start and parallel builds can only benefit us if we're + # compiling at least two files + # + # see extension.py for list of suffixes + # .pyx is added for Cython + if [[ 1 -ne ${jobs} && 2 -eq $( + find '(' -name '*.c' -o -name '*.cc' -o -name '*.cpp' \ + -o -name '*.cxx' -o -name '*.c++' -o -name '*.m' \ + -o -name '*.mm' -o -name '*.pyx' ')' -printf '\n' | + head -n 2 | wc -l + ) ]]; then + esetup.py build_ext -j "${jobs}" "${@}" + fi + else + esetup.py build -j "${jobs}" "${@}" fi - else - esetup.py build -j "${jobs}" "${@}" - fi - fi + ;; + maturin) + # auditwheel may attempt to auto-bundle libraries, bug #831171 + local -x MATURIN_PEP517_ARGS=--skip-auditwheel + + # support cargo.eclass' IUSE=debug if available + in_iuse debug && use debug && + MATURIN_PEP517_ARGS+=" --cargo-extra-args=--profile=dev" + ;; + esac if [[ ${DISTUTILS_USE_PEP517} ]]; then if [[ -n ${DISTUTILS_ARGS[@]} || -n ${mydistutilsargs[@]} ]]; then |