python-plotly/python-plotly.spec
Matej Cepl 6bd76f45cf Accepting request 915453 from home:bnavigator:branches:devel:languages:python:numeric
- Update to version 5.3.0
  * Added legend.groupclick options
  * Provide bbox of hover items in event data
- Release 5.0.0
  * Updated/Changed:
    Items in this section may be considered backwards-incompatible
    changes for the purposes of Semantic Versioning but we expect
    the vast majority of users to be able to upgrade to version
    5.0 without encountering any issues.
  * Dropped support for Python older than 3.6 #3160
  * Updated Plotly.js to from version 1.58.4 to version 2.1.0. See
    the plotly.js CHANGELOG for more information. These changes
    are reflected in the auto-generated plotly.graph_objects
    module. Notable changes include:
  * dropped support for IE9 and IE10
  * dropped support for long-deprecated graph_objects like area
    traces and scatter.(t|r) and layout.(radial|angular)axis
    attributes
  * modebar no longer has hovermode or spikeline buttons by
    default (can be added back with fig.update_layout(modebar_add=
    ["v1hovermode", "toggleSpikeLines"]))
  * "Aa" text no longer appears on legend items unless mode="text"
  * In bar traces, textposition now defaults to "auto"
  * Font size for legend and colorbar titles now matches axis
    title font size (slightly bigger)
  * deprecated heatmapgl, pointcloud traces as well as all
    transform attributes
  * Combined plotlywidget into jupyterlab-plotly and packaged them
    as a federated extension #3142 with massive thanks to
    @fcollonval for the contribution
  * In addition to this change, large Plotly.js bundles are now
    lazily loaded on-demand by JupyterLab
  * Plotly.js CDN url will now be versioned by default for HTML
    exports using include_plotlyjs='cdn' and for "connected"
    renderers. #2961 with thanks to @adehad for the contribution
  * Recommending Kaleido by default over Orca #3094
  * Replaced retrying dependency with tenacity #2911 with thanks
    to @jmsmdy for the contribution
  * Plotly Express now always takes into account every value in c
    category_orders when computing discrete mappings (color,
    symbol, line-dash, pattern-shapes) as well as facets, even
    those values which are absent in the data #3247
- Fix rpmlint errors: touch __init__.py mtime before deduplicating
  the compile cache files
- Enable tests:
  * core test suite for all flavores
  * optional requirements test suite for all except python36 flavor
    -- many optional requirements are not available

OBS-URL: https://build.opensuse.org/request/show/915453
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-plotly?expand=0&rev=43
2021-09-01 18:57:33 +00:00

160 lines
6.5 KiB
RPMSpec

#
# spec file for package python-plotly
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-plotly
Version: 5.3.0
Release: 0
Summary: Library for collaborative, interactive, publication-quality graphs
License: MIT
URL: https://github.com/plotly/plotly.py
# Get the PyPI archive for the bundles JS files
Source: https://files.pythonhosted.org/packages/source/p/plotly/plotly-%{version}.tar.gz
# 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
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module six >= 1.15.0}
BuildRequires: %{python_module tenacity >= 6.2.0}
BuildRequires: fdupes
BuildRequires: jupyter-jupyter_core-filesystem
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
Recommends: python-numpy
Recommends: python-pandas
Recommends: python-scipy
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module Pillow if (%python-base without python36-base)}
BuildRequires: %{python_module Shapely if (%python-base without python36-base)}
BuildRequires: %{python_module ipykernel if (%python-base without python36-base)}
BuildRequires: %{python_module ipython if (%python-base without python36-base)}
BuildRequires: %{python_module ipywidgets if (%python-base without python36-base)}
BuildRequires: %{python_module jupyter if (%python-base without python36-base)}
BuildRequires: %{python_module matplotlib if (%python-base without python36-base)}
BuildRequires: %{python_module numpy if (%python-base without python36-base)}
BuildRequires: %{python_module pandas if (%python-base without python36-base)}
BuildRequires: %{python_module psutil if (%python-base without python36-base)}
BuildRequires: %{python_module pyshp if (%python-base without python36-base)}
BuildRequires: %{python_module pytz if (%python-base without python36-base)}
BuildRequires: %{python_module scikit-image if (%python-base without python36-base)}
BuildRequires: %{python_module scipy if (%python-base without python36-base)}
BuildRequires: %{python_module statsmodels if (%python-base without python36-base)}
BuildRequires: %{python_module xarray if (%python-base without python36-base)}
# /SECTION
%python_subpackages
%description
Use this package to make collaborative, interactive,
publication-quality graphs from Python on https://plot.ly.
Plotly is an online collaborative data analysis and graphing tool. The
Python API allows you to access all of Plotly's functionality from Python.
Plotly figures are shared, tracked, and edited all online and the data is
always accessible from the graph.
%package jupyter
Summary: Jupyter notebook integration for %{name}
Provides: python-jupyterlab-plotly = %{version}-%{release}
Requires: %{name} = %{version}
Requires: jupyter-plotly = %{version}
Requires: python-ipywidgets >= 7.6
Requires: (python-jupyterlab or python-notebook)
%description jupyter
Use this package to make collaborative, interactive,
publication-quality graphs from Python on https://plot.ly.
Plotly is an online collaborative data analysis and graphing tool. The
Python API allows you to access all of Plotly's functionality from Python.
Plotly figures are shared, tracked, and edited all online and the data is
always accessible from the graph.
This package provides Jupyterlab and Notebook integration and widgets.
%package -n jupyter-plotly
Summary: Jupyter notebook integration for %{name}
Provides: jupyterlab-plotly = %{version}-%{release}
Requires: python3-plotly-jupyter = %{version}
%description -n jupyter-plotly
Use this package to make collaborative, interactive,
publication-quality graphs from Python on https://plot.ly.
Plotly is an online collaborative data analysis and graphing tool. The
Python API allows you to access all of Plotly's functionality from Python.
Plotly figures are shared, tracked, and edited all online and the data is
always accessible from the graph.
This package provides the flavorless configuration for the
Jupyterlab and Notebook integration and widgets.
%prep
%setup -q -n plotly-%{version} -b 1
# 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 '{}' ';'
%build
%python_build
%install
%python_install
%jupyter_move_config
%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
# cleanup between flavor runs
rm plotly/tests/test_core/test_offline/plotly.min.js
}
# most of the optional packages are not available on python36: skip entire test suite
python36_skip="-V"
# 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)"
%files %{python_files}
%license LICENSE.txt
%{python_sitelib}/_plotly_future_/
%{python_sitelib}/_plotly_utils/
%{python_sitelib}/plotly/
%{python_sitelib}/plotly-%{version}-py*.egg-info
%files %{python_files jupyter}
%license LICENSE.txt
%{python_sitelib}/jupyterlab_plotly
%files -n jupyter-plotly
%license LICENSE.txt
%config %{_jupyter_nb_notebook_confdir}/jupyterlab-plotly.json
%changelog