From b8c7370a682e4e29cda623222d17a790c01c3642 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 7 Aug 2024 12:37:21 +0100 Subject: gentoo auto-resync : 07:08:2024 - 12:37:20 --- dev-python/plotly/Manifest | 3 + .../plotly/files/plotly-5.23.0-numpy-2.patch | 87 ++++++++++++++++ dev-python/plotly/plotly-5.23.0.ebuild | 116 +++++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 dev-python/plotly/files/plotly-5.23.0-numpy-2.patch create mode 100644 dev-python/plotly/plotly-5.23.0.ebuild (limited to 'dev-python/plotly') diff --git a/dev-python/plotly/Manifest b/dev-python/plotly/Manifest index b7295e094330..8c06bc0f7430 100644 --- a/dev-python/plotly/Manifest +++ b/dev-python/plotly/Manifest @@ -1,4 +1,7 @@ +AUX plotly-5.23.0-numpy-2.patch 3564 BLAKE2B c45b31eaf9a6621780ef8a85b6aed4190bcb26c950554c2bf9c2e8bcf8c158952dfb917b8625bbd61a2a1837a871e9d8a3ae37b387c9408ceeaa655384b11e98 SHA512 deb96bdf408c58edfdba724708e527653939d353ecdeee1b9a8494eee313dc3a2ac21680349b20738b58744fafbaa2e5ac3dde2b6150ed4a1e61407a9222ea4b AUX plotly-5.8.0-fix-versioneer-import.patch 541 BLAKE2B 51ff6cbab8d9124243445f758aa4b976b7c26e1d3ce633e943bff133b81c0a7587feeb9d5e98a63f319c6afed8dc06e06fafe765ffd51fec245215c849fb4955 SHA512 db4743e538dddfe66e4c9c766698844af4d09c68188afefe92b6419adfe7cc0b1e9c1266d702d590b0b8dfc14bffbc8f08262ead0bff4dae3b5c71fa1259a4b9 DIST plotly.py-5.22.0.gh.tar.gz 31113116 BLAKE2B 67c0ad0d29b9b5041d1e310336a859c11399cced422f51d9f0906f61474868858f6f62da0172bec3e48f38eb5d1f7c68b497b6014b64f8cf48ef510a41f639ee SHA512 447072a78a5914aea5546edc6c51ea36475d12fd7e4b9f845ebe8396fb531c9b7ba942b6b5f9680f897acd9e2aefb8c09d08aadf106a78531faa8995d5ac218e +DIST plotly.py-5.23.0.gh.tar.gz 31606651 BLAKE2B f34d1df464cac49ab834674be8815b97535d8f59e4263d8f68d82f2c2c52976a26b13fe9275f4a90fe0c0848449807dcd8342c0e5309d4b39d61b39cb31d8db5 SHA512 96573bf5952b29a75d2c87029c1041f05d08f4f891d63d5999372d64c211abc5982308dcfbf7590981cd0666ae84ccbee8c9a22e8e2b97571fc8c6a4e634cdbc EBUILD plotly-5.22.0.ebuild 3391 BLAKE2B d1556dc727f0f3b506a95f6960bb01a890d417657c6ce652315b35a4faae9406acd44b3e21f9b5b589c358bbf50a18bef4ba473707ea3b0d26e05066eb26abba SHA512 d28765768e87448683ed5772b6cf313910d8186ccc27d17dbd696fbed23e4244c47a1461add45e16f85d93ad7ac0567dc9fe2c0a359e51e0b67dc10d57350ea9 +EBUILD plotly-5.23.0.ebuild 3259 BLAKE2B b2c27f40284de1ef4c198048fa51827c4d369ea28c63635be36e8ff3654f96ebeda984fe88b1d2b594cd3210fb30b5e3ac2f172e43f50c5a07975dd22af1c153 SHA512 b692b4ba981169be69be3f255d54fcfabcaafcd5f84a9543131001663628923c4d6433b73133f1038869ca1abf7b1a652f663470fab5db8e67b63e6a5122e65b MISC metadata.xml 627 BLAKE2B 453adb04f4caba9790fe5223635245c8bca7ca5c6dc1930f09537045580b88b5fa1649e47158b13be6cc5cb09b4479a47690e37ef13208b47a95f82d14793a91 SHA512 a5183e9d217d1312e8d383ccb4ade66b92575492b6c8ed8987e3af18e9e456836b62b2d572ce62f9e01aae47b4a2bcbd12f79b4bb6acabfe69c2b63b20315bd3 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 new file mode 100644 index 000000000000..6941369978e8 --- /dev/null +++ b/dev-python/plotly/files/plotly-5.23.0-numpy-2.patch @@ -0,0 +1,87 @@ +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.23.0.ebuild b/dev-python/plotly/plotly-5.23.0.ebuild new file mode 100644 index 000000000000..6d9a95b46d23 --- /dev/null +++ b/dev-python/plotly/plotly-5.23.0.ebuild @@ -0,0 +1,116 @@ +# 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=" + 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=() + +PATCHES=( + "${FILESDIR}"/${PN}-5.8.0-fix-versioneer-import.patch + # https://github.com/plotly/plotly.py/pull/4622 + "${FILESDIR}/${P}-numpy-2.patch" +) + +python_prepare_all() { + # Do not try to fetch stuff with npm + export SKIP_NPM=1 + distutils-r1_python_prepare_all +} + +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 +} -- cgit v1.2.3