VOOZH about

URL: https://pypi.org/project/dtale/1.7.0/

⇱ dtale Β· PyPI


Skip to main content

dtale 1.7.0

pip install dtale==1.7.0

Newer version available (3.22.0)

Released:

Web Client for Visualizing Pandas Objects

Navigation

Unverified details

These details have not been verified by PyPI
Project links
Meta
  • License: GNU Library or Lesser General Public License (LGPL) (LGPL)
  • Author: MAN Alpha Technology
  • Tags numeric , pandas , visualization , flask

Project description

πŸ‘ image0

Live Demo


πŸ‘ CircleCI
πŸ‘ PyPI
πŸ‘ ReadTheDocs
πŸ‘ codecov
πŸ‘ Downloads

What is it?

D-Tale was born out a conversion from SAS to Python. What was originally a perl script wrapper on top of SAS’s insight function is now a lightweight web client on top of Pandas data structures. D-Tale is the combination of a Flask back-end and a React front-end to bring you an easy way to view & analyze Pandas data structures. Currently this tool supports such Pandas objects as DataFrame, Series, MultiIndex, DatetimeIndex & RangeIndex. It integrates seamlessly with ipython notebooks & python/ipython terminals.

Contents

Getting Started

PyCharm

jupyter

πŸ‘ image6

πŸ‘ image7

Setup/Activate your environment and install the egg

Python 3

# create a virtualenv, if you haven't already created one
$python3-mvenv~/pyenvs/dtale$source~/pyenvs/dtale/bin/activate# install dtale egg (important to use the "--upgrade" every time you install so it will grab the latest version)
$pipinstall--upgradedtale

Python 2

# create a virtualenv, if you haven't already created one
$python-mvirtualenv~/pyenvs/dtale$source~/pyenvs/dtale/bin/activate# install dtale egg (important to use the "--upgrade" every time you install so it will grab the latest version)
$pipinstall--upgradedtale

Now you will have to ability to use D-Tale from the command-line or within a python-enabled terminal

Python Terminal

This comes courtesy of PyCharm πŸ‘ image8
Feel free to invoke python or ipython directly and use the commands in the screenshot above and it should work

Additional functions available programatically

import dtaleimport pandas as pddf = pd.DataFrame([dict(a=1,b=2,c=3)])# Assigning a reference to a running D-Tale processd = dtale.show(df)# Accessing data associated with D-Tale processtmp = d.data.copy()tmp['d'] = 4# Altering data associated with D-Tale process# FYI: this will clear any front-end settings you have at the time for this process (filter, sorts, formatting)d.data = tmp# Shutting down D-Tale processd.kill()# using Python's `webbrowser` package it will try and open your server's default browser to this processd.open_browser()# There is also some helpful metadata about the processd._data_id # the process's data identifierd._url # the url to access the processd2 = dtale.get_instance(d._data_id) # returns a new reference to the instance running at that data_iddtale.instances() # returns a dictionary of all instances available, this would be { 1: ... }

Jupyter Notebook

Within any jupyter (ipython) notebook executing a cell like this will display a small instance of D-Tale in the output cell. Here are some examples:

dtale.show

assignment

instance

πŸ‘ image9

πŸ‘ image10

πŸ‘ image11

If you are running ipython<=5.0 then you also have the ability to adjust the size of your output cell for the most recent instance displayed:

πŸ‘ image12

One thing of note is that alot of the modal popups you see in the standard browser version will now open separate browser windows for spacial convienence:

Column Menus

Correlations

Describe

Histogram

Charts

Instances

πŸ‘ image13

πŸ‘ image14

πŸ‘ image15

πŸ‘ image16

πŸ‘ image17

πŸ‘ image18

Command-line

Base CLI options (run dtale --help to see all options available)

Prop

Description

--host

the name of the host you would like to use (most likely not needed since socket.gethostname() should figure this out)

--port

the port you would like to assign to your D-Tale instance

--name

