Files
python-dash/python-dash.spec
Markéta Machová ea38e832cd - Update to 3.2.0
## Added
  * #3369 Expose dash.NoUpdate type
  * #3371 Add devtool hook to add components to the devtool bar ui.
  ## Fixed
  * #3353 Support pattern-matching/dict ids in dcc.Loading
    target_components
  * #3371 Fix allow_optional triggering a warning for not found
    input.
  * #3379 Fix dcc.Graph backward compatibility with dash 2.0 for
    ddk.Graph
  * #3373 Fix layout as list and persistence.
  ## Changed
  * #3365 Warn if dcc.Slider has more than 500 marks and use
    default instead.
- Release 3.1
  ## Fixed
  * #3341 Fixed query string parsing regression introduced in
    2.18.2 where values containing unencoded & characters were
    being truncated. #3106
  * #3279 Fix an issue where persisted values were incorrectly
    pruned when updated via callback. Now, callback returned values
    are correctly stored in the persistence storage. Fix #2678
  * #3298 Fix dev_only resources filtering.
  * #3315 Fix pages module is package check.
  * #3319 Fix issue where ExternalWrapper would remove props from
    the parent component, now there is a temp that is passed to
    check if it should be removed on unmount.
  * #3108 Fix layout as list for pages.
  * #1906 Make graph height more responsive.
  * #2927 Fix unexpected behaviour of the cursor in dcc.Input
  * #3344 Fix dcc.Loading target_components with * prop.
  ## Added
  * #3294 Added the ability to pass allow_optional to Input and
    State to allow callbacks to work even if these components are
    not in the dash layout.
  * #3077 Add new parameter assets_path_ignore to dash.Dash().
    Closes #3076
  * #3202 expose the closeOnSelect option in dropdown component
  * #3089 adding support for async callbacks and page layouts,
    install with pip install dash[async].
  ## Changed
  * #3303 Improve flatten_grouping performance (callback with
    dictionary output/input)
  * #3304 Speed up function _operation by 80%
  * #3323 Make Dash instances WSGI compliant, can now call gunicorn
    on the dash app itself.
  ## Updated
  * #3333 Update flask max version to <3.2
- Release 3.0
  ## Added
  * #2276 Added component prop static typing for Python.
  * #3152 Custom Python prop typing for component library.
    - Added -t, --custom-typing-module argument to
      dash-generate-components CLI, default to dash_prop_typing and
      can contains definitions in variables:
      - custom_imports: dict[ComponentName, list[str]] import
        statement to be copied at the top of the component class
        definition.
      - custom_props: dict[ComponentName, dict[PropName, function]]
        for custom props. The function signature is: def
        generate_type(type_info, component_name, prop_name) -> str
  * #3035 PropType generation for Typescript components allowing
    runtime prop validation when in debug mode.
  * #3121 Restyle and add version checker to dev tools.
  * #3029 Add pip install based hooks to Dash functionalities.
      - Packages can add an entry_points with key dash-hooks to
        their setup.py for a module to be run when a Dash app is
        started.
      - Add dash.hooks methods to hook into Dash apps.
        - hooks.layout takes the layout as argument and must return
          a layout, can be used to wrap or add to the layout of
          Dash apps.
        - hooks.callback defines a callback to be added to Dash
          apps.
        - hooks.clientside_callback defines a clientside callback
          to be added to Dash apps.
        - hooks.setup is called before a Dash app is started to get
          an instance of the app as first argument.
        - hooks.error to receive all callback errors.
        - hooks.index to change the Dash.index_string.
        - hooks.route to add a Flask route to the Dash app.
        - #3175 hooks.custom_data to add custom data called from
          the callback route to the user callback.
  * #3066 Adds window.dash_component_api for components developer
    as alternative to removed _dashprivate props.
    - Add dash_component_api.useDashContext,
      dash_component_api.DashContext to access the redux store and
      loading mechanisms.
      - DashContext.componentPath hold the path to the current
        component.
      - DashContext.useLoading(options?) selector to get a
        boolean if the component is loading.
      - DashContext.isLoading in case you need to use outside of
        a functional component.
      - DashContext.useSelector to create custom selectors for
        the connected redux store.
      - DashContext.useStore get the Dash app redux store.
      - DashContext.useDispatch to dispatch new actions on the
        Dash redux store.
    - Add dash_component_api.getLayout(path) to replace
      _dashprivate_layout.
    - Expose stringifyId in window.dash_component_api. #3175
    - Add window.dash_component_api.ExternalWrapper to render
      Dash components that are not part of the layout tree. #3170
      #3183
  ## Removed
  * #3066 loading_state removed from components props.
  * #3078 Deprecations removals
    - Removed dash.development.component_loader, components
      libraries now required to generate the components with
      dash-generate-components.
    - Dash.run_server has been removed in favor of Dash.run.
    - Removed dcc.LogoutButton component.
    - Renamed all long references to background.
  ## Changed
  * #3093 Changed default React version to 18.3.1
    - defaultProps on functional components now emits a deprecation
      warning.
    - Deprecation notice on strings refs.
  ## Fixed
  * #3080 Fix docstring generation for components using single-line
    or nonstandard-indent leading comments
  * #3103 Fix Graph component becomes unresponsive if an invalid
    figure is passed
  * #3190 Fix issue with cache key generation by adding option to
    include triggered inputs. Fixes #3189
  * #3130 Fix HOST variable when using conda.
  * #3066 Improve performance of context components re-rendering.
  * #3171 JupyterDash Fix - Alive Check
  * #3168 Fix clientside pattern matching with a dot in the id.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-dash?expand=0&rev=14
