Skip to main content

build status Documentation Status coverage PyPI Version Downloads

*Inspired by `IPython <http://ipython.org/>`__, built with love*

IPython-Dashboard

A stand alone, light-weight web server for building, sharing graphs created in IPython. Build for data science, data analysis guys. Aiming at building an interactive visualization, collaborated dashboard, and real-time streaming graph.

Usage

  • Install prerequisite

    • install the latest stable IPython-Dashboard: pip install ipython-dashboard --upgrade

    • install redis 2.6+ : install guide

    • [option, if you need run sql]install mysql : brew install mysql or apt-get install mysql

    • install IPython-Dashboard requirements [unneeded sometimes]:

      • cd ~/your python package path/IPython-Dashboard

      • pip install -r requirements.txt

  • [``option``, if you need run sql]Config mysql

    • start mysql server : mysql.server start

    • login in mysql using root : mysql -u root

    • create a user and grant privileges;

      • take a look at current database user

        mysql> SELECT User,Host FROM mysql.user;
        +------+-----------+
        | User | Host      |
        +------+-----------+
        | root | 127.0.0.1 |
        | root | ::1       |
        |      | localhost |
        | root | localhost |
        |      | mac007    |
        | root | mac007    |
        +------+-----------+
        6 rows in set (0.00 sec)
      • create a user for IPython-Dashboard

      mysql> create user 'ipd'@'localhost' identified by 'thanks';
      Query OK, 0 rows affected (0.00 sec)
      
      mysql> grant all privileges on *.* to ipd@localhost;
      Query OK, 0 rows affected (0.00 sec)
      
      mysql> SELECT User,Host FROM mysql.user;
      +------+-----------+
      | User | Host      |
      +------+-----------+
      | root | 127.0.0.1 |
      | root | ::1       |
      |      | localhost |
      | ipd  | localhost |
      | root | localhost |
      |      | mac007    |
      | root | mac007    |
      +------+-----------+
      7 rows in set (0.00 sec)
      
      mysql> flush privileges;
      Query OK, 0 rows affected (0.00 sec)
    • create tables;

      nosetests -s dashboard.tests.testCreateData:test_create_mysql_data
  • Create logging path

    • create a folder to store log files. I put it under mnt currently: /mnt/ipython-dashboard/logs

    • make sure the log folder is write-able, using chmod and ls -l to confirm.

      chenshan@mac007:/mnt/ipython-dashboard$ls -l
      total 0
      drwxrwxrwx  9 root  wheel  306 Dec 15 22:09 logs
  • Config IPython-Dashboard server : ``IPython-Dashboard/dashboard/config.py``

    • app_host='ip_address:port'

  • Start redis and IPython-Dashboard server

    chenshan@mac007:~/Desktop/github/IPython-Dashboard$redis-server &
    
    chenshan@mac007:~/Desktop/github/IPython-Dashboard$dash-server --help
    usage: dash-server [-h] [-H HOST] [-p PORT] [-d DEBUG]
    
    Start your IPython-Dashboard server ...
    
    optional arguments:
      -h, --help            show this help message and exit
      -H HOST, --host HOST  server host, default localhost
      -p PORT, --port PORT  server port, default 9090
      -d DEBUG, --debug DEBUG
                            server port, default true
    
    chenshan@mac007:~/Desktop/github/IPython-Dashboard$dash-server
    Namespace(debug=True, host='0.0.0.0', port=9090)
     * Running on http://0.0.0.0:9090/
     * Restarting with reloader
    Namespace(debug=True, host='0.0.0.0', port=9090)
  • Do your exploring

Goal

  • support raw html visualization

  • support python object visualization

  • Editable

  • Real-time fresh when rendering a variable python object

  • Can be shared, both public and private [ need password ]

  • In the notebook, can share an object to a dashboard [ that’s visualize that object in that dashboard ]

Use Case

  • exploring in notebook, share/send the result/summary to people, without the details.

  • share some data in a private notebook.

  • disappointed with the complicated code when drawing a graceful/staic graph using matplotlib/seaborn/mpld3 etc.

  • want an interactive graph, allow people to zoom in/out, resize, get hover tips, change graph type easily.

  • want a real-time graph.

  • want an collaborated graph/dashboard.