an optional name you can assign to your D-Tale instance (this will be displayed in the <title> & Instances popup)

--debug

turn on Flask’s β€œdebug” mode for your D-Tale instance

--no-reaper

flag to turn off auto-reaping subprocess (kill D-Tale instances after an hour of inactivity), good for long-running displays

--open-browser

flag to automatically open up your server’s default browser to your D-Tale instance

--force

flag to force D-Tale to try an kill any pre-existing process at the port you’ve specified so it can use it

Loading data from arctic

dtale--arctic-hostmongodb://localhost:27027--arctic-libraryjdoe.my_lib--arctic-nodemy_node--arctic-start20130101--arctic-end20161231

Loading data from CSV

dtale--csv-path/home/jdoe/my_csv.csv--csv-parse_datesdate

Loading data from a Custom loader - Using the DTALE_CLI_LOADERS environment variable, specify a path to a location containing some python modules - Any python module containing the global variables LOADER_KEY & LOADER_PROPS will be picked up as a custom loader - LOADER_KEY: the key that will be associated with your loader. By default you are given arctic & csv (if you use one of these are your key it will override these) - LOADER_PROPS: the individual props available to be specified. - For example, with arctic we have host, library, node, start & end. - If you leave this property as an empty list your loader will be treated as a flag. For example, instead of using all the arctic properties we would simply specify --arctic (this wouldn’t work well in arctic’s case since it depends on all those properties) - You will also need to specify a function with the following signature def find_loader(kwargs) which returns a function that returns a dataframe or None - Here is an example of a custom loader:

from dtale.cli.clickutils import get_loader_options'''
 IMPORTANT!!! This global variable is required for building any customized CLI loader.
 When find loaders on startup it will search for any modules containing the global variable LOADER_KEY.
'''LOADER_KEY = 'testdata'LOADER_PROPS = ['rows', 'columns']def test_data(rows, columns): import pandas as pd import numpy as np import random from past.utils import old_div from pandas.tseries.offsets import Day from dtale.utils import dict_merge import string now = pd.Timestamp(pd.Timestamp('now').date()) dates = pd.date_range(now - Day(364), now) num_of_securities = max(old_div(rows, len(dates)), 1) # always have at least one security securities = [ dict(security_id=100000 + sec_id, int_val=random.randint(1, 100000000000), str_val=random.choice(string.ascii_letters) * 5) for sec_id in range(num_of_securities) ] data = pd.concat([ pd.DataFrame([dict_merge(dict(date=date), sd) for sd in securities]) for date in dates ], ignore_index=True)[['date', 'security_id', 'int_val', 'str_val']] col_names = ['Col{}'.format(c) for c in range(columns)] return pd.concat([data, pd.DataFrame(np.random.randn(len(data), columns), columns=col_names)], axis=1)# IMPORTANT!!! This function is required for building any customized CLI loader.def find_loader(kwargs): test_data_opts = get_loader_options(LOADER_KEY, kwargs) if len([f for f in test_data_opts.values() if f]): def _testdata_loader(): return test_data(int(test_data_opts.get('rows', 1000500)), int(test_data_opts.get('columns', 96))) return _testdata_loader return None

In this example we simplying building a dataframe with some dummy data based on dimensions specified on the command-line: - --testdata-rows - --testdata-columns

Here’s how you would use this loader:

DTALE_CLI_LOADERS=./path_to_loadersbash-c'dtale --testdata-rows 10 --testdata-columns 5'

UI

Once you have kicked off your D-Tale session please copy & paste the link on the last line of output in your browser πŸ‘ image19

Dimensions/Main Menu

The information in the upper right-hand corner gives grid dimensions πŸ‘ image20
- lower-left => row count - upper-right => column count - clicking the triangle displays the menu of standard functions (click outside menu to close it) πŸ‘ image21

Selecting/Deselecting Columns

  • to select a column, simply click on the column header (to deselect, click the column header again)

    • You’ll notice that the columns you’ve selected will display in the top of your browser πŸ‘ image22