2025-09-19 08:59:50 +00:00

156 lines
5.2 KiB
RPMSpec

#
# spec file for package python-dash
#
# Copyright (c) 2022 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/
#
# We can't test currenty, see below.
%bcond_with test
%define distver 3.2
%{?sle15_python_module_pythons}
Name: python-dash
Version: 3.2.0
Release: 0
Summary: Python framework for building reactive web-apps
License: MIT
URL: https://github.com/plotly/dash
# PyPI package does not contain unit tests. GitHub does, but does not contain the js stuff,
# but we don't test right now: trying to build from js sources and use local-npm-registry fails
# due to "independent" component packages installed in a weird order
Source0: https://files.pythonhosted.org/packages/source/d/dash/dash-%{version}.tar.gz
#Source1: https://github.com/plotly/dash/archive/refs/tags/v%{version}.tar.gz#/dash-%%{version}-gh.tar.gz
Source99: python-dash.rpmlintrc
BuildRequires: %{python_module base >= 3.8}
BuildRequires: %{python_module Flask >= 1.0.4}
BuildRequires: %{python_module percy}
BuildRequires: %{python_module plotly >= 5.0.0}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module importlib-metadata}
BuildRequires: %{python_module typing-extensions >= 4.1.1}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module retrying}
BuildRequires: %{python_module nest-asyncio}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module Werkzeug}
BuildRequires: %{python_module beautifulsoup4}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: jupyter-rpm-macros
Requires: python-Flask >= 1.0.4
Requires: python-Werkzeug
Requires: python-importlib-metadata
Requires: python-typing-extensions >= 4.1.1
Requires: python-requests
Requires: python-retrying
Requires: python-nest-asyncio
Requires: python-setuptools
Requires: python-plotly >= 5.0.0
Requires: jupyter-dash = %{version}-%{release}
# SECTION testing extras
# dash/testing/dash_page.py
Requires: python-beautifulsoup4
# needed for dash/testing/browser.py
Requires: python-percy
# /SECTION
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module lxml}
BuildRequires: %{python_module mock} ## <-- not available anymore!
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest-rerunfailures}
BuildRequires: %{python_module pytest-sugar}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module selenium}
BuildRequires: %{python_module waitress}
BuildRequires: nodejs
%endif
%python_subpackages
%description
Dash is a Python framework for building analytical web applications.
No JavaScript required.
Build on top of Plotly.js, React, and Flask, Dash ties modern UI
elements like dropdowns, sliders, and graphs directly to your
analytical python code.
%package -n jupyter-dash
Summary: Jupyter configuration for python-dash
Requires: python3dist(dash) = %{distver}
Suggests: python3-dash
%description -n jupyter-dash
Dash is a Python framework for building analytical web applications.
This package provides the jupyter notebook and jupyterlab configuration
for python-dash
%prep
%setup -q -n dash-%{version}
# -b 1
sed -i -e '/^#!\//, 1d' dash/extract-meta.js
chmod -x dash/extract-meta.js
find . -name .gitkeep -delete
%build
%pyproject_wheel
%install
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/renderer
%python_clone -a %{buildroot}%{_bindir}/dash-generate-components
%python_clone -a %{buildroot}%{_bindir}/dash-update-components
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%if %{with test}
%check
# Testing needs npm install from network and packages (e.g. flask_talisman) which we don't have.
%pytest
%endif
%post
%python_install_alternative renderer
%python_install_alternative dash-generate-components
%python_install_alternative dash-update-components
%postun
%python_uninstall_alternative renderer
%python_uninstall_alternative dash-generate-components
%python_uninstall_alternative dash-update-components
%files -n jupyter-dash
%doc README.md
%license LICENSE
%{?_jupyter_config} %{_jupyter_nb_notebook_confdir}/dash.json
%{_jupyter_labextensions_dir}/dash-jupyterlab.tgz
%{_jupyter_nbextension_dir}/dash/
%files %{python_files}
%doc README.md
%license LICENSE
%python_alternative %{_bindir}/dash-generate-components
%python_alternative %{_bindir}/dash-update-components
%python_alternative %{_bindir}/renderer
%{python_sitelib}/dash
%{python_sitelib}/dash-%{version}.dist-info
%changelog