wise-choice

wise-choice

Screenshot and Demo

screenshot

screenshot

screenshot

screenshot

screenshot

screenshot

screenshot

screenshot

Run tests

just run sudo nosetests --with-coverage --cover-package=dashboard under this repo

taotao@mac007:~/Desktop/github/IPython-Dashboard$sudo nosetests --with-coverage --cover-package=dashboard
Password:
../Users/chenshan/Desktop/github/IPython-Dashboard/dashboard/tests/testCreateData.py:69: Warning: Can't create database 'IPD_data'; database exists
  conn.cursor().execute('CREATE DATABASE IF NOT EXISTS {};'.format(config.sql_db))
/Users/chenshan/Desktop/github/IPython-Dashboard/dashboard/server/utils.py:135: Warning: Unknown table 'ipd_data.businesses'
  cursor.execute(sql)
/Library/Python/2.7/site-packages/pandas/io/sql.py:599: FutureWarning: The 'mysql' flavor with DBAPI connection is deprecated and will be removed in future versions. MySQL will be further supported with SQLAlchemy engines.
  warnings.warn(_MYSQL_WARNING, FutureWarning)
...
Name                                    Stmts   Miss  Cover   Missing
---------------------------------------------------------------------
dashboard.py                               13      0   100%
dashboard/client.py                         1      0   100%
dashboard/client/sender.py                 11      3    73%   26-27, 33
dashboard/conf.py                           0      0   100%
dashboard/conf/config.py                   29      0   100%
dashboard/server.py                         0      0   100%
dashboard/server/resources.py               0      0   100%
dashboard/server/resources/dash.py         35     10    71%   36, 55-56, 67-69, 86-89
dashboard/server/resources/home.py         40     12    70%   25, 28-30, 83-91
dashboard/server/resources/sql.py          27     11    59%   30, 52-75
dashboard/server/resources/status.py        8      1    88%   19
dashboard/server/resources/storage.py      13      5    62%   26-28, 43-47
dashboard/server/utils.py                  79     18    77%   20-24, 78-80, 82-83, 86, 96, 99-100, 126-127, 140-142
dashboard/server/views.py                  21      1    95%   16
---------------------------------------------------------------------
TOTAL                                     277     61    78%
----------------------------------------------------------------------
Ran 5 tests in 9.885s

OK
taotao@mac007:~/Desktop/github/IPython-Dashboard$

Change Log

  • future

    • front side, databricks style

    • pep 8, code clean up & restructure

    • hover tips

    • edit modal can be resized

    • Share one graph

    • Share one dashboard

    • Presentation mode

    • footer

    • unified message display center

    • SQL Editor

    • login management

    • unified logger and exception report

    • server side log

    • client side log

    • support python3

    • create examples

    • render sql in dashboard

    • chart optimize

  • *V 0.1.6 : optimize-chart [ current develop version ]*

    • Dashboard

      • re-structure code, follow pep8 style

      • create 1 example

      • optimize chart

    • SQL Editor

      • optimize page

      • render sql result as graph

  • *V 0.1.5 : sql-server-log [ current stable version ]*

    • Dashboard

      • create 1 example

      • server side log

      • support x-axis as date format

      • research on real-time updated dataframe

    • SQL Editor

      • sql server develop : render sql result as table view

Release files for IPython-Dashboard 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for IPython-Dashboard 0.1.5
File Size Uploaded
IPython-Dashboard-0.1.5.tar.gz 1.3 MB Details

Release files / IPython-Dashboard-0.1.5.tar.gz

Download URL IPython-Dashboard-0.1.5.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
2e3ee8170b91e0203e7f14db7f52052f414540871a7ac1465be8919e8eff2419
BLAKE2b-256 checksum
How to use checksums
d595e46171b05f9a56f07bdcbee6bf81dbc26f02abb7b6080b396eb224920abe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.5 This release

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page