Menu functions w/ no columns selected

πŸ‘ image23

Describe

View all the columns & their data types as well as individual details of each column

πŸ‘ image24

Data Type

Display

Notes

date

πŸ‘ image25

string

πŸ‘ image26

If you have less than or equal to 100 unique values they will be displayed at the bottom of your popup

int

πŸ‘ image27

Anything with standard numeric classifications (min, max, 25%, 50%, 75%) will have a nice boxplot with the mean (if it exists) displayed as an outlier if you look closely.

float

πŸ‘ image28

Filter

Apply a simple pandas query to your data (link to pandas documentation included in popup)

Editing

Result

πŸ‘ image29

πŸ‘ image30

Charts

Build custom charts based off your data.

  • To build a chart you must pick a value for X & Y inputs which effectively drive what data is along the X & Y axes

  • If your data along the x-axis has duplicates you have three options:

    • specify a group, which will create series for each group

    • specify an aggregation, you can choose from one of the following: Count, First, Last, Mean, Median, Minimum, MAximum, Standard Deviation, Variance, Mean Absolute Deviation, Product of All Items, Sum, Rolling

      • Specifying a β€œRolling” aggregation will also require a Window & a Computation (Correlation, Coiunt, Covariance, Kurtosis, Maximum, Mean, Median, Minimum, Skew, Standard Deviation, Sum or Variance)

    • specify both a group & an aggregation

  • Click the β€œLoad” button which will load the data and display the default cahrt type β€œline”

  • You now have the ability to toggle between different chart types: line, bar, stacked bar, pie & wordcloud

  • If you have specified a group then you have the ability between showing all series in one chart and breaking each series out into its own chart β€œChart per Group”

Here are some examples with the following inputs: X: date, Y: Col0, Group: security_id, Aggregation: Mean, Query: security_id in (100000, 100001) and date >= '20181220' and date <= '20181231'

Chart Type

Chart

Chart per Group

line

πŸ‘ image31

πŸ‘ image32

bar

πŸ‘ image33

πŸ‘ image34

stacked

πŸ‘ image35

πŸ‘ image36

pie

πŸ‘ image37

πŸ‘ image38

wordcloud

πŸ‘ image39

πŸ‘ image40

Selecting multiple columns for the Y-Axis will produce similar results to grouping in the sense that the chart will contain multiple series, but the difference is that for each column there will be a different Y-Axis associated with it in case the values contained within each column are on different scales.

Multi Y-Axis

Editing Axis Ranges

πŸ‘ image41

πŸ‘ image42

With a bar chart that only has a single Y-Axis you have the ability to sort the bars based on the values for the Y-Axis

Pre-sort

Post-sort

πŸ‘ image43

πŸ‘ image44

This is a very powerful feature with many more features that could be offered (heatmaps, different statistical aggregations, etc…) so please submit issues :)

Correlations

Shows a pearson correlation matrix of all numeric columns against all other numeric columns - By deafult, it will show a grid of pearson correlations (filtering available by using drop-down see 2nd table of screenshots) - If you have a date-type column, you can click an individual cell and see a timeseries of pearson correlations for that column combination - Currently if you have multiple date-type columns you will have the ability to toggle between them by way of a drop-down - Furthermore, you can click on individual points in the timeseries to view the scatter plot of the points going into that correlation

Matrix

Timeseries

Scatter

πŸ‘ image45

πŸ‘ image46

πŸ‘ image47

Col1 Filtered

Col2 Filtered

Col1 & Col2 Filtered

πŸ‘ image48

πŸ‘ image49

πŸ‘ image50

When the data being viewed in D-Tale has date or timestamp columns but for each date/timestamp vlaue there is only one row of data the behavior of the Correlations popup is a little different - Instead of a timeseries correlation chart the user is given a rolling correlation chart which can have the window (default: 10) altered - The scatter chart will be created when a user clicks on a point in the rollign correlation chart. The data displayed in the scatter will be for the ranges of dates involved in the rolling correlation for that date.

