diff --git a/plotly-5.10.0.tar.gz b/plotly-5.10.0.tar.gz deleted file mode 100644 index cada04d..0000000 --- a/plotly-5.10.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4d36d9859b7a153b273562deeed8c292587a472eb1fd57cd4158ec89d9defadb -size 7600627 diff --git a/plotly-5.11.0.tar.gz b/plotly-5.11.0.tar.gz new file mode 100644 index 0000000..df41ab6 --- /dev/null +++ b/plotly-5.11.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4efef479c2ec1d86dcdac8405b6ca70ca65649a77408e39a7e84a1ea2db6c787 +size 7645514 diff --git a/plotly-fix-sources-np1.24.patch b/plotly-fix-sources-np1.24.patch new file mode 100644 index 0000000..bc67099 --- /dev/null +++ b/plotly-fix-sources-np1.24.patch @@ -0,0 +1,81 @@ +Index: plotly.py-5.11.0/packages/python/plotly/plotly/figure_factory/_streamline.py +=================================================================== +--- plotly.py-5.11.0.orig/packages/python/plotly/plotly/figure_factory/_streamline.py ++++ plotly.py-5.11.0/packages/python/plotly/plotly/figure_factory/_streamline.py +@@ -180,11 +180,11 @@ class _Streamline(object): + Set up for RK4 function, based on Bokeh's streamline code + """ + if isinstance(xi, np.ndarray): +- self.x = xi.astype(np.int) +- self.y = yi.astype(np.int) ++ self.x = xi.astype(int) ++ self.y = yi.astype(int) + else: +- self.val_x = np.int(xi) +- self.val_y = np.int(yi) ++ self.val_x = int(xi) ++ self.val_y = int(yi) + a00 = a[self.val_y, self.val_x] + a01 = a[self.val_y, self.val_x + 1] + a10 = a[self.val_y + 1, self.val_x] +Index: plotly.py-5.11.0/packages/python/plotly/plotly/express/imshow_utils.py +=================================================================== +--- plotly.py-5.11.0.orig/packages/python/plotly/plotly/express/imshow_utils.py ++++ plotly.py-5.11.0/packages/python/plotly/plotly/express/imshow_utils.py +@@ -21,7 +21,6 @@ _integer_types = ( + _integer_ranges = {t: (np.iinfo(t).min, np.iinfo(t).max) for t in _integer_types} + dtype_range = { + np.bool_: (False, True), +- np.bool8: (False, True), + np.float16: (-1, 1), + np.float32: (-1, 1), + np.float64: (-1, 1), +Index: plotly.py-5.11.0/packages/python/plotly/plotly/figure_factory/_violin.py +=================================================================== +--- plotly.py-5.11.0.orig/packages/python/plotly/plotly/figure_factory/_violin.py ++++ plotly.py-5.11.0/packages/python/plotly/plotly/figure_factory/_violin.py +@@ -16,7 +16,7 @@ def calc_stats(data): + """ + Calculate statistics for use in violin plot. + """ +- x = np.asarray(data, np.float) ++ x = np.asarray(data, float) + vals_min = np.min(x) + vals_max = np.max(x) + q2 = np.percentile(x, 50, interpolation="linear") +@@ -160,7 +160,7 @@ def violinplot(vals, fillcolor="#1f77b4" + """ + Refer to FigureFactory.create_violin() for docstring. + """ +- vals = np.asarray(vals, np.float) ++ vals = np.asarray(vals, float) + # summary statistics + vals_min = calc_stats(vals)["min"] + vals_max = calc_stats(vals)["max"] +@@ -231,7 +231,7 @@ def violin_no_colorscale( + ) + color_index = 0 + for k, gr in enumerate(group_name): +- vals = np.asarray(gb.get_group(gr)[data_header], np.float) ++ vals = np.asarray(gb.get_group(gr)[data_header], float) + if color_index >= len(colors): + color_index = 0 + plot_data, plot_xrange = violinplot( +@@ -319,7 +319,7 @@ def violin_colorscale( + min_value = min(group_stats_values) + + for k, gr in enumerate(group_name): +- vals = np.asarray(gb.get_group(gr)[data_header], np.float) ++ vals = np.asarray(gb.get_group(gr)[data_header], float) + + # find intermediate color from colorscale + intermed = (group_stats[gr] - min_value) / (max_value - min_value) +@@ -411,7 +411,7 @@ def violin_dict( + ) + + for k, gr in enumerate(group_name): +- vals = np.asarray(gb.get_group(gr)[data_header], np.float) ++ vals = np.asarray(gb.get_group(gr)[data_header], float) + plot_data, plot_xrange = violinplot(vals, fillcolor=colors[gr], rugplot=rugplot) + layout = graph_objs.Layout() + diff --git a/plotly-fix-tests-np1.24.patch b/plotly-fix-tests-np1.24.patch new file mode 100644 index 0000000..65d020b --- /dev/null +++ b/plotly-fix-tests-np1.24.patch @@ -0,0 +1,50 @@ +Index: plotly.py-5.11.0/packages/python/plotly/plotly/tests/test_optional/test_px/test_imshow.py +=================================================================== +--- plotly.py-5.11.0.orig/packages/python/plotly/plotly/tests/test_optional/test_px/test_imshow.py ++++ plotly.py-5.11.0/packages/python/plotly/plotly/tests/test_optional/test_px/test_imshow.py +@@ -9,7 +9,7 @@ import datetime + from plotly.express.imshow_utils import rescale_intensity + + img_rgb = np.array([[[255, 0, 0], [0, 255, 0], [0, 0, 255]]], dtype=np.uint8) +-img_gray = np.arange(100, dtype=np.float).reshape((10, 10)) ++img_gray = np.arange(100, dtype=float).reshape((10, 10)) + + + def decode_image_string(image_string): +@@ -47,7 +47,7 @@ def test_automatic_zmax_from_dtype(): + dtypes_dict = { + np.uint8: 2**8 - 1, + np.uint16: 2**16 - 1, +- np.float: 1, ++ float: 1, + bool: 255, + } + for key, val in dtypes_dict.items(): +Index: plotly.py-5.11.0/packages/python/plotly/_plotly_utils/tests/validators/test_integer_validator.py +=================================================================== +--- plotly.py-5.11.0.orig/packages/python/plotly/_plotly_utils/tests/validators/test_integer_validator.py ++++ plotly.py-5.11.0/packages/python/plotly/_plotly_utils/tests/validators/test_integer_validator.py +@@ -58,7 +58,7 @@ def test_acceptance_min_max(val, validat + + + @pytest.mark.parametrize( +- "val", [-1.01, -10, 2.1, 3, np.iinfo(np.int).max, np.iinfo(np.int).min] ++ "val", [-1.01, -10, 2.1, 3, np.iinfo(int).max, np.iinfo(int).min] + ) + def test_rejection_min_max(val, validator_min_max): + with pytest.raises(ValueError) as validation_failure: +Index: plotly.py-5.11.0/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py +=================================================================== +--- plotly.py-5.11.0.orig/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py ++++ plotly.py-5.11.0/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py +@@ -414,8 +414,8 @@ class TestNumpyIntegerBaseType(TestCase) + import plotly.graph_objects as go + from plotly.subplots import make_subplots + +- indices_rows = np.array([1], dtype=np.int) +- indices_cols = np.array([1], dtype=np.int) ++ indices_rows = np.array([1], dtype=int) ++ indices_cols = np.array([1], dtype=int) + fig = make_subplots(rows=1, cols=1) + fig.add_trace(go.Scatter(y=[1]), row=indices_rows[0], col=indices_cols[0]) + diff --git a/plotly.py-5.10.0-gh.tar.gz b/plotly.py-5.10.0-gh.tar.gz deleted file mode 100644 index 04c2bf5..0000000 --- a/plotly.py-5.10.0-gh.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:30034c742edff0c268d2d09d748bf1daef3a23957fa6dceb6bd847fd80416448 -size 30527330 diff --git a/plotly.py-5.11.0-gh.tar.gz b/plotly.py-5.11.0-gh.tar.gz new file mode 100644 index 0000000..130ef24 --- /dev/null +++ b/plotly.py-5.11.0-gh.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb85d1c6013cb91324bd610e02f820880e14aa7daa9bbc6c3572b7250764ee33 +size 30575379 diff --git a/python-plotly.changes b/python-plotly.changes index 5c30e23..0941069 100644 --- a/python-plotly.changes +++ b/python-plotly.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Sat Dec 24 12:18:06 UTC 2022 - Ben Greiner + +- Update to version 5.11.0 + * Add clustering options to scattermapbox [#5827], with thanks to + @elben10 for the contribution! + * Add bounds to mapbox suplots [6339] + * Add angle, angleref and standoff to marker and add backoff to + line; also introduce new arrow symbols to facilitate drawing + networks [#6297] + * Add minreducedwidth and minreducedheight to layout for + increasing control over automargin [#6307] + * Add entrywidth and entrywidthmode to legend [#6202, #6324] +- Add patches for compatibility with numpy 1.24 + * plotly-fix-sources-np1.24.patch + * plotly-fix-tests-np1.24.patch + ------------------------------------------------------------------- Sun Aug 14 14:43:43 UTC 2022 - Arun Persaud diff --git a/python-plotly.spec b/python-plotly.spec index f6b3a87..9fc206e 100644 --- a/python-plotly.spec +++ b/python-plotly.spec @@ -16,10 +16,9 @@ # -%{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 Name: python-plotly -Version: 5.10.0 +Version: 5.11.0 Release: 0 Summary: Library for collaborative, interactive, publication-quality graphs License: MIT @@ -29,13 +28,19 @@ Source: https://files.pythonhosted.org/packages/source/p/plotly/plotly-% # Additionally use the GitHub archive for the test suite Source1: https://github.com/plotly/plotly.py/archive/refs/tags/v%{version}.tar.gz#/plotly.py-%{version}-gh.tar.gz Source100: python-plotly-rpmlintrc +# PATCH-FIX-UPSTREAM plotly-fix-tests-np1.24.patch and plotly-fix-sources-np1.24.patch gh#plotly/plotly.py#3997 +Patch1: plotly-fix-sources-np1.24.patch +Patch2: plotly-fix-tests-np1.24.patch +BuildRequires: %{python_module base >= 3.6} +BuildRequires: %{python_module jupyterlab >= 3} +BuildRequires: %{python_module notebook >= 5.3} +BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module six >= 1.15.0} BuildRequires: %{python_module tenacity >= 6.2.0} +BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: jupyter-rpm-macros BuildRequires: python-rpm-macros -Requires: python-six >= 1.15.0 Requires: python-tenacity >= 6.2.0 Recommends: python-ipython Recommends: python-matplotlib >= 2.2.2 @@ -45,8 +50,6 @@ Recommends: python-scipy BuildArch: noarch # SECTION test requirements BuildRequires: %{python_module Pillow} -# Currently not building in TW -#BuildRequires: %%{python_module Shapely} BuildRequires: %{python_module ipykernel} BuildRequires: %{python_module ipython} BuildRequires: %{python_module ipywidgets} @@ -80,7 +83,7 @@ Summary: Jupyter notebook integration for %{name} Requires: %{name} = %{version} Requires: jupyter-plotly = %{version} Requires: python-ipywidgets >= 7.6 -Requires: (python-jupyterlab or python-notebook) +Requires: (python-jupyterlab >= 3 or python-notebook >= 5.3) Provides: python-jupyterlab-plotly = %{version}-%{release} %description jupyter @@ -113,38 +116,45 @@ Jupyterlab and Notebook integration and widgets. %prep %setup -q -n plotly-%{version} -b 1 +%patch1 -p4 # remove script interpreter line in non-executable script sed -i '1{/env python/ d}' _plotly_utils/png.py # homogenize mtime of all __init__.py files for deduplicated compile cache consistency find . -name __init__.py -exec touch -m -r plotly/__init__.py '{}' ';' +# patch the sources and tests in the github archive too +pushd ../plotly.py-%{version} +%patch1 -p1 +%patch2 -p1 +popd %build -%python_build +%pyproject_wheel %install -%python_install -%jupyter_move_config +%pyproject_install %python_expand %fdupes %{buildroot}%{$python_sitelib} %fdupes %{buildroot}%{_jupyter_prefix} %check -# No test suite in the PyPI package, which is required for the bundled JS files, go to the GitHub repo tree now. -cd ../plotly.py-%{version}/packages/python/plotly -%{pytest plotly/tests/test_core} -# most of the optional packages are not available on python36: skip entire test suite -python36_skip="-V" +# No test suite in the PyPI package, which is required for the bundled JS files, we are using the GitHub repo tree now. +# Important: make sure you patched the sources the same as the github repo +pushd ../plotly.py-%{version}/packages/python/plotly +%pytest plotly/tests/test_core # not available donttest="test_kaleido" # API parameter mismatches and precision errors donttest+=" or test_matplotlylib" -%pytest ${$python_skip} plotly/tests/test_optional -k "not ($donttest)" +# flaky timing error +donttest+=" or test_fast_track_finite_arrays" +%pytest plotly/tests/test_optional -k "not ($donttest)" +popd %files %{python_files} %license LICENSE.txt %{python_sitelib}/_plotly_future_/ %{python_sitelib}/_plotly_utils/ %{python_sitelib}/plotly/ -%{python_sitelib}/plotly-%{version}-py*.egg-info +%{python_sitelib}/plotly-%{version}.dist-info %files %{python_files jupyter} %license LICENSE.txt @@ -152,6 +162,8 @@ donttest+=" or test_matplotlylib" %files -n jupyter-plotly %license LICENSE.txt +%{_jupyter_nbextension_dir}/jupyterlab-plotly/ +%{_jupyter_labextensions_dir3}/jupyterlab-plotly/ %{_jupyter_config} %{_jupyter_nb_notebook_confdir}/jupyterlab-plotly.json %changelog