diff --git a/dev-cpp/xsimd/xsimd-13.1.0.ebuild b/dev-cpp/xsimd/xsimd-13.1.0.ebuild index 5f82952e32214..2959aa4f2e2a7 100644 --- a/dev-cpp/xsimd/xsimd-13.1.0.ebuild +++ b/dev-cpp/xsimd/xsimd-13.1.0.ebuild @@ -13,7 +13,7 @@ SRC_URI="https://github.com/xtensor-stack/${PN}/archive/refs/tags/${PV}.tar.gz LICENSE="BSD" SLOT="0" -KEYWORDS="~amd64 arm ~arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="doc test" RESTRICT="!test? ( test )" diff --git a/dev-python/blake3/blake3-1.0.4.ebuild b/dev-python/blake3/blake3-1.0.4.ebuild index 8e042ea0c0945..e7420a53224a0 100644 --- a/dev-python/blake3/blake3-1.0.4.ebuild +++ b/dev-python/blake3/blake3-1.0.4.ebuild @@ -116,7 +116,6 @@ src_prepare() { python_compile() { local DISTUTILS_USE_PEP517=$(usex rust maturin setuptools) - local DISTUTILS_UPSTREAM_PEP517=${DISTUTILS_USE_PEP517} if ! use rust; then cd c_impl || die diff --git a/dev-python/narwhals/narwhals-1.35.0.ebuild b/dev-python/narwhals/narwhals-1.35.0.ebuild index cdea211899e5c..55bf60632d4f2 100644 --- a/dev-python/narwhals/narwhals-1.35.0.ebuild +++ b/dev-python/narwhals/narwhals-1.35.0.ebuild @@ -21,7 +21,7 @@ SRC_URI=" LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="~amd64 ~arm64" BDEPEND=" test? ( diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest index 5966ccd3241f9..519418dadf8e1 100644 --- a/dev-python/plotly/Manifest +++ b/dev-python/plotly/Manifest @@ -1,2 +1 @@ -DIST plotly.py-5.24.1.gh.tar.gz 32096988 BLAKE2B 79c1f3350bb43780f5f5f2f54955591875c2819a4b819e667e8df14ae72e42cf2939167a3425bd725e80af8823c8578a9cf286f4e4d82881578ca13f7e1cd860 SHA512 dc1484f5b0630bd4d936ab23231be7a577b887701f1f3c33d8f6501dc65718d871bee7af9f467fe130d2e7dcdded22717562352ce4ec70d25bc368faeb51d0e8 DIST plotly.py-6.0.1.gh.tar.gz 7619570 BLAKE2B 6c88b24d15aa233e1d3871975d224bd9829f1726beba665bc68a2d1af293361774b10a9d4a95ce2c5c53afe7ac01f7770809fbfbab3733ff31531233905c97f1 SHA512 192d5ea5e5d75548d9fbacc36d419b695d5e976ab0e2e538b1453c89ba3b1b0494abc4631d0d631cd6fe60a74b4a67937173564f9661aa408ffc1fc0bfac2559 diff --git a/dev-python/plotly/files/plotly-5.23.0-numpy-2.patch b/dev-python/plotly/files/plotly-5.23.0-numpy-2.patch deleted file mode 100644 index 6941369978e8e..0000000000000 --- a/dev-python/plotly/files/plotly-5.23.0-numpy-2.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 99df182e9171e9b9e81811447f37ace05acc9272 Mon Sep 17 00:00:00 2001 -From: Ben Greiner -Date: Sun, 2 Jun 2024 16:43:06 +0200 -Subject: [PATCH 1/3] Remove np.nan and np.inf aliases no longer present in - numpy2 - ---- - .../tests/test_optional/test_utils/test_utils.py | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/plotly/tests/test_optional/test_utils/test_utils.py b/plotly/tests/test_optional/test_utils/test_utils.py -index cf32e1bdff..d7d982e635 100644 ---- a/plotly/tests/test_optional/test_utils/test_utils.py -+++ b/plotly/tests/test_optional/test_utils/test_utils.py -@@ -34,7 +34,7 @@ - - ## JSON encoding - numeric_list = [1, 2, 3] --np_list = np.array([1, 2, 3, np.NaN, np.NAN, np.Inf, dt(2014, 1, 5)]) -+np_list = np.array([1, 2, 3, np.nan, np.inf, dt(2014, 1, 5)]) - mixed_list = [ - 1, - "A", -@@ -45,7 +45,7 @@ - dt_list = [dt(2014, 1, 5), dt(2014, 1, 5, 1, 1, 1), dt(2014, 1, 5, 1, 1, 1, 1)] - - df = pd.DataFrame( -- columns=["col 1"], data=[1, 2, 3, dt(2014, 1, 5), pd.NaT, np.NaN, np.Inf] -+ columns=["col 1"], data=[1, 2, 3, dt(2014, 1, 5), pd.NaT, np.nan, np.inf] - ) - - rng = pd.date_range("1/1/2011", periods=2, freq="H") -@@ -184,7 +184,7 @@ def test_figure_json_encoding(self): - - assert ( - js1 == '{"type": "scatter3d", "x": [1, 2, 3], ' -- '"y": [1, 2, 3, null, null, null, "2014-01-05T00:00:00"], ' -+ '"y": [1, 2, 3, null, null, "2014-01-05T00:00:00"], ' - '"z": [1, "A", "2014-01-05T00:00:00", ' - '"2014-01-05T01:01:01", "2014-01-05T01:01:01.000001"]}' - ) -@@ -195,9 +195,9 @@ def test_figure_json_encoding(self): - _json.dumps(figure, cls=utils.PlotlyJSONEncoder, sort_keys=True) - - # Test data wasn't mutated -- np_array = np.array([1, 2, 3, np.NaN, np.NAN, np.Inf, dt(2014, 1, 5)]) -+ np_array = np.array([1, 2, 3, np.nan, np.inf, dt(2014, 1, 5)]) - for k in range(len(np_array)): -- if k in [3, 4]: -+ if k == 3: - # check NaN - assert np.isnan(np_list[k]) and np.isnan(np_array[k]) - else: -@@ -237,7 +237,7 @@ def test_pandas_json_encoding(self): - # Test that data wasn't mutated - assert_series_equal( - df["col 1"], -- pd.Series([1, 2, 3, dt(2014, 1, 5), pd.NaT, np.NaN, np.Inf], name="col 1"), -+ pd.Series([1, 2, 3, dt(2014, 1, 5), pd.NaT, np.nan, np.inf], name="col 1"), - ) - - j2 = _json.dumps(df.index, cls=utils.PlotlyJSONEncoder) - -From 23b50d9df805349674e11949459976fb338b3d76 Mon Sep 17 00:00:00 2001 -From: Ben Greiner -Date: Sun, 2 Jun 2024 16:48:34 +0200 -Subject: [PATCH 2/3] Avoid putting 255 into int8 due to new numpy 2 type - promotion rules - ---- - .../plotly/plotly/tests/test_optional/test_px/test_imshow.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/plotly/tests/test_optional/test_px/test_imshow.py b/plotly/tests/test_optional/test_px/test_imshow.py -index c2e863c846..d8f9ad98c7 100644 ---- a/plotly/tests/test_optional/test_px/test_imshow.py -+++ b/plotly/tests/test_optional/test_px/test_imshow.py -@@ -341,7 +341,7 @@ def test_imshow_source_dtype_zmax(dtype, contrast_rescaling): - assert ( - np.abs( - np.max(decode_image_string(fig.data[0].source)) -- - 255 * img.max() / np.iinfo(dtype).max -+ - np.int64(255) * img.max() / np.iinfo(dtype).max - ) - < 1 - ) - diff --git a/dev-python/plotly/plotly-5.24.1.ebuild b/dev-python/plotly/plotly-5.24.1.ebuild deleted file mode 100644 index 1c80d1f50eae7..0000000000000 --- a/dev-python/plotly/plotly-5.24.1.ebuild +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{10..12} ) -DISTUTILS_USE_PEP517=setuptools - -inherit distutils-r1 - -MY_P=plotly.py-${PV} -DESCRIPTION="Browser-based graphing library for Python" -HOMEPAGE=" - https://plotly.com/python/ - https://github.com/plotly/plotly.py/ - https://pypi.org/project/plotly/ -" -SRC_URI=" - https://github.com/plotly/plotly.py/archive/refs/tags/v${PV}.tar.gz - -> ${MY_P}.gh.tar.gz -" -S="${WORKDIR}/${MY_P}/packages/python/plotly" -# The tests are not included in the PyPI tarball, to use the GitHub tarball -# we have to skip npm, which means that the resulting install will -# unfortunately lack the jupyterlab extension. - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64 ~arm64" - -RDEPEND=" - dev-python/packaging[${PYTHON_USEDEP}] - >=dev-python/tenacity-6.2.0[${PYTHON_USEDEP}] -" -BDEPEND=" - dev-python/versioneer[${PYTHON_USEDEP}] - test? ( - dev-python/ipykernel[${PYTHON_USEDEP}] - dev-python/ipython[${PYTHON_USEDEP}] - dev-python/ipywidgets[${PYTHON_USEDEP}] - dev-python/jupyter[${PYTHON_USEDEP}] - dev-python/jupyterlab[${PYTHON_USEDEP}] - dev-python/matplotlib[${PYTHON_USEDEP}] - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pandas[${PYTHON_USEDEP}] - dev-python/pillow[${PYTHON_USEDEP}] - dev-python/psutil[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/pytz[${PYTHON_USEDEP}] - dev-python/scipy[${PYTHON_USEDEP}] - dev-python/shapely[${PYTHON_USEDEP}] - dev-python/statsmodels[${PYTHON_USEDEP}] - dev-python/xarray[${PYTHON_USEDEP}] - dev-python/scikit-image[${PYTHON_USEDEP}] - ) -" - -# There are sphinx docs but we are missing a bunch of dependencies. -# distutils_enable_sphinx ../../../doc/apidoc -distutils_enable_tests pytest - -# README ends up a broken symlink -DOCS=() - -python_prepare_all() { - local PATCHES=( - # https://github.com/plotly/plotly.py/pull/4622 - "${FILESDIR}/${PN}-5.23.0-numpy-2.patch" - ) - - distutils-r1_python_prepare_all - - # unbundle versioneer - rm versioneer.py || die - # Do not try to fetch stuff with npm - export SKIP_NPM=1 -} - -python_test() { - local EPYTEST_IGNORE=( - # kaleido not packaged - plotly/tests/test_optional/test_kaleido - - # plotly-orca not packaged - plotly/tests/test_orca - ) - - local EPYTEST_DESELECT=( - # kaleido not packaged - plotly/tests/test_orca/test_to_image.py::test_bytesio - - # fails in non-isolated env - test_init/test_dependencies_not_imported.py::test_dependencies_not_imported - test_init/test_lazy_imports.py::test_lazy_imports - - # Minor matplotlib incompatibility - plotly/matplotlylib/mplexporter/tests/test_basic.py::test_legend_dots - plotly/matplotlylib/mplexporter/tests/test_utils.py::test_linestyle - - # TODO - plotly/tests/test_io/test_to_from_plotly_json.py::test_sanitize_json - - # two subtests that require 'vaex' and 'polars' respectively - plotly/tests/test_optional/test_px/test_px_input.py::test_build_df_from_vaex_and_polars - plotly/tests/test_optional/test_px/test_px_input.py::test_build_df_with_hover_data_from_vaex_and_polars - - # the usual recursion problem - plotly/tests/test_optional/test_utils/test_utils.py::test_masked_constants_example - ) - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - epytest -} - -python_install_all() { - distutils-r1_python_install_all - - mv "${ED}"/{usr/etc,etc} || die -} diff --git a/dev-python/plotly/plotly-6.0.1.ebuild b/dev-python/plotly/plotly-6.0.1.ebuild index 4bc2ac5748a77..b1974c30772e2 100644 --- a/dev-python/plotly/plotly-6.0.1.ebuild +++ b/dev-python/plotly/plotly-6.0.1.ebuild @@ -26,7 +26,7 @@ S="${WORKDIR}/${MY_P}" LICENSE="MIT" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="~amd64 ~arm64" RDEPEND=" >=dev-python/narwhals-1.15.1[${PYTHON_USEDEP}] diff --git a/dev-python/sqlglot/sqlglot-26.12.1.ebuild b/dev-python/sqlglot/sqlglot-26.12.1.ebuild index dfb5ad04a049b..e6c62a001c9ef 100644 --- a/dev-python/sqlglot/sqlglot-26.12.1.ebuild +++ b/dev-python/sqlglot/sqlglot-26.12.1.ebuild @@ -62,7 +62,6 @@ python_compile() { if use native-extensions; then local DISTUTILS_USE_PEP517=maturin - local DISTUTILS_UPSTREAM_PEP517=maturin cd sqlglotrs || die distutils-r1_python_compile cd - >/dev/null || die diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index e1672dd3c3b0a..6e477823ce02d 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -154,10 +154,11 @@ # will be merged into ${D}. # @ECLASS_VARIABLE: DISTUTILS_UPSTREAM_PEP517 +# @DEFAULT_UNSET # @DESCRIPTION: # Specifies the PEP517 build backend used upstream. It is used # by the eclass to verify the correctness of DISTUTILS_USE_PEP517, -# and matches DISTUTILS_USE_PEP517 by default. However, it can be +# and defaults to ${DISTUTILS_USE_PEP517}. However, it can be # overriden to workaround the eclass check, when it is desirable # to build the wheel using other backend than the one used upstream. # @@ -165,7 +166,6 @@ # be subtle differences between the behavior of different PEP517 build # backends, for example regarding finding package files. When using # this option, please make sure that the package is installed correctly. -: "${DISTUTILS_UPSTREAM_PEP517:=${DISTUTILS_USE_PEP517}}" # @ECLASS_VARIABLE: DISTUTILS_USE_SETUPTOOLS # @DEFAULT_UNSET @@ -322,7 +322,7 @@ _distutils_set_globals() { ;; setuptools) bdep+=' - >=dev-python/setuptools-75.8.2[${PYTHON_USEDEP}] + >=dev-python/setuptools-78.1.0[${PYTHON_USEDEP}] ' ;; sip) @@ -347,7 +347,7 @@ _distutils_set_globals() { eqawarn "is enabled." fi else - local setuptools_dep='>=dev-python/setuptools-75.8.2[${PYTHON_USEDEP}]' + local setuptools_dep='>=dev-python/setuptools-78.1.0[${PYTHON_USEDEP}]' case ${DISTUTILS_USE_SETUPTOOLS:-bdepend} in no|manual) @@ -388,6 +388,11 @@ _distutils_set_globals() { DISTUTILS_DEPS=${bdep} readonly DISTUTILS_DEPS fi + else + eqawarn "distutils-r1.eclass legacy mode is deprecated and will be removed." + eqawarn "Please migrate your ebuilds to use DISTUTILS_USE_PEP517 (common values" + eqawarn "are 'setuptools' for packages using setuptools/distutils," + eqawarn "and 'no' for packages using non-PEP517 build systems)." fi if [[ ! ${DISTUTILS_OPTIONAL} ]]; then @@ -599,7 +604,7 @@ distutils_enable_sphinx() { # # - pytest: dev-python/pytest # -# - setup.py: setup.py test (no deps included) +# - setup.py: setup.py test (no deps included; deprecated) # # - unittest: for built-in Python unittest module # @@ -645,14 +650,10 @@ distutils_enable_tests() { fi ;; setup.py) + eqawarn "'distutils_enable_tests setup.py' is deprecated and will be removed." + eqawarn "Please use unittest or pytest instead." ;; unittest) - # unittest-or-fail is needed in py<3.12 - local test_pkgs="$(python_gen_cond_dep ' - dev-python/unittest-or-fail[${PYTHON_USEDEP}] - ' 3.10 3.11 - )" - [[ -n ${test_pkgs} ]] && test_deps+=" ${test_pkgs}" ;; *) die "${FUNCNAME}: unsupported argument: ${1}" @@ -981,15 +982,6 @@ distutils-r1_python_prepare_all() { if [[ ! ${DISTUTILS_USE_PEP517} ]]; then _distutils-r1_disable_ez_setup _distutils-r1_handle_pyproject_toml - - case ${DISTUTILS_USE_SETUPTOOLS} in - no) - eqawarn "Non-PEP517 builds are deprecated for ebuilds using plain distutils." - eqawarn "Please migrate to DISTUTILS_USE_PEP517=setuptools." - eqawarn "Please see Python Guide for more details:" - eqawarn " https://projects.gentoo.org/python/guide/distutils.html" - ;; - esac fi if [[ ${DISTUTILS_IN_SOURCE_BUILD} && ! ${DISTUTILS_SINGLE_IMPL} ]] @@ -1164,7 +1156,10 @@ _distutils-r1_get_backend() { fi # verify that the ebuild correctly specifies the build backend - local expected_backend=$(_distutils-r1_key_to_backend "${DISTUTILS_UPSTREAM_PEP517}") + local expected_backend=$( + _distutils-r1_key_to_backend \ + "${DISTUTILS_UPSTREAM_PEP517:-${DISTUTILS_USE_PEP517}}" + ) if [[ ${expected_backend} != ${build_backend} ]]; then # special-case deprecated backends case ${build_backend} in diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index affb8e55a50d9..79097765167f7 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -1481,7 +1481,7 @@ epytest() { # @FUNCTION: eunittest # @USAGE: [...] # @DESCRIPTION: -# Run unit tests using dev-python/unittest-or-fail, passing the standard +# Run unit tests using unittest, passing the standard # set of options, followed by user-specified options. # # This command dies on failure and respects nonfatal. @@ -1492,11 +1492,7 @@ eunittest() { _python_check_occluded_packages # unittest fails with "no tests" correctly since Python 3.12 - local runner=unittest - if _python_impl_matches "${EPYTHON}" 3.{9..11}; then - runner=unittest_or_fail - fi - set -- "${EPYTHON}" -m "${runner}" discover -v "${@}" + set -- "${EPYTHON}" -m unittest discover -v "${@}" echo "${@}" >&2 "${@}" || die -n "Tests failed with ${EPYTHON}"