Data

Correlations

πŸ‘ image51

πŸ‘ image52

Heat Map

This will hide any non-float columns (with the exception of the index on the right) and apply a color to the background of each cell - Each float is renormalized to be a value between 0 and 1.0 - Each renormalized value is passed to a color scale of red(0) - yellow(0.5) - green(1.0) πŸ‘ image53

Turn off Heat Map by clicking menu option again πŸ‘ image54

Instances

This will give you information about other D-Tale instances are running under your current Python process.

For example, if you ran the following script:

import pandas as pdimport dtaledtale.show(pd.DataFrame([dict(foo=1, bar=2, biz=3, baz=4, snoopy_D_O_double_gizzle=5)]))dtale.show(pd.DataFrame([ dict(a=1, b=2, c=3, d=4), dict(a=2, b=3, c=4, d=5), dict(a=3, b=4, c=5, d=6), dict(a=4, b=5, c=6, d=7)]))dtale.show(pd.DataFrame([range(6), range(6), range(6), range(6), range(6), range(6)]), name="foo")

This will make the Instances button available in all 3 of these D-Tale instances. Clicking that button while in the first instance invoked above will give you this popup:

πŸ‘ image55

The grid above contains the following information: - Process: timestamp when the process was started along with the name (if specified in dtale.show()) - Rows: number of rows - Columns: number of columns - Column Names: comma-separated string of column names (only first 30 characters, hover for full listing) - Preview: this button is available any of the non-current instances. Clicking this will bring up left-most 5X5 grid information for that instance - The row highlighted in green signifys the current D-Tale instance - Any other row can be clicked to switch to that D-Tale instance

Here is an example of clicking the β€œPreview” button:

πŸ‘ image56

About

This will give you information about what version of D-Tale you’re running as well as if its out of date to whats on PyPi.

Up To Date

Out Of Date

πŸ‘ image57

πŸ‘ image58

Resize

Mostly a fail-safe in the event that your columns are no longer lining up. Click this and should fix that

Iframe-mode/Full-mode

This is only available if you are not viewing D-Tale from an jupyter notebook output cell. This will toggle between the two types of functionality: - Full-mode: column selection, column-specific options in in the main menu & all tools are displayed in modal windows - Iframe-mode: no column selection, column-specific menus on head click & some tools will now open separate browser windows (Correlations, Describe, Histogram & Instances)

Shutdown

Pretty self-explanatory, kills your D-Tale session (there is also an auto-kill process that will kill your D-Tale after an hour of inactivity)

Menu functions w/ column(s) selected

πŸ‘ image59

Move To Front

Moves your column to the front of the β€œunlocked” columns

Lock

Adds your column to β€œlocked” columns - β€œlocked” means that if you scroll horizontally these columns will stay pinned to the right-hand side - this is handy when you want to keep track of which date or security_id you’re looking at - by default, any index columns on the data passed to D-Tale will be locked

Unlock

Removed column from β€œlocked” columns

Sorting

Applies/removes sorting (Ascending/Descending/Clear) to the column selected

Important: as you add sorts they sort added will be added to the end of the multi-sort. For example:

Action

Sort

select β€œa”

sort asc

a (asc)

deselect β€œa”

a (asc)

select β€œb”

a (asc)

sort desc

a (asc), b(desc)

select β€œa”

a (asc), b(desc)

clear sort

b(desc)

sort desc

b(desc), a(desc)

select β€œb”

b(desc), a(desc)

clear sort

sort asc

a (asc), b(asc)

Formats

Apply simple formats to numeric values in your grid

Editing

Result

πŸ‘ image60

πŸ‘ image61

Here’s a grid of all the formats available with -123456.789 as input:

Format

Output

Precision (6)

-123456.789000

Thousands Sep

-123,456.789

Abbreviate

-123k

Exponent

-1e+5

BPS

-1234567890BPS

