summaryrefslogtreecommitdiff
path: root/dev-python/plotly
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-08-07 12:37:21 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-08-07 12:37:21 +0100
commitb8c7370a682e4e29cda623222d17a790c01c3642 (patch)
treef6caa14689bd00a5760eadaa381ff41e50ef3c1b /dev-python/plotly
parent8a4997a7e2d1e36c089d4d76935b5a902d98d3d0 (diff)
gentoo auto-resync : 07:08:2024 - 12:37:20
Diffstat (limited to 'dev-python/plotly')
-rw-r--r--dev-python/plotly/Manifest3
-rw-r--r--dev-python/plotly/files/plotly-5.23.0-numpy-2.patch87
-rw-r--r--dev-python/plotly/plotly-5.23.0.ebuild116
3 files changed, 206 insertions, 0 deletions
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 <code@bnavigator.de>
+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 <code@bnavigator.de>
+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
+}