diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-04-11 15:36:05 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 15:36:05 +0000 |
| commit | 3a1fa697b1e66ba2b466161ffd42ca0476e5f1a2 (patch) | |
| tree | c817faf61c9b0a164a7f30426c898c8da4815b16 | |
| parent | 58902bde28fd777d975f6f20fa74f82951d809d3 (diff) | |
automatic import of python-django-plotly-dash
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-django-plotly-dash.spec | 533 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 535 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-plotly-dash-2.1.4.tar.gz diff --git a/python-django-plotly-dash.spec b/python-django-plotly-dash.spec new file mode 100644 index 0000000..907c5b3 --- /dev/null +++ b/python-django-plotly-dash.spec @@ -0,0 +1,533 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-plotly-dash +Version: 2.1.4 +Release: 1 +Summary: Django use of plotly dash apps through template tags +License: MIT +URL: https://github.com/GibbsConsulting/django-plotly-dash +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6e/07/fa25d96657480f8e9cfb9c256929a5717a72954cbb8bfc4c829adfd467de/django-plotly-dash-2.1.4.tar.gz +BuildArch: noarch + +Requires: python3-plotly +Requires: python3-dash +Requires: python3-dpd-components +Requires: python3-dash-bootstrap-components +Requires: python3-channels +Requires: python3-Django +Requires: python3-Flask +Requires: python3-Werkzeug + +%description +# django-plotly-dash + +[](https://badge.fury.io/py/django-plotly-dash) +[](https://img.shields.io/pypi/dw/django-plotly-dash.svg) + +[](https://coveralls.io/github/GibbsConsulting/django-plotly-dash?branch=master) +[](https://django-plotly-dash.readthedocs.io/en/latest/?badge=latest) + +Expose [plotly dash](https://plot.ly/products/dash/) apps as [Django](https://www.djangoproject.com/) tags. Multiple Dash apps can +then be embedded into a single web page, persist and share internal state, and also have access to the +current user and session variables. + +See the source for this project here: +<https://github.com/GibbsConsulting/django-plotly-dash> + +This README file provides a short guide to installing and using the package, and also +outlines how to run the demonstration application. + +More detailed information +can be found in the online documentation at +<https://readthedocs.org/projects/django-plotly-dash> + +An online version of the demo can be found at <https://djangoplotlydash.com> + + +## Installation + +First, install the package. This will also install plotly and some dash packages if they are not already present. + + pip install django_plotly_dash + +Then, add `django_plotly_dash` to `INSTALLED_APPS` in your Django `settings.py` file + + INSTALLED_APPS = [ + ... + 'django_plotly_dash.apps.DjangoPlotlyDashConfig', + ... + ] + +The application's routes need to be registered within the routing structure by an appropriate ``include`` statement in +a ``urls.py`` file. Note: `django_plotly_dash` is not a name of your application, it is referring to the inner namespace of this library. Please do not skip this step: + + urlpatterns = [ + ... + path('django_plotly_dash/', include('django_plotly_dash.urls')), + ] + +The name within the URL is not important and can be changed. + +For the final installation step, a migration is needed to update the +database: + + ./manage.py migrate + +If using version 3.0 or later of Django, then the use of frames within +HTML documents has to be enabled by adding to the ``settings.py`` file: + + X_FRAME_OPTIONS = 'SAMEORIGIN' + + +Further configuration, including live updating to share application +state, is described in the [online documentation](https://django-plotly-dash.readthedocs.io/en/latest/). + +## Demonstration + +The source repository contains a demo application. To clone the repo and lauch the demo: + +```bash +git clone https://github.com/GibbsConsulting/django-plotly-dash.git + +cd django-plotly-dash + +./make_env # sets up a virtual environment for development + # with direct use of the source code for the package + +./prepare_redis # downloads a redis docker container + # and launches it with default settings + # *THIS STEP IS OPTIONAL* + +./prepare_demo # prepares and launches the demo + # using the Django debug server at http://localhost:8000 +``` + +## Usage + +To use existing dash applications, first register them using the `DjangoDash` class. This +replaces the `Dash` class of the `dash` package. + +Taking a very simple example inspired by the excellent [getting started](https://dash.plot.ly/) documentation: + +```python +import dash +from dash import dcc, html + +from django_plotly_dash import DjangoDash + +app = DjangoDash('SimpleExample') + +app.layout = html.Div([ + dcc.RadioItems( + id='dropdown-color', + options=[{'label': c, 'value': c.lower()} for c in ['Red', 'Green', 'Blue']], + value='red' + ), + html.Div(id='output-color'), + dcc.RadioItems( + id='dropdown-size', + options=[{'label': i, 'value': j} for i, j in [('L','large'), ('M','medium'), ('S','small')]], + value='medium' + ), + html.Div(id='output-size') + +]) + +@app.callback( + dash.dependencies.Output('output-color', 'children'), + [dash.dependencies.Input('dropdown-color', 'value')]) +def callback_color(dropdown_value): + return "The selected color is %s." % dropdown_value + +@app.callback( + dash.dependencies.Output('output-size', 'children'), + [dash.dependencies.Input('dropdown-color', 'value'), + dash.dependencies.Input('dropdown-size', 'value')]) +def callback_size(dropdown_color, dropdown_size): + return "The chosen T-shirt is a %s %s one." %(dropdown_size, + dropdown_color) +``` + +Note that the `DjangoDash` constructor requires a name to be specified. This name is then used to identify the dash app in +templates: + +```jinja2 +{% load plotly_dash %} + +{% plotly_app name="SimpleExample" %} +``` + +The registration code needs to be in a location +that will be imported into the Django process before any model or template tag attempts to use it. The example Django application +in the demo subdirectory achieves this through an import in the main `urls.py` file; any `views.py` would also be sufficient. + +Whilst this example allows for the direct use of existing `Dash` applications, it does not provide for the sharing or updating of +internal state. The [online documentation](https://django-plotly-dash.readthedocs.io/en/latest/) provides details on using these +and other additional features. + +## Development + +The `make_env` script sets up the development environment, and pulls in the packages +specified in the `dev_requirements.txt` file. The `check_code` script invokes the test suite (using `pytest`) as well +as invoking `pylint` on both the package and the associated demo. + + +%package -n python3-django-plotly-dash +Summary: Django use of plotly dash apps through template tags +Provides: python-django-plotly-dash +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-plotly-dash +# django-plotly-dash + +[](https://badge.fury.io/py/django-plotly-dash) +[](https://img.shields.io/pypi/dw/django-plotly-dash.svg) + +[](https://coveralls.io/github/GibbsConsulting/django-plotly-dash?branch=master) +[](https://django-plotly-dash.readthedocs.io/en/latest/?badge=latest) + +Expose [plotly dash](https://plot.ly/products/dash/) apps as [Django](https://www.djangoproject.com/) tags. Multiple Dash apps can +then be embedded into a single web page, persist and share internal state, and also have access to the +current user and session variables. + +See the source for this project here: +<https://github.com/GibbsConsulting/django-plotly-dash> + +This README file provides a short guide to installing and using the package, and also +outlines how to run the demonstration application. + +More detailed information +can be found in the online documentation at +<https://readthedocs.org/projects/django-plotly-dash> + +An online version of the demo can be found at <https://djangoplotlydash.com> + + +## Installation + +First, install the package. This will also install plotly and some dash packages if they are not already present. + + pip install django_plotly_dash + +Then, add `django_plotly_dash` to `INSTALLED_APPS` in your Django `settings.py` file + + INSTALLED_APPS = [ + ... + 'django_plotly_dash.apps.DjangoPlotlyDashConfig', + ... + ] + +The application's routes need to be registered within the routing structure by an appropriate ``include`` statement in +a ``urls.py`` file. Note: `django_plotly_dash` is not a name of your application, it is referring to the inner namespace of this library. Please do not skip this step: + + urlpatterns = [ + ... + path('django_plotly_dash/', include('django_plotly_dash.urls')), + ] + +The name within the URL is not important and can be changed. + +For the final installation step, a migration is needed to update the +database: + + ./manage.py migrate + +If using version 3.0 or later of Django, then the use of frames within +HTML documents has to be enabled by adding to the ``settings.py`` file: + + X_FRAME_OPTIONS = 'SAMEORIGIN' + + +Further configuration, including live updating to share application +state, is described in the [online documentation](https://django-plotly-dash.readthedocs.io/en/latest/). + +## Demonstration + +The source repository contains a demo application. To clone the repo and lauch the demo: + +```bash +git clone https://github.com/GibbsConsulting/django-plotly-dash.git + +cd django-plotly-dash + +./make_env # sets up a virtual environment for development + # with direct use of the source code for the package + +./prepare_redis # downloads a redis docker container + # and launches it with default settings + # *THIS STEP IS OPTIONAL* + +./prepare_demo # prepares and launches the demo + # using the Django debug server at http://localhost:8000 +``` + +## Usage + +To use existing dash applications, first register them using the `DjangoDash` class. This +replaces the `Dash` class of the `dash` package. + +Taking a very simple example inspired by the excellent [getting started](https://dash.plot.ly/) documentation: + +```python +import dash +from dash import dcc, html + +from django_plotly_dash import DjangoDash + +app = DjangoDash('SimpleExample') + +app.layout = html.Div([ + dcc.RadioItems( + id='dropdown-color', + options=[{'label': c, 'value': c.lower()} for c in ['Red', 'Green', 'Blue']], + value='red' + ), + html.Div(id='output-color'), + dcc.RadioItems( + id='dropdown-size', + options=[{'label': i, 'value': j} for i, j in [('L','large'), ('M','medium'), ('S','small')]], + value='medium' + ), + html.Div(id='output-size') + +]) + +@app.callback( + dash.dependencies.Output('output-color', 'children'), + [dash.dependencies.Input('dropdown-color', 'value')]) +def callback_color(dropdown_value): + return "The selected color is %s." % dropdown_value + +@app.callback( + dash.dependencies.Output('output-size', 'children'), + [dash.dependencies.Input('dropdown-color', 'value'), + dash.dependencies.Input('dropdown-size', 'value')]) +def callback_size(dropdown_color, dropdown_size): + return "The chosen T-shirt is a %s %s one." %(dropdown_size, + dropdown_color) +``` + +Note that the `DjangoDash` constructor requires a name to be specified. This name is then used to identify the dash app in +templates: + +```jinja2 +{% load plotly_dash %} + +{% plotly_app name="SimpleExample" %} +``` + +The registration code needs to be in a location +that will be imported into the Django process before any model or template tag attempts to use it. The example Django application +in the demo subdirectory achieves this through an import in the main `urls.py` file; any `views.py` would also be sufficient. + +Whilst this example allows for the direct use of existing `Dash` applications, it does not provide for the sharing or updating of +internal state. The [online documentation](https://django-plotly-dash.readthedocs.io/en/latest/) provides details on using these +and other additional features. + +## Development + +The `make_env` script sets up the development environment, and pulls in the packages +specified in the `dev_requirements.txt` file. The `check_code` script invokes the test suite (using `pytest`) as well +as invoking `pylint` on both the package and the associated demo. + + +%package help +Summary: Development documents and examples for django-plotly-dash +Provides: python3-django-plotly-dash-doc +%description help +# django-plotly-dash + +[](https://badge.fury.io/py/django-plotly-dash) +[](https://img.shields.io/pypi/dw/django-plotly-dash.svg) + +[](https://coveralls.io/github/GibbsConsulting/django-plotly-dash?branch=master) +[](https://django-plotly-dash.readthedocs.io/en/latest/?badge=latest) + +Expose [plotly dash](https://plot.ly/products/dash/) apps as [Django](https://www.djangoproject.com/) tags. Multiple Dash apps can +then be embedded into a single web page, persist and share internal state, and also have access to the +current user and session variables. + +See the source for this project here: +<https://github.com/GibbsConsulting/django-plotly-dash> + +This README file provides a short guide to installing and using the package, and also +outlines how to run the demonstration application. + +More detailed information +can be found in the online documentation at +<https://readthedocs.org/projects/django-plotly-dash> + +An online version of the demo can be found at <https://djangoplotlydash.com> + + +## Installation + +First, install the package. This will also install plotly and some dash packages if they are not already present. + + pip install django_plotly_dash + +Then, add `django_plotly_dash` to `INSTALLED_APPS` in your Django `settings.py` file + + INSTALLED_APPS = [ + ... + 'django_plotly_dash.apps.DjangoPlotlyDashConfig', + ... + ] + +The application's routes need to be registered within the routing structure by an appropriate ``include`` statement in +a ``urls.py`` file. Note: `django_plotly_dash` is not a name of your application, it is referring to the inner namespace of this library. Please do not skip this step: + + urlpatterns = [ + ... + path('django_plotly_dash/', include('django_plotly_dash.urls')), + ] + +The name within the URL is not important and can be changed. + +For the final installation step, a migration is needed to update the +database: + + ./manage.py migrate + +If using version 3.0 or later of Django, then the use of frames within +HTML documents has to be enabled by adding to the ``settings.py`` file: + + X_FRAME_OPTIONS = 'SAMEORIGIN' + + +Further configuration, including live updating to share application +state, is described in the [online documentation](https://django-plotly-dash.readthedocs.io/en/latest/). + +## Demonstration + +The source repository contains a demo application. To clone the repo and lauch the demo: + +```bash +git clone https://github.com/GibbsConsulting/django-plotly-dash.git + +cd django-plotly-dash + +./make_env # sets up a virtual environment for development + # with direct use of the source code for the package + +./prepare_redis # downloads a redis docker container + # and launches it with default settings + # *THIS STEP IS OPTIONAL* + +./prepare_demo # prepares and launches the demo + # using the Django debug server at http://localhost:8000 +``` + +## Usage + +To use existing dash applications, first register them using the `DjangoDash` class. This +replaces the `Dash` class of the `dash` package. + +Taking a very simple example inspired by the excellent [getting started](https://dash.plot.ly/) documentation: + +```python +import dash +from dash import dcc, html + +from django_plotly_dash import DjangoDash + +app = DjangoDash('SimpleExample') + +app.layout = html.Div([ + dcc.RadioItems( + id='dropdown-color', + options=[{'label': c, 'value': c.lower()} for c in ['Red', 'Green', 'Blue']], + value='red' + ), + html.Div(id='output-color'), + dcc.RadioItems( + id='dropdown-size', + options=[{'label': i, 'value': j} for i, j in [('L','large'), ('M','medium'), ('S','small')]], + value='medium' + ), + html.Div(id='output-size') + +]) + +@app.callback( + dash.dependencies.Output('output-color', 'children'), + [dash.dependencies.Input('dropdown-color', 'value')]) +def callback_color(dropdown_value): + return "The selected color is %s." % dropdown_value + +@app.callback( + dash.dependencies.Output('output-size', 'children'), + [dash.dependencies.Input('dropdown-color', 'value'), + dash.dependencies.Input('dropdown-size', 'value')]) +def callback_size(dropdown_color, dropdown_size): + return "The chosen T-shirt is a %s %s one." %(dropdown_size, + dropdown_color) +``` + +Note that the `DjangoDash` constructor requires a name to be specified. This name is then used to identify the dash app in +templates: + +```jinja2 +{% load plotly_dash %} + +{% plotly_app name="SimpleExample" %} +``` + +The registration code needs to be in a location +that will be imported into the Django process before any model or template tag attempts to use it. The example Django application +in the demo subdirectory achieves this through an import in the main `urls.py` file; any `views.py` would also be sufficient. + +Whilst this example allows for the direct use of existing `Dash` applications, it does not provide for the sharing or updating of +internal state. The [online documentation](https://django-plotly-dash.readthedocs.io/en/latest/) provides details on using these +and other additional features. + +## Development + +The `make_env` script sets up the development environment, and pulls in the packages +specified in the `dev_requirements.txt` file. The `check_code` script invokes the test suite (using `pytest`) as well +as invoking `pylint` on both the package and the associated demo. + + +%prep +%autosetup -n django-plotly-dash-2.1.4 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-plotly-dash -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 2.1.4-1 +- Package Spec generated @@ -0,0 +1 @@ +4ea9cbdcee9a01a7b9ebaa8be03251cf django-plotly-dash-2.1.4.tar.gz |