Red Negatives

-123457

Histogram

Display histograms in any number of bins (defaul: 20), simply type a new integer value in the bins input

πŸ‘ image62

Menu functions within a Jupyter Notebook

These are the same functions as the menu listed earlier, but there is no more column selection (instead theres menus for each column). Also the following buttons will no longer open modals, but separate browser windows: Correlations, Describe & Instances (see images from Jupyter Notebook, also Charts will always open in a separate browser window)

There are also menus associated with each column header which can be trigger by clicking on a column header. The functions that are contained within each are: Sorting, Move To Front, Lock/Unlock, Histogram, Describe, Formats (see image from Jupyter Notebook) - Histogram & Describe open separate browser windows

For Developers

Cloning

Clone the code (git clone ), then start the backend server:

$gitclonessh://git@github.com:manahl/dtale.git# install the dependencies
$pythonsetup.pydevelop# start the server
$pythondtale--csv-path/home/jdoe/my_csv.csv--csv-parse_datesdate

You can also run dtale from PyDev directly.

You will also want to import javascript dependencies and build the source:

$npminstall# 1) a persistent server that serves the latest JS:
$npmrunwatch# 2) or one-off build:
$npmrunbuild

Running tests

The usual npm test command works:

$ npm test

You can run individual test files:

$ TEST=static/__tests__/dtale/DataViewer-base-test.jsx npm run test-file

Linting

You can lint all the JS and CSS to confirm there’s nothing obviously wrong with it:

$npmrunlint-s

You can also lint individual JS files:

$npmrunlint-js-file-s--static/dtale/DataViewer.jsx

Formatting JS

You can auto-format code as follows:

$npmrunformat

Docker Development

You can build python 27-3 & run D-Tale as follows:

$yarnrunbuild$docker-composebuilddtale_2_7$dockerrun-it--networkhostdtale_2_7:latest$python>>>importpandasaspd>>>df=pd.DataFrame([dict(a=1,b=2,c=3)])>>>importdtale>>>dtale.show(df)

Then view your D-Tale instance in your browser using the link that gets printed

You can build python 36-1 & run D-Tale as follows:

$yarnrunbuild$docker-composebuilddtale_3_6$dockerrun-it--networkhostdtale_3_6:latest$python>>>importpandasaspd>>>df=pd.DataFrame([dict(a=1,b=2,c=3)])>>>importdtale>>>dtale.show(df)

Then view your D-Tale instance in your browser using the link that gets printed

Startup Behavior

Here’s a little background on how the dtale.show() function works: - by default it will look for ports between 40000 & 49000, but you can change that range by specifying the environment variables DTALE_MIN_PORT & DTALE_MAX_PORT - think of sessions as python consoles or jupyter notebooks

  1. Session 1 executes dtale.show(df) our state is:

Session

Port

Active Data IDs

URL(s)

1

40000

1

http://localhost:40000/dtale/main/1

  1. Session 1 executes dtale.show(df) our state is:

Session

Port

Active Data IDs

URL(s)

1

40000

1,2

http://localhost:40000/dtale/main/[1,2]

  1. Session 2 executes dtale.show(df) our state is:

Session

Port

Active Data IDs

URL(s)

1

40000

1,2

http://localhost:40000/dtale/main/[1,2]

2

40001

1

http://localhost:40001/dtale/main/1

  1. Session 1 executes dtale.show(df, port=40001, force=True) our state is:

Session

Port

Active Data IDs

URL(s)

1

40001

1,2,3

http://localhost:40001/dtale/main/[1,2,3]

  1. Session 3 executes dtale.show(df) our state is:

Session

Port

Active Data IDs

URL(s)

1

40001

1,2,3

http://localhost:40001/dtale/main/[1,2,3]

3

40000

1

http://localhost:40000/dtale/main/1

  1. Session 2 executes dtale.show(df) our state is:

Session

Port

Active Data IDs

URL(s)

1

40001

1,2,3

