diff --git a/.circleci/config.yml b/.circleci/config.yml index 826b0dab..44a5d94b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,7 +64,7 @@ python_variables: &python_variables CIRCLE_ARTIFACTS: /tmp/circleci-artifacts CIRCLE_TEST_REPORTS: /tmp/circleci-test-results CODECOV_TOKEN: b0d35139-0a75-427a-907b-2c78a762f8f0 - VERSION: 1.41.1 + VERSION: 1.42.0 PANDOC_RELEASES_URL: https://github.com/jgm/pandoc/releases RUN_BLACK: true python: &python diff --git a/CHANGES.md b/CHANGES.md index 138ecd1d..a61f4ea1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,14 @@ ## Changelog -###1.41.1 (2021-3-30) +### 1.42.0 (2021-4-11) +* Added missingno chart display +* added new side panel for viewing describe data + * updated how requirements files are loaded in setup.py + * added cleanup function to instance object + * added animation for display of hidden/filter/sort info row +* [#306](https://github.com/man-group/dtale/issues/306): ribbon menu + +### 1.41.1 (2021-3-30) * [#458](https://github.com/man-group/dtale/issues/458): fix for killing D-Tale sessions in jupyter_server_proxy ### 1.41.0 (2021-3-26) diff --git a/README.md b/README.md index 03830220..760fe09e 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ D-Tale was the product of a SAS to Python conversion. What was originally a per - [Main Menu Functions](#main-menu-functions) - [XArray Operations](#xarray-operations), [Describe](#describe), [Outlier Detection](#outlier-detection), [Custom Filter](#custom-filter), [Building Columns](#building-columns), [Merge & Stack](#merge-&-stack), [Summarize Data](#summarize-data), [Duplicates](#duplicates), [Missing Analysis](#missing-analysis), [Correlations](#correlations), [Predictive Power Score](#predictive-power-score), [Heat Map](#heat-map), [Highlight Dtypes](#highlight-dtypes), [Highlight Missing](#highlight-missing), [Highlight Outliers](#highlight-outliers), [Highlight Range](#highlight-range), [Low Variance Flag](#low-variance-flag), [Instances](#instances), [Code Exports](#code-exports), [Export CSV](#export-csv), [Load Data & Sample Datasets](#load-data-&-sample-datasets), [Refresh Widths](#refresh-widths), [About](#about), [Theme](#theme), [Reload Data](#reload-data), [Unpin/Pin Menu](#unpinpin-menu), [Language](#language), [Shutdown](#shutdown) - [Column Menu Functions](#column-menu-functions) - - [Filtering](#filtering), [Moving Columns](#moving-columns), [Hiding Columns](#hiding-columns), [Delete](#delete), [Rename](#rename), [Replacements](#replacements), [Lock](#lock), [Unlock](#unlock), [Sorting](#sorting), [Formats](#formats), [Describe (Column Analysis)](#describecolumn-analysis) + - [Filtering](#filtering), [Moving Columns](#moving-columns), [Hiding Columns](#hiding-columns), [Delete](#delete), [Rename](#rename), [Replacements](#replacements), [Lock](#lock), [Unlock](#unlock), [Sorting](#sorting), [Formats](#formats), [Describe (Column Analysis)](#describe-column-analysis) - [Charts](#charts) - [Network Viewer](#network-viewer) - [Hotkeys](#hotkeys) @@ -709,14 +709,14 @@ The folowing screen shots are for a dataframe with the following data: |**Show Duplicates**|Break any duplicate rows (based on a subset of columns) out into another dataframe viewable in your D-Tale session. You can choose to view all duplicates or select specific groups based on the duplicated value.|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/duplicates/show.png)| #### Missing Analysis -Display charts analyzing the presence of missing (NaN) data in your dataset using the [missingno]() pacakage. You can also open them in a tab by themselves or export them to a static PNG using the links in the upper right corner. +Display charts analyzing the presence of missing (NaN) data in your dataset using the [missingno](https://github.com/ResidentMario/missingno) pacakage. You can also open them in a tab by themselves or export them to a static PNG using the links in the upper right corner. | Chart | Sample | |--------------|--------| -| Matrix | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/matrix.PNG)| -| Bar | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/bar.PNG)| -| Heatmap | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/heatmap.PNG)| +| Matrix | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/matrix.png)| +| Bar | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/bar.png)| +| Heatmap | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/heatmap.png)| | Dendrogram | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/missingno/dendrogram.png)| #### Charts @@ -1164,13 +1164,13 @@ Based on the data type of a column different charts will be shown. | Chart | Data Types | Sample | |---------------|----------------|--------| -| Box Plot | Float, Int, Date | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/boxplot.PNG)| +| Box Plot | Float, Int, Date | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/boxplot.png)| | Histogram | Float, Int |![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/histogram.PNG)| | Value Counts | Int, String, Bool, Date, Category|![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/value_counts.PNG)| | Word Value Counts | String | ![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/word_value_counts.png)| | Category | Float |![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/category.PNG)| | Geolocation* | Int, Float |![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/geolocation.PNG)| -| Q-Q Plot | Int, Float, Date |![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/qq.PNG)| +| Q-Q Plot | Int, Float, Date |![](https://raw.githubusercontent.com/aschonfeld/dtale-media/master/images/analysis/qq.png)| **Histogram** can be displayed in any number of bins (default: 20), simply type a new integer value in the bins input diff --git a/docker/dtale.env b/docker/dtale.env index 0cf23d53..0c8b6a59 100644 --- a/docker/dtale.env +++ b/docker/dtale.env @@ -1,2 +1,2 @@ -VERSION=1.41.1 +VERSION=1.42.0 TZ=America/New_York \ No newline at end of file diff --git a/docs/source/conf.py b/docs/source/conf.py index 2bf67add..a8d09c36 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -64,9 +64,9 @@ # built documents. # # The short X.Y version. -version = u"1.41.1" +version = u"1.42.0" # The full version, including alpha/beta/rc tags. -release = u"1.41.1" +release = u"1.42.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/package.json b/package.json index 2bc5e184..a9a2e8e7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dtale", - "version": "1.41.1", + "version": "1.42.0", "description": "Visualizer for Pandas Data Structures", "main": "main.js", "directories": { diff --git a/setup.py b/setup.py index 97dde2bf..ae638bee 100644 --- a/setup.py +++ b/setup.py @@ -8,16 +8,25 @@ from setuptools import find_packages, setup from setuptools.command.test import test as TestCommand + +def read_file(path): + with open(path) as contents: + return contents.read() + + # Convert Markdown to RST for PyPI # http://stackoverflow.com/a/26737672 try: import pypandoc - long_description = pypandoc.convert("README.md", "rst") - changelog = pypandoc.convert("CHANGES.md", "rst") + pypandoc_func = ( + pypandoc.convert_file if hasattr(pypandoc, "convert_file") else pypandoc.convert + ) + long_description = pypandoc_func("README.md", "rst") + changelog = pypandoc_func("CHANGES.md", "rst") except (IOError, ImportError, OSError): - long_description = open("README.md").read() - changelog = open("CHANGES.md").read() + long_description = read_file("README.md") + changelog = read_file("CHANGES.md") class PyTest(TestCommand): @@ -62,14 +71,9 @@ def run_tests(self): sys.exit(errno) -def load_requirements(path): - with open(path) as requirements: - return requirements.read() - - setup( name="dtale", - version="1.41.1", + version="1.42.0", author="MAN Alpha Technology", author_email="ManAlphaTech@man.com", description="Web Client for Visualizing Pandas Objects", @@ -77,14 +81,14 @@ def load_requirements(path): long_description="\n".join((long_description, changelog)), keywords=["numeric", "pandas", "visualization", "flask"], url="https://github.com/man-group/dtale", - install_requires=load_requirements("requirements.txt"), + install_requires=read_file("requirements.txt"), extras_require={ "arctic": ["arctic"], "r": ["rpy2; python_version > '3.0'"], "redis": ["redislite"], "streamlit": ["streamlit"], "swifter": ["swifter"], - "tests": load_requirements("requirements-test.txt"), + "tests": read_file("requirements-test.txt"), }, classifiers=[ "Development Status :: 4 - Beta",