From bad6938d1a65453b94f7bfe4e9936e6e066b0775 Mon Sep 17 00:00:00 2001 From: Jeff Niu Date: Thu, 12 Oct 2017 21:54:59 -0700 Subject: [PATCH] [New Viz] Partition Diagram (#3642) * Added Partition Visualization * added unit tests --- .../images/viz_thumbnails/partition.png | Bin 0 -> 198125 bytes .../components/OptionDescription.jsx | 28 ++ .../javascripts/explore/stores/controls.jsx | 101 ++++++ .../javascripts/explore/stores/visTypes.js | 27 ++ superset/assets/package.json | 1 + superset/assets/visualizations/main.js | 1 + superset/assets/visualizations/partition.css | 27 ++ superset/assets/visualizations/partition.js | 333 ++++++++++++++++++ superset/viz.py | 157 ++++++++- tests/viz_tests.py | 225 ++++++++++++ 10 files changed, 894 insertions(+), 6 deletions(-) create mode 100644 superset/assets/images/viz_thumbnails/partition.png create mode 100644 superset/assets/javascripts/components/OptionDescription.jsx create mode 100644 superset/assets/visualizations/partition.css create mode 100644 superset/assets/visualizations/partition.js diff --git a/superset/assets/images/viz_thumbnails/partition.png b/superset/assets/images/viz_thumbnails/partition.png new file mode 100644 index 0000000000000000000000000000000000000000..7cf6e1358a5fe4d897272ecdc834a991f971887b GIT binary patch literal 198125 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 z%0D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

c1hLd2w_f`{ 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

>y`V=*pf@MZc`k7wFQ*=MQ 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 z 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%0AG$PW+0~`=bwxK9uw2Gp*pD1{bWdNA7)x6 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 L8ERtHZNvTx8EVA% literal 0 HcmV?d00001 diff --git a/superset/assets/javascripts/components/OptionDescription.jsx b/superset/assets/javascripts/components/OptionDescription.jsx new file mode 100644 index 0000000000000..60cc731e1f514 --- /dev/null +++ b/superset/assets/javascripts/components/OptionDescription.jsx @@ -0,0 +1,28 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import InfoTooltipWithTrigger from './InfoTooltipWithTrigger'; + +const propTypes = { + option: PropTypes.object.isRequired, +}; + +// This component provides a general tooltip for options +// in a SelectControl +export default function OptionDescription({ option }) { + return ( + + + {option.label} + + {option.description && + + } + ); +} +OptionDescription.propTypes = propTypes; diff --git a/superset/assets/javascripts/explore/stores/controls.jsx b/superset/assets/javascripts/explore/stores/controls.jsx index 78ef33cf41318..da8f22dc6ff5d 100644 --- a/superset/assets/javascripts/explore/stores/controls.jsx +++ b/superset/assets/javascripts/explore/stores/controls.jsx @@ -4,6 +4,7 @@ import * as v from '../validators'; import { ALL_COLOR_SCHEMES, spectrums } from '../../modules/colors'; import MetricOption from '../../components/MetricOption'; import ColumnOption from '../../components/ColumnOption'; +import OptionDescription from '../../components/OptionDescription'; import { t } from '../../locales'; const D3_FORMAT_DOCS = 'D3 format syntax: https://github.com/d3/d3-format'; @@ -98,6 +99,7 @@ export const controls = { }), description: t('One or many metrics to display'), }, + y_axis_bounds: { type: 'BoundsControl', label: t('Y Axis Bounds'), @@ -108,6 +110,7 @@ export const controls = { "this feature will only expand the axis range. It won't " + "narrow the data's extent."), }, + order_by_cols: { type: 'SelectControl', multi: true, @@ -909,6 +912,16 @@ export const controls = { description: D3_FORMAT_DOCS, }, + date_time_format: { + type: 'SelectControl', + freeForm: true, + label: t('Date Time Format'), + renderTrigger: true, + default: 'smart_date', + choices: D3_TIME_FORMAT_OPTIONS, + description: D3_FORMAT_DOCS, + }, + markup_type: { type: 'SelectControl', label: t('Markup Type'), @@ -1136,6 +1149,14 @@ export const controls = { description: t('Use a log scale for the X axis'), }, + log_scale: { + type: 'CheckboxControl', + label: t('Log Scale'), + default: false, + renderTrigger: true, + description: t('Use a log scale'), + }, + donut: { type: 'CheckboxControl', label: t('Donut'), @@ -1456,5 +1477,85 @@ export const controls = { controlName: 'TimeSeriesColumnControl', }, + time_series_option: { + type: 'SelectControl', + label: t('Options'), + validators: [v.nonEmpty], + default: 'not_time', + valueKey: 'value', + options: [ + { + label: t('Not Time Series'), + value: 'not_time', + description: t('Ignore time'), + }, + { + label: t('Time Series'), + value: 'time_series', + description: t('Standard time series'), + }, + { + label: t('Aggregate Mean'), + value: 'agg_mean', + description: t('Mean of values over specified period'), + }, + { + label: t('Aggregate Sum'), + value: 'agg_sum', + description: t('Sum of values over specified period'), + }, + { + label: t('Difference'), + value: 'point_diff', + description: t('Metric change in value from `since` to `until`'), + }, + { + label: t('Percent Change'), + value: 'point_percent', + description: t('Metric percent change in value from `since` to `until`'), + }, + { + label: t('Factor'), + value: 'point_factor', + description: t('Metric factor change from `since` to `until`'), + }, + { + label: t('Advanced Analytics'), + value: 'adv_anal', + description: t('Use the Advanced Analytics options below'), + }, + ], + optionRenderer: op => , + valueRenderer: op => , + description: t('Settings for time series'), + }, + + equal_date_size: { + type: 'CheckboxControl', + label: t('Equal Date Sizes'), + default: true, + renderTrigger: true, + description: t('Check to force date partitions to have the same height'), + }, + + partition_limit: { + type: 'TextControl', + label: t('Partition Limit'), + isInt: true, + default: '5', + description: + t('The maximum number of subdivisions of each group; ' + + 'lower values are pruned first'), + }, + + partition_threshold: { + type: 'TextControl', + label: t('Partition Threshold'), + isFloat: true, + default: '0.05', + description: + t('Partitions whose height to parent height proportions are ' + + 'below this value are pruned'), + }, }; export default controls; diff --git a/superset/assets/javascripts/explore/stores/visTypes.js b/superset/assets/javascripts/explore/stores/visTypes.js index da142aec694e7..09755550169b0 100644 --- a/superset/assets/javascripts/explore/stores/visTypes.js +++ b/superset/assets/javascripts/explore/stores/visTypes.js @@ -1155,6 +1155,33 @@ export const visTypes = { }, ], }, + + partition: { + label: 'Partition Diagram', + showOnExplore: true, + controlPanelSections: [ + sections.NVD3TimeSeries[0], + { + label: t('Time Series Options'), + expanded: true, + controlSetRows: [ + ['time_series_option'], + ], + }, + { + label: t('Chart Options'), + expanded: true, + controlSetRows: [ + ['color_scheme'], + ['number_format', 'date_time_format'], + ['partition_limit', 'partition_threshold'], + ['log_scale', 'equal_date_size'], + ['rich_tooltip'], + ], + }, + sections.NVD3TimeSeries[1], + ], + }, }; export default visTypes; diff --git a/superset/assets/package.json b/superset/assets/package.json index 3dfdb78240f9b..06ae76563b553 100644 --- a/superset/assets/package.json +++ b/superset/assets/package.json @@ -52,6 +52,7 @@ "d3-sankey": "^0.4.2", "d3-svg-legend": "^1.x", "d3-tip": "^0.6.7", + "d3-hierarchy": "^1.1.5", "datamaps": "^0.5.8", "datatables.net-bs": "^1.10.15", "distributions": "^1.0.0", diff --git a/superset/assets/visualizations/main.js b/superset/assets/visualizations/main.js index dc5ee30516270..78e81ab6d7340 100644 --- a/superset/assets/visualizations/main.js +++ b/superset/assets/visualizations/main.js @@ -35,5 +35,6 @@ const vizMap = { dual_line: require('./nvd3_vis.js'), event_flow: require('./EventFlow.jsx'), paired_ttest: require('./paired_ttest.jsx'), + partition: require('./partition.js'), }; export default vizMap; diff --git a/superset/assets/visualizations/partition.css b/superset/assets/visualizations/partition.css new file mode 100644 index 0000000000000..e23cca795203f --- /dev/null +++ b/superset/assets/visualizations/partition.css @@ -0,0 +1,27 @@ +.partition .chart { + display: block; + margin: auto; + font-size: 11px; +} + +.partition rect { + stroke: #eee; + fill: #aaa; + fill-opacity: .8; + transition: fill-opacity 180ms linear; + cursor: pointer; +} + +.partition rect:hover { + fill-opacity: 1; +} + +.partition g text { + font-weight: bold; + pointer-events: none; + fill: rgba(0, 0, 0, 0.8); +} + +.partition g:hover text { + fill: rgba(0, 0, 0, 1); +} diff --git a/superset/assets/visualizations/partition.js b/superset/assets/visualizations/partition.js new file mode 100644 index 0000000000000..a91611ce007bf --- /dev/null +++ b/superset/assets/visualizations/partition.js @@ -0,0 +1,333 @@ +/* eslint no-param-reassign: [2, {"props": false}] */ +/* eslint no-use-before-define: ["error", { "functions": false }] */ +import d3 from 'd3'; +import { + d3TimeFormatPreset, +} from '../javascripts/modules/utils'; +import { getColorFromScheme } from '../javascripts/modules/colors'; + +import './partition.css'; + +d3.hierarchy = require('d3-hierarchy').hierarchy; +d3.partition = require('d3-hierarchy').partition; + +function init(root) { + // Compute dx, dy, x, y for each node and + // return an array of nodes in breadth-first order + const flat = []; + const dy = 1.0 / (root.height + 1); + let prev = null; + root.each((n) => { + n.y = dy * n.depth; + n.dy = dy; + if (!n.parent) { + n.x = 0; + n.dx = 1; + } else { + n.x = prev.depth === n.parent.depth ? 0 : prev.x + prev.dx; + n.dx = n.weight / n.parent.sum * n.parent.dx; + } + prev = n; + flat.push(n); + }); + return flat; +} + +// This vis is based on +// http://mbostock.github.io/d3/talk/20111018/partition.html +function partitionVis(slice, payload) { + const data = payload.data; + const fd = slice.formData; + const div = d3.select(slice.selector); + const metrics = fd.metrics || []; + + // Chart options + const logScale = fd.log_scale || false; + const chartType = fd.time_series_option || 'not_time'; + const hasTime = ['adv_anal', 'time_series'].indexOf(chartType) >= 0; + const format = d3.format(fd.number_format); + const timeFormat = d3TimeFormatPreset(fd.date_time_format); + + div.selectAll('*').remove(); + d3.selectAll('.nvtooltip').remove(); + const tooltip = d3 + .select('body') + .append('div') + .attr('class', 'nvtooltip') + .style('opacity', 0) + .style('top', 0) + .style('left', 0) + .style('position', 'fixed'); + + function drawVis(i, dat) { + const datum = dat[i]; + const w = slice.width(); + const h = slice.height() / data.length; + const x = d3.scale.linear().range([0, w]); + const y = d3.scale.linear().range([0, h]); + + const viz = div + .append('div') + .attr('class', 'chart') + .style('width', w + 'px') + .style('height', h + 'px') + .append('svg:svg') + .attr('width', w) + .attr('height', h); + + // Add padding between multiple visualizations + if (i !== data.length - 1 && data.length > 1) { + viz.style('padding-bottom', '3px'); + } + if (i !== 0 && data.length > 1) { + viz.style('padding-top', '3px'); + } + + const root = d3.hierarchy(datum); + + function hasDateNode(n) { + return metrics.indexOf(n.data.name) >= 0 && hasTime; + } + + // node.name is the metric/group name + // node.disp is the display value + // node.value determines sorting order + // node.weight determines partition height + // node.sum is the sum of children weights + root.eachAfter((n) => { + n.disp = n.data.val; + n.value = n.disp < 0 ? -n.disp : n.disp; + n.weight = n.value; + n.name = n.data.name; + // If the parent is a metric and we still have + // the time column, perform a date-time format + if (n.parent && hasDateNode(n.parent)) { + // Format timestamp values + n.weight = fd.equal_date_size ? 1 : n.value; + n.value = n.name; + n.name = timeFormat(n.name); + } + if (logScale) n.weight = Math.log(n.weight + 1); + n.disp = n.disp && !isNaN(n.disp) && isFinite(n.disp) ? format(n.disp) : ''; + }); + // Perform sort by weight + root.sort((a, b) => { + const v = b.value - a.value; + if (v === 0) { + return b.name > a.name ? 1 : -1; + } + return v; + }); + + // Prune data based on partition limit and threshold + // both are applied at the same time + if (fd.partition_threshold && fd.partition_threshold >= 0) { + // Compute weight sums as we go + root.each((n) => { + n.sum = n.children ? n.children.reduce((a, v) => a + v.weight, 0) || 1 : 1; + if (n.children) { + // Dates are not ordered by weight + if (hasDateNode(n)) { + if (fd.equal_date_size) { + return; + } + const removeIndices = []; + // Keep at least one child + for (let j = 1; j < n.children.length; j++) { + if (n.children[j].weight / n.sum < fd.partition_threshold) { + removeIndices.push(j); + } + } + for (let j = removeIndices.length - 1; j >= 0; j--) { + n.children.splice(removeIndices[j], 1); + } + } else { + // Find first child that falls below the threshold + let j; + for (j = 1; j < n.children.length; j++) { + if (n.children[j].weight / n.sum < fd.partition_threshold) { + break; + } + } + n.children = n.children.slice(0, j); + } + } + }); + } + if (fd.partition_limit && fd.partition_limit >= 0) { + root.each((n) => { + if (n.children && n.children.length > fd.partition_limit) { + if (!hasDateNode(n)) { + n.children = n.children.slice(0, fd.partition_limit); + } + } + }); + } + // Compute final weight sums + root.eachAfter((n) => { + n.sum = n.children ? n.children.reduce((a, v) => a + v.weight, 0) || 1 : 1; + }); + + const verboseMap = slice.datasource.verbose_map; + function getCategory(depth) { + if (!depth) { + return 'Metric'; + } + if (hasTime && depth === 1) { + return 'Date'; + } + const col = fd.groupby[depth - (hasTime ? 2 : 1)]; + return verboseMap[col] || col; + } + + function getAncestors(d) { + const ancestors = [d]; + let node = d; + while (node.parent) { + ancestors.push(node.parent); + node = node.parent; + } + return ancestors; + } + + function positionAndPopulate(tip, d) { + let t = ''; + if (!fd.rich_tooltip) { + t += ( + '' + ); + t += ( + '' + + '' + + `` + + `` + + '' + ); + } else { + const nodes = getAncestors(d); + nodes.forEach((n) => { + const atNode = n.depth === d.depth; + t += ''; + t += ( + `` + + `' + + `` + + `` + + `` + + '' + ); + }); + } + t += '
' + + `${getCategory(d.depth)}` + + '
' + + `
' + + '
${d.name}${d.disp}
` + + '
' + + '
${n.name}${n.disp}${getCategory(n.depth)}
'; + tip.html(t) + .style('left', (d3.event.pageX + 13) + 'px') + .style('top', (d3.event.pageY - 10) + 'px'); + } + + const g = viz + .selectAll('g') + .data(init(root)) + .enter() + .append('svg:g') + .attr('transform', d => `translate(${x(d.y)},${y(d.x)})`) + .on('click', click) + .on('mouseover', (d) => { + tooltip + .interrupt() + .transition() + .duration(100) + .style('opacity', 0.9); + positionAndPopulate(tooltip, d); + }) + .on('mousemove', (d) => { + positionAndPopulate(tooltip, d); + }) + .on('mouseout', () => { + tooltip + .interrupt() + .transition() + .duration(250) + .style('opacity', 0); + }); + + let kx = w / root.dx; + let ky = h / 1; + + g.append('svg:rect') + .attr('width', root.dy * kx) + .attr('height', d => d.dx * ky); + + g.append('svg:text') + .attr('transform', transform) + .attr('dy', '0.35em') + .style('opacity', d => d.dx * ky > 12 ? 1 : 0) + .text((d) => { + if (!d.disp) { + return d.name; + } + return `${d.name}: ${d.disp}`; + }); + + // Apply color scheme + g.selectAll('rect') + .style('fill', (d) => { + d.color = getColorFromScheme(d.name, fd.color_scheme); + return d.color; + }); + + // Zoom out when clicking outside vis + // d3.select(window) + // .on('click', () => click(root)); + + // Keep text centered in its division + function transform(d) { + return `translate(8,${d.dx * ky / 2})`; + } + + // When clicking a subdivision, the vis will zoom in to it + function click(d) { + if (!d.children) { + if (d.parent) { + // Clicking on the rightmost level should zoom in + return click(d.parent); + } + return false; + } + kx = (d.y ? w - 40 : w) / (1 - d.y); + ky = h / d.dx; + x.domain([d.y, 1]).range([d.y ? 40 : 0, w]); + y.domain([d.x, d.x + d.dx]); + + const t = g + .transition() + .duration(d3.event.altKey ? 7500 : 750) + .attr('transform', nd => `translate(${x(nd.y)},${y(nd.x)})`); + + t.select('rect') + .attr('width', d.dy * kx) + .attr('height', nd => nd.dx * ky); + + t.select('text') + .attr('transform', transform) + .style('opacity', nd => nd.dx * ky > 12 ? 1 : 0); + + d3.event.stopPropagation(); + return true; + } + } + for (let i = 0; i < data.length; i++) { + drawVis(i, data); + } +} + +module.exports = partitionVis; diff --git a/superset/viz.py b/superset/viz.py index a800bc0375a88..1d701b0a656e6 100644 --- a/superset/viz.py +++ b/superset/viz.py @@ -27,6 +27,7 @@ from markdown import markdown import simplejson as json from six import string_types, PY3 +from six.moves import reduce from dateutil import relativedelta as rdelta from superset import app, utils, cache, get_manifest_file @@ -915,7 +916,7 @@ def to_series(self, df, classed='', title_suffix=''): if isinstance(series_title, string_types): series_title += title_suffix elif title_suffix and isinstance(series_title, (list, tuple)): - series_title.append(title_suffix) + series_title = series_title + (title_suffix,) d = { "key": series_title, @@ -928,16 +929,24 @@ def to_series(self, df, classed='', title_suffix=''): chart_data.append(d) return chart_data - def process_data(self, df): + def process_data(self, df, aggregate=False): fd = self.form_data df = df.fillna(0) if fd.get("granularity") == "all": raise Exception(_("Pick a time granularity for your time series")) - df = df.pivot_table( - index=DTTM_ALIAS, - columns=fd.get('groupby'), - values=fd.get('metrics')) + if not aggregate: + df = df.pivot_table( + index=DTTM_ALIAS, + columns=fd.get('groupby'), + values=fd.get('metrics')) + else: + df = df.pivot_table( + index=DTTM_ALIAS, + columns=fd.get('groupby'), + values=fd.get('metrics'), + fill_value=0, + aggfunc=sum) fm = fd.get("resample_fillmethod") if not fm: @@ -1782,6 +1791,142 @@ def get_data(self, df): return data +class PartitionViz(NVD3TimeSeriesViz): + + """ + A hierarchical data visualization with support for time series. + """ + + viz_type = 'partition' + verbose_name = _("Partition Diagram") + + def query_obj(self): + query_obj = super(PartitionViz, self).query_obj() + time_op = self.form_data.get('time_series_option', 'not_time') + # Return time series data if the user specifies so + query_obj['is_timeseries'] = time_op != 'not_time' + return query_obj + + def levels_for(self, time_op, groups, df): + """ + Compute the partition at each `level` from the dataframe. + """ + levels = {} + for i in range(0, len(groups) + 1): + agg_df = df.groupby(groups[:i]) if i else df + levels[i] = ( + agg_df.mean() if time_op == 'agg_mean' + else agg_df.sum(numeric_only=True)) + return levels + + def levels_for_diff(self, time_op, groups, df): + # Obtain a unique list of the time grains + times = list(set(df[DTTM_ALIAS])) + times.sort() + until = times[len(times) - 1] + since = times[0] + # Function describing how to calculate the difference + func = { + 'point_diff': [ + pd.Series.sub, + lambda a, b, fill_value: a - b, + ], + 'point_factor': [ + pd.Series.div, + lambda a, b, fill_value: a / float(b), + ], + 'point_percent': [ + lambda a, b, fill_value=0: a.div(b, fill_value=fill_value) - 1, + lambda a, b, fill_value: a / float(b) - 1, + ], + }[time_op] + agg_df = df.groupby(DTTM_ALIAS).sum() + levels = {0: pd.Series({ + m: func[1](agg_df[m][until], agg_df[m][since], 0) + for m in agg_df.columns})} + for i in range(1, len(groups) + 1): + agg_df = df.groupby([DTTM_ALIAS] + groups[:i]).sum() + levels[i] = pd.DataFrame({ + m: func[0](agg_df[m][until], agg_df[m][since], fill_value=0) + for m in agg_df.columns}) + return levels + + def levels_for_time(self, groups, df): + procs = {} + for i in range(0, len(groups) + 1): + self.form_data['groupby'] = groups[:i] + df_drop = df.drop(groups[i:], 1) + procs[i] = self.process_data(df_drop, aggregate=True).fillna(0) + self.form_data['groupby'] = groups + return procs + + def nest_values(self, levels, level=0, metric=None, dims=()): + """ + Nest values at each level on the back-end with + access and setting, instead of summing from the bottom. + """ + if not level: + return [{ + 'name': m, + 'val': levels[0][m], + 'children': self.nest_values(levels, 1, m), + } for m in levels[0].index] + if level == 1: + return [{ + 'name': i, + 'val': levels[1][metric][i], + 'children': self.nest_values(levels, 2, metric, (i,)), + } for i in levels[1][metric].index] + if level >= len(levels): + return [] + return [{ + 'name': i, + 'val': levels[level][metric][dims][i], + 'children': self.nest_values( + levels, level + 1, metric, dims + (i,) + ), + } for i in levels[level][metric][dims].index] + + def nest_procs(self, procs, level=-1, dims=(), time=None): + if level == -1: + return [{ + 'name': m, + 'children': self.nest_procs(procs, 0, (m,)), + } for m in procs[0].columns] + if not level: + return [{ + 'name': t, + 'val': procs[0][dims[0]][t], + 'children': self.nest_procs(procs, 1, dims, t), + } for t in procs[0].index] + if level >= len(procs): + return [] + return [{ + 'name': i, + 'val': procs[level][dims][i][time], + 'children': self.nest_procs(procs, level + 1, dims + (i,), time) + } for i in procs[level][dims].columns] + + def get_data(self, df): + fd = self.form_data + groups = fd.get('groupby', []) + time_op = fd.get('time_series_option', 'not_time') + if not len(groups): + raise ValueError('Please choose at least one groupby') + if time_op == 'not_time': + levels = self.levels_for('agg_sum', groups, df) + elif time_op in ['agg_sum', 'agg_mean']: + levels = self.levels_for(time_op, groups, df) + elif time_op in ['point_diff', 'point_factor', 'point_percent']: + levels = self.levels_for_diff(time_op, groups, df) + elif time_op == 'adv_anal': + procs = self.levels_for_time(groups, df) + return self.nest_procs(procs) + else: + levels = self.levels_for('agg_sum', [DTTM_ALIAS] + groups, df) + return self.nest_values(levels) + + viz_types = { o.viz_type: o for o in globals().values() if ( diff --git a/tests/viz_tests.py b/tests/viz_tests.py index a4beab3e987d8..fec424a25ac90 100644 --- a/tests/viz_tests.py +++ b/tests/viz_tests.py @@ -3,6 +3,7 @@ import superset.viz as viz from superset.utils import DTTM_ALIAS +from mock import Mock, patch class PairedTTestTestCase(unittest.TestCase): @@ -135,3 +136,227 @@ def test_get_data_empty_null_keys(self): ], } self.assertEquals(data, expected) + + +class PartitionVizTestCase(unittest.TestCase): + + @patch('superset.viz.BaseViz.query_obj') + def test_query_obj_time_series_option(self, super_query_obj): + datasource = Mock() + form_data = {} + test_viz = viz.PartitionViz(datasource, form_data) + super_query_obj.return_value = {} + query_obj = test_viz.query_obj() + self.assertFalse(query_obj['is_timeseries']) + test_viz.form_data['time_series_option'] = 'agg_sum' + query_obj = test_viz.query_obj() + self.assertTrue(query_obj['is_timeseries']) + + def test_levels_for_computes_levels(self): + raw = {} + raw[DTTM_ALIAS] = [100, 200, 300, 100, 200, 300, 100, 200, 300] + raw['groupA'] = ['a1', 'a1', 'a1', 'b1', 'b1', 'b1', 'c1', 'c1', 'c1'] + raw['groupB'] = ['a2', 'a2', 'a2', 'b2', 'b2', 'b2', 'c2', 'c2', 'c2'] + raw['groupC'] = ['a3', 'a3', 'a3', 'b3', 'b3', 'b3', 'c3', 'c3', 'c3'] + raw['metric1'] = [1, 2, 3, 4, 5, 6, 7, 8, 9] + raw['metric2'] = [10, 20, 30, 40, 50, 60, 70, 80, 90] + raw['metric3'] = [100, 200, 300, 400, 500, 600, 700, 800, 900] + df = pd.DataFrame(raw) + groups = ['groupA', 'groupB', 'groupC'] + time_op = 'agg_sum' + test_viz = viz.PartitionViz(Mock(), {}) + levels = test_viz.levels_for(time_op, groups, df) + self.assertEqual(4, len(levels)) + expected = { + DTTM_ALIAS: 1800, + 'metric1': 45, + 'metric2': 450, + 'metric3': 4500, + } + self.assertEqual(expected, levels[0].to_dict()) + expected = { + DTTM_ALIAS: {'a1': 600, 'b1': 600, 'c1': 600}, + 'metric1': {'a1': 6, 'b1': 15, 'c1': 24}, + 'metric2': {'a1': 60, 'b1': 150, 'c1': 240}, + 'metric3': {'a1': 600, 'b1': 1500, 'c1': 2400}, + } + self.assertEqual(expected, levels[1].to_dict()) + self.assertEqual(['groupA', 'groupB'], levels[2].index.names) + self.assertEqual( + ['groupA', 'groupB', 'groupC'], + levels[3].index.names, + ) + time_op = 'agg_mean' + levels = test_viz.levels_for(time_op, groups, df) + self.assertEqual(4, len(levels)) + expected = { + DTTM_ALIAS: 200.0, + 'metric1': 5.0, + 'metric2': 50.0, + 'metric3': 500.0, + } + self.assertEqual(expected, levels[0].to_dict()) + expected = { + DTTM_ALIAS: {'a1': 200, 'c1': 200, 'b1': 200}, + 'metric1': {'a1': 2, 'b1': 5, 'c1': 8}, + 'metric2': {'a1': 20, 'b1': 50, 'c1': 80}, + 'metric3': {'a1': 200, 'b1': 500, 'c1': 800}, + } + self.assertEqual(expected, levels[1].to_dict()) + self.assertEqual(['groupA', 'groupB'], levels[2].index.names) + self.assertEqual( + ['groupA', 'groupB', 'groupC'], + levels[3].index.names, + ) + + def test_levels_for_diff_computes_difference(self): + raw = {} + raw[DTTM_ALIAS] = [100, 200, 300, 100, 200, 300, 100, 200, 300] + raw['groupA'] = ['a1', 'a1', 'a1', 'b1', 'b1', 'b1', 'c1', 'c1', 'c1'] + raw['groupB'] = ['a2', 'a2', 'a2', 'b2', 'b2', 'b2', 'c2', 'c2', 'c2'] + raw['groupC'] = ['a3', 'a3', 'a3', 'b3', 'b3', 'b3', 'c3', 'c3', 'c3'] + raw['metric1'] = [1, 2, 3, 4, 5, 6, 7, 8, 9] + raw['metric2'] = [10, 20, 30, 40, 50, 60, 70, 80, 90] + raw['metric3'] = [100, 200, 300, 400, 500, 600, 700, 800, 900] + df = pd.DataFrame(raw) + groups = ['groupA', 'groupB', 'groupC'] + test_viz = viz.PartitionViz(Mock(), {}) + time_op = 'point_diff' + levels = test_viz.levels_for_diff(time_op, groups, df) + expected = { + 'metric1': 6, + 'metric2': 60, + 'metric3': 600, + } + self.assertEqual(expected, levels[0].to_dict()) + expected = { + 'metric1': {'a1': 2, 'b1': 2, 'c1': 2}, + 'metric2': {'a1': 20, 'b1': 20, 'c1': 20}, + 'metric3': {'a1': 200, 'b1': 200, 'c1': 200}, + } + self.assertEqual(expected, levels[1].to_dict()) + self.assertEqual(4, len(levels)) + self.assertEqual(['groupA', 'groupB', 'groupC'], levels[3].index.names) + + def test_levels_for_time_calls_process_data_and_drops_cols(self): + raw = {} + raw[DTTM_ALIAS] = [100, 200, 300, 100, 200, 300, 100, 200, 300] + raw['groupA'] = ['a1', 'a1', 'a1', 'b1', 'b1', 'b1', 'c1', 'c1', 'c1'] + raw['groupB'] = ['a2', 'a2', 'a2', 'b2', 'b2', 'b2', 'c2', 'c2', 'c2'] + raw['groupC'] = ['a3', 'a3', 'a3', 'b3', 'b3', 'b3', 'c3', 'c3', 'c3'] + raw['metric1'] = [1, 2, 3, 4, 5, 6, 7, 8, 9] + raw['metric2'] = [10, 20, 30, 40, 50, 60, 70, 80, 90] + raw['metric3'] = [100, 200, 300, 400, 500, 600, 700, 800, 900] + df = pd.DataFrame(raw) + groups = ['groupA', 'groupB', 'groupC'] + test_viz = viz.PartitionViz(Mock(), {'groupby': groups}) + + def return_args(df_drop, aggregate): + return df_drop + test_viz.process_data = Mock(side_effect=return_args) + levels = test_viz.levels_for_time(groups, df) + self.assertEqual(4, len(levels)) + cols = [DTTM_ALIAS, 'metric1', 'metric2', 'metric3'] + self.assertEqual(sorted(cols), sorted(levels[0].columns.tolist())) + cols += ['groupA'] + self.assertEqual(sorted(cols), sorted(levels[1].columns.tolist())) + cols += ['groupB'] + self.assertEqual(sorted(cols), sorted(levels[2].columns.tolist())) + cols += ['groupC'] + self.assertEqual(sorted(cols), sorted(levels[3].columns.tolist())) + self.assertEqual(4, len(test_viz.process_data.mock_calls)) + + def test_nest_values_returns_hierarchy(self): + raw = {} + raw['groupA'] = ['a1', 'a1', 'a1', 'b1', 'b1', 'b1', 'c1', 'c1', 'c1'] + raw['groupB'] = ['a2', 'a2', 'a2', 'b2', 'b2', 'b2', 'c2', 'c2', 'c2'] + raw['groupC'] = ['a3', 'a3', 'a3', 'b3', 'b3', 'b3', 'c3', 'c3', 'c3'] + raw['metric1'] = [1, 2, 3, 4, 5, 6, 7, 8, 9] + raw['metric2'] = [10, 20, 30, 40, 50, 60, 70, 80, 90] + raw['metric3'] = [100, 200, 300, 400, 500, 600, 700, 800, 900] + df = pd.DataFrame(raw) + test_viz = viz.PartitionViz(Mock(), {}) + groups = ['groupA', 'groupB', 'groupC'] + levels = test_viz.levels_for('agg_sum', groups, df) + nest = test_viz.nest_values(levels) + self.assertEqual(3, len(nest)) + for i in range(0, 3): + self.assertEqual('metric' + str(i + 1), nest[i]['name']) + self.assertEqual(3, len(nest[0]['children'])) + self.assertEqual(1, len(nest[0]['children'][0]['children'])) + self.assertEqual(1, len(nest[0]['children'][0]['children'][0]['children'])) + + def test_nest_procs_returns_hierarchy(self): + raw = {} + raw[DTTM_ALIAS] = [100, 200, 300, 100, 200, 300, 100, 200, 300] + raw['groupA'] = ['a1', 'a1', 'a1', 'b1', 'b1', 'b1', 'c1', 'c1', 'c1'] + raw['groupB'] = ['a2', 'a2', 'a2', 'b2', 'b2', 'b2', 'c2', 'c2', 'c2'] + raw['groupC'] = ['a3', 'a3', 'a3', 'b3', 'b3', 'b3', 'c3', 'c3', 'c3'] + raw['metric1'] = [1, 2, 3, 4, 5, 6, 7, 8, 9] + raw['metric2'] = [10, 20, 30, 40, 50, 60, 70, 80, 90] + raw['metric3'] = [100, 200, 300, 400, 500, 600, 700, 800, 900] + df = pd.DataFrame(raw) + test_viz = viz.PartitionViz(Mock(), {}) + groups = ['groupA', 'groupB', 'groupC'] + metrics = ['metric1', 'metric2', 'metric3'] + procs = {} + for i in range(0, 4): + df_drop = df.drop(groups[i:], 1) + pivot = df_drop.pivot_table( + index=DTTM_ALIAS, + columns=groups[:i], + values=metrics, + ) + procs[i] = pivot + nest = test_viz.nest_procs(procs) + self.assertEqual(3, len(nest)) + for i in range(0, 3): + self.assertEqual('metric' + str(i + 1), nest[i]['name']) + self.assertEqual(None, nest[i].get('val')) + self.assertEqual(3, len(nest[0]['children'])) + self.assertEqual(3, len(nest[0]['children'][0]['children'])) + self.assertEqual(1, len(nest[0]['children'][0]['children'][0]['children'])) + self.assertEqual(1, + len(nest[0]['children'] + [0]['children'] + [0]['children'] + [0]['children']) + ) + + def test_get_data_calls_correct_method(self): + test_viz = viz.PartitionViz(Mock(), {}) + df = Mock() + with self.assertRaises(ValueError): + test_viz.get_data(df) + test_viz.levels_for = Mock(return_value=1) + test_viz.nest_values = Mock(return_value=1) + test_viz.form_data['groupby'] = ['groups'] + test_viz.form_data['time_series_option'] = 'not_time' + test_viz.get_data(df) + self.assertEqual('agg_sum', test_viz.levels_for.mock_calls[0][1][0]) + test_viz.form_data['time_series_option'] = 'agg_sum' + test_viz.get_data(df) + self.assertEqual('agg_sum', test_viz.levels_for.mock_calls[1][1][0]) + test_viz.form_data['time_series_option'] = 'agg_mean' + test_viz.get_data(df) + self.assertEqual('agg_mean', test_viz.levels_for.mock_calls[2][1][0]) + test_viz.form_data['time_series_option'] = 'point_diff' + test_viz.levels_for_diff = Mock(return_value=1) + test_viz.get_data(df) + self.assertEqual('point_diff', test_viz.levels_for_diff.mock_calls[0][1][0]) + test_viz.form_data['time_series_option'] = 'point_percent' + test_viz.get_data(df) + self.assertEqual('point_percent', test_viz.levels_for_diff.mock_calls[1][1][0]) + test_viz.form_data['time_series_option'] = 'point_factor' + test_viz.get_data(df) + self.assertEqual('point_factor', test_viz.levels_for_diff.mock_calls[2][1][0]) + test_viz.levels_for_time = Mock(return_value=1) + test_viz.nest_procs = Mock(return_value=1) + test_viz.form_data['time_series_option'] = 'adv_anal' + test_viz.get_data(df) + self.assertEqual(1, len(test_viz.levels_for_time.mock_calls)) + self.assertEqual(1, len(test_viz.nest_procs.mock_calls)) + test_viz.form_data['time_series_option'] = 'time_series' + test_viz.get_data(df) + self.assertEqual('agg_sum', test_viz.levels_for.mock_calls[3][1][0]) + self.assertEqual(7, len(test_viz.nest_values.mock_calls))