http://localhost:40001/dtale/main/[1,2,3]

3

40000

1

http://localhost:40000/dtale/main/1

2

40002

1

http://localhost:40002/dtale/main/1

  1. Session 4 executes dtale.show(df, port=8080) our state is:

Session

Port

Active Data IDs

URL(s)

1

40001

1,2,3

http://localhost:40001/dtale/main/[1,2,3]

3

40000

1

http://localhost:40000/dtale/main/1

2

40002

1

http://localhost:40002/dtale/main/1

4

8080

1

http://localhost:8080/dtale/main/1

  1. Session 1 executes dtale.get_instance(1).kill() our state is:

Session

Port

Active Data IDs

URL(s)

1

40001

2,3

http://localhost:40001/dtale/main/[2,3]

3

40000

1

http://localhost:40000/dtale/main/1

2

40002

1

http://localhost:40002/dtale/main/1

4

8080

1

http://localhost:8080/dtale/main/1

  1. Session 5 sets DTALE_MIN_RANGE to 30000 and DTALE_MAX_RANGE 39000 and executes dtale.show(df) our state is:

Session

Port

Active Data ID(s)

URL(s)

1

40001

2,3

http://localhost:40001/dtale/main/[2,3]

3

40000

1

http://localhost:40000/dtale/main/1

2

40002

1

http://localhost:40002/dtale/main/1

4

8080

1

http://localhost:8080/dtale/main/1

5

30000

1

http://localhost:30000/dtale/main/1

Documentation

Have a look at the detailed documentation.

Requirements

D-Tale works with:

  • Back-end

    • arctic

    • Flask

    • Flask-Caching

    • Flask-Compress

    • flasgger

    • Pandas

    • scipy

    • six

  • Front-end

    • react-virtualized

    • chart.js

Acknowledgements

D-Tale has been under active development at Man Numeric since 2019.

Original concept and implementation: Andrew Schonfeld

Contributors:

Contributions welcome!

License

D-Tale is licensed under the GNU LGPL v2.1. A copy of which is included in LICENSE

Changelog

1.7.0 (2020-1-28)

  • redesign of charts popup to use plotly/dash

  • #55: raise exception when data contains duplicate column names

  • heatmap integration

  • combination of β€œ_main.jsx” files into one for spacial optimization

  • #15: made arctic an β€œextra” dependency

1.6.10 (2020-1-12)

  • better front-end handling of dates for charting as to avoid timezone issues

  • the ability to switch between sorting any axis in bar charts

1.6.9 (2020-1-9)

  • bugfix for timezone issue around passing date filters to server for scatter charts in correlations popup

1.6.8 (2020-1-9)

  • additional information about how to use Correlations popup

  • handling of all-nan data in charts popup

  • styling issues on popups (especially Histogram)

  • removed auto-filtering on correlation popup

  • scatter point color change

  • added chart icon to cell that has been selected in correlation popup

  • responsiveness to scatter charts

  • handling of links to β€˜main’,β€˜iframe’ & β€˜popup’ missing data_id

  • handling of β€˜inf’ values when getting min/max & describe data

  • added header to window popups (correlations, charts, …) and a link back to the grid

  • added egg building to cirleci script

  • correlation timeseries chart hover line

1.6.7 (2020-1-3)

  • #50: updates to rolling correlation functionality

1.6.6 (2020-1-2)

  • #47: selection of multiple columns for y-axis

  • updated histogram bin selection to be an input box for full customization

  • better display of timestamps in axis ticks for charts

  • sorting of bar charts by y-axis

  • #48: scatter charts in chart builder

  • β€œnunique” added to list of aggregations

  • turned on β€œthreaded=True” for app.run to avoid hanging popups

  • #45: rolling computations as aggregations

  • Y-Axis editor

1.6.5 (2019-12-29)

  • test whether filters entered will return no data and block the user from apply those

  • allow for group values of type int or float to be displayed in charts popup

  • timeseries correlation values which return β€˜nan’ will be replaced by zero for chart purposes

  • update β€˜distribution’ to β€˜series’ on charts so that missing dates will not show up as ticks

  • added β€œfork on github” flag for demo version & links to github/docs on β€œAbout” popup

  • limited lz4 to <= 2.2.1 in python 27-3 since latest version is no longer supported

1.6.4 (2019-12-26)

  • testing of hostname returned by socket.gethostname, use β€˜localhost’ if it fails

  • removal of flask dev server banner when running in production environments

  • better handling of long strings in wordclouds

  • #43: only show timeseries correlations if datetime columns exist with multiple values per date

1.6.3 (2019-12-23)

  • updated versions of packages in yarn.lock due to issue with chart.js box & whisker plots

1.6.2 (2019-12-23)

  • #40: loading initial chart as non-line in chart builder

  • #41: double clicking cells in correlation grid for scatter will cause chart not to display

  • β€œOpen Popup” button for ipython iframes

  • column width resizing on sorting

  • additional int/float descriptors (sum, median, mode, var, sem, skew, kurt)

  • wordcloud chart type

1.6.1 (2019-12-19)

  • bugfix for url display when running from command-line

1.6.0 (2019-12-19)

  • charts integration

    • the ability to look at data in line, bar, stacked bar & pie charts

    • the ability to group & aggregate data within the charts

  • direct ipython iframes to correlations & charts pages with pre-selected inputs

  • the ability to access instances from code by data id dtale.get_instance(data_id)

  • view all active data instances dtale.instances()

1.5.1 (2019-12-12)

  • conversion of new flask instance for each dtale.show call to serving all data associated with one parent process under the same flask instance unless otherwise specified by the user (the force parameter)

1.5.0 (2019-12-02)

  • ipython integration

    • ipython output cell adjustment

    • column-wise menu support

    • browser window popups for: Correlations, Coverage, Describe, Histogram & Instances

1.4.1 (2019-11-20)

  • #32: unpin jsonschema by moving flasgger to extras_require

1.4.0 (2019-11-19)

  • Correlations Pearson Matrix filters

  • β€œname” display in title tab

  • β€œHeat Map” toggle

  • dropped unused β€œFlask-Caching” requirement

1.3.7 (2019-11-12)

  • Bug fixes for:

    • #28: β€œInstances” menu option will now be displayed by default

    • #29: add hints to how users can navigate the correlations popup

    • add β€œunicode” as a string classification for column width calculation

1.3.6 (2019-11-08)

  • Bug fixes for:

    • choose between pandas.corr & numpy.corrcoef depending on presence of NaNs

    • hide timeseries correlations when date columns only contain one day

1.3.5 (2019-11-07)

  • Bug fixes for:

    • duplicate loading of histogram data

    • string serialization failing when mixing future.str & str in scatter function

1.3.4 (2019-11-07)

  • updated correlation calculation to use numpy.corrcoef for performance purposes

  • github rebranding from manahl -> man-group

1.3.3 (2019-11-05)

  • hotfix for failing test under certain versions of future package

1.3.2 (2019-11-05)

  • Bug fixes for:

    • display of histogram column information

    • reload of hidden β€œprocesses” input when loading instances data

    • correlations json failures on string conversion

1.3.1 (2019-10-29)

  • fix for incompatible str types when directly altering state of data in running D-Tale instance

1.3.0 (2019-10-29)

  • webbrowser integration (the ability to automatically open a webbrowser upon calling dtale.show())

  • flag for hiding the β€œShutdown” button for long-running demos

  • β€œInstances” navigator popup for viewing all activate D-Tale instances for the current python process

1.2.0 (2019-10-24)

  • #20: fix for data being overriden with each new instance

  • #21: fix for displaying timestamps if they exist

  • calling show() now returns an object which can alter the state of a process

    • accessing/altering state through the data property

    • shutting down a process using the kill() function

1.1.1 (2019-10-23)

  • #13: fix for auto-detection of column widths for strings and floats

1.1.0 (2019-10-08)

  • IE support

  • Describe & About popups

  • Custom CLI support

1.0.0 (2019-09-06)

  • Initial public release

Project details

Unverified details

These details have not been verified by PyPI
Project links
Meta
  • License: GNU Library or Lesser General Public License (LGPL) (LGPL)
  • Author: MAN Alpha Technology
  • Tags numeric , pandas , visualization , flask

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dtale-1.7.0.tar.gz (5.2 MB view details)

Uploaded Source

Built Distributions

Filter files by name, interpreter, ABI, and platform.

If you're not sure about the file name format, learn more about wheel file names.

Copy a direct link to the current filters

dtale-1.7.0-py3.6.egg (5.3 MB view details)

Uploaded Egg

dtale-1.7.0-py2.py3-none-any.whl (5.2 MB view details)

Uploaded Python 2Python 3

dtale-1.7.0-py2.7.egg (5.3 MB view details)

Uploaded Egg

File details

Details for the file dtale-1.7.0.tar.gz.

File metadata

  • Download URL: dtale-1.7.0.tar.gz
  • Upload date:
  • Size: 5.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/None requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.5

File hashes

Hashes for dtale-1.7.0.tar.gz
Algorithm Hash digest
SHA256 702f8a75bf39406fabaf5f8cfbbc082670d78541793291ebc43bd291dc55ea7a
MD5 de050d3719a0670ef78a895910d872f6
BLAKE2b-256 5b7be0f286fb2eb38aef514db0f25dbc7f8b0d800e821e426175b7d0ffcd7c43

See more details on using hashes here.

File details

Details for the file dtale-1.7.0-py3.6.egg.

File metadata

  • Download URL: dtale-1.7.0-py3.6.egg
  • Upload date:
  • Size: 5.3 MB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/None requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.5

File hashes

Hashes for dtale-1.7.0-py3.6.egg
Algorithm Hash digest
SHA256 fd70413e7131c61f6b7cca514cfe452352e38e1e146733496f9d5171529dfb38
MD5 c149dbf2978a4ae1cbbbef6368d46ad1
BLAKE2b-256 987eacfc67bdc45303a78b86774a1271ec259b4afbb235508f718e7429121081

See more details on using hashes here.

File details

Details for the file dtale-1.7.0-py2.py3-none-any.whl.

File metadata

  • Download URL: dtale-1.7.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/None requests/2.22.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.5

File hashes

Hashes for dtale-1.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8394f39d0bf262881e546fe991a182be1ea04b9bf6f174ec64ae1755c3b1fafe
MD5 9d969b5c0a3cb58280d654d71c6a20b1
BLAKE2b-256 97115e157621a68053312624fc5016bee7e652988def83e8a32ac852b6adfe66

See more details on using hashes here.

File details

Details for the file dtale-1.7.0-py2.7.egg.

File metadata

  • Download URL: dtale-1.7.0-py2.7.egg
  • Upload date:
  • Size: 5.3 MB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/None requests/2.22.0 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/2.7.13

File hashes

Hashes for dtale-1.7.0-py2.7.egg
Algorithm Hash digest
SHA256 954dd04fcc194ca8b1a375f9260fb379a93fda2bf2184cb05c4a60d2eee1e6dd
MD5 cc18e4f6abe7d444053f88d4931585ae
BLAKE2b-256 2ce14fa3efa1eaa64e1a71b103a4e559d4c4f487d894485133b26cbceb1d2bab

See more details on using hashes here.

Supported by

πŸ‘ Image
AWS Cloud computing and Security Sponsor πŸ‘ Image
Datadog Monitoring πŸ‘ Image
Depot Continuous Integration πŸ‘ Image
Fastly CDN πŸ‘ Image
Google Download Analytics πŸ‘ Image
Pingdom Monitoring πŸ‘ Image
Sentry Error logging πŸ‘ Image
StatusPage Status page