mirror of
https://github.com/apache/superset.git
synced 2026-04-07 10:31:50 +00:00
chore: Deprecates viz.py (#23934)
This commit is contained in:
committed by
GitHub
parent
3dc4de4216
commit
b7689fbe53
142
superset/viz.py
142
superset/viz.py
@@ -131,6 +131,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
cache_type = "df"
|
||||
enforce_numerical_metrics = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def __init__(
|
||||
self,
|
||||
datasource: "BaseDatasource",
|
||||
@@ -170,9 +171,11 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
self.rejected_filters: List[Dict[str, str]] = []
|
||||
|
||||
@property
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def force_cached(self) -> bool:
|
||||
return self._force_cached
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def process_metrics(self) -> None:
|
||||
# metrics in Viz is order sensitive, so metric_dict should be
|
||||
# OrderedDict
|
||||
@@ -191,6 +194,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
self.metric_labels = list(self.metric_dict.keys())
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def handle_js_int_overflow(
|
||||
data: Dict[str, List[Dict[str, Any]]]
|
||||
) -> Dict[str, List[Dict[str, Any]]]:
|
||||
@@ -203,6 +207,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
record[k] = str(v)
|
||||
return data
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def run_extra_queries(self) -> None:
|
||||
"""Lifecycle method to use when more than one query is needed
|
||||
|
||||
@@ -225,6 +230,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
the underlying query(ies).
|
||||
"""
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def apply_rolling(self, df: pd.DataFrame) -> pd.DataFrame:
|
||||
rolling_type = self.form_data.get("rolling_type")
|
||||
rolling_periods = int(self.form_data.get("rolling_periods") or 0)
|
||||
@@ -252,6 +258,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
)
|
||||
return df
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_samples(self) -> Dict[str, Any]:
|
||||
query_obj = self.query_obj()
|
||||
query_obj.update(
|
||||
@@ -273,6 +280,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
"coltypes": payload.get("coltypes"),
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_df(self, query_obj: Optional[QueryObjectDict] = None) -> pd.DataFrame:
|
||||
"""Returns a pandas dataframe based on the query object"""
|
||||
if not query_obj:
|
||||
@@ -322,6 +330,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
df.replace([np.inf, -np.inf], np.nan, inplace=True)
|
||||
return df
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def df_metrics_to_num(self, df: pd.DataFrame) -> None:
|
||||
"""Converting metrics to numeric when pandas.read_sql cannot"""
|
||||
metrics = self.metric_labels
|
||||
@@ -329,12 +338,14 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
if dtype.type == np.object_ and col in metrics:
|
||||
df[col] = pd.to_numeric(df[col], errors="coerce")
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def process_query_filters(self) -> None:
|
||||
utils.convert_legacy_filters_into_adhoc(self.form_data)
|
||||
merge_extra_filters(self.form_data)
|
||||
utils.split_adhoc_filters_into_base_filters(self.form_data)
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def dedup_columns(*columns_args: Optional[List[Column]]) -> List[Column]:
|
||||
# dedup groupby and columns while preserving order
|
||||
labels: List[str] = []
|
||||
@@ -346,6 +357,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
deduped_columns.append(column)
|
||||
return deduped_columns
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict: # pylint: disable=too-many-locals
|
||||
"""Building a query object"""
|
||||
self.process_query_filters()
|
||||
@@ -428,6 +440,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
}
|
||||
|
||||
@property
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def cache_timeout(self) -> int:
|
||||
if self.form_data.get("cache_timeout") is not None:
|
||||
return int(self.form_data["cache_timeout"])
|
||||
@@ -442,11 +455,13 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
return config["DATA_CACHE_CONFIG"]["CACHE_DEFAULT_TIMEOUT"]
|
||||
return config["CACHE_DEFAULT_TIMEOUT"]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_json(self) -> str:
|
||||
return json.dumps(
|
||||
self.get_payload(), default=utils.json_int_dttm_ser, ignore_nan=True
|
||||
)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def cache_key(self, query_obj: QueryObjectDict, **extra: Any) -> str:
|
||||
"""
|
||||
The cache key is made out of the key/values in `query_obj`, plus any
|
||||
@@ -475,6 +490,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
json_data = self.json_dumps(cache_dict, sort_keys=True)
|
||||
return md5_sha_from_str(json_data)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_payload(self, query_obj: Optional[QueryObjectDict] = None) -> VizPayload:
|
||||
"""Returns a payload of metadata and data"""
|
||||
|
||||
@@ -515,6 +531,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
payload["colnames"] = list(df.columns)
|
||||
return payload
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_df_payload( # pylint: disable=too-many-statements
|
||||
self, query_obj: Optional[QueryObjectDict] = None, **kwargs: Any
|
||||
) -> Dict[str, Any]:
|
||||
@@ -639,6 +656,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def json_dumps(query_obj: Any, sort_keys: bool = False) -> str:
|
||||
return json.dumps(
|
||||
query_obj,
|
||||
@@ -648,6 +666,7 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def has_error(payload: VizPayload) -> bool:
|
||||
return (
|
||||
payload.get("status") == QueryStatus.FAILED
|
||||
@@ -655,10 +674,12 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
or bool(payload.get("errors"))
|
||||
)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def payload_json_and_has_error(self, payload: VizPayload) -> Tuple[str, bool]:
|
||||
return self.json_dumps(payload), self.has_error(payload)
|
||||
|
||||
@property
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def data(self) -> Dict[str, Any]:
|
||||
"""This is the data object serialized to the js layer"""
|
||||
content = {
|
||||
@@ -669,18 +690,22 @@ class BaseViz: # pylint: disable=too-many-public-methods
|
||||
}
|
||||
return content
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_csv(self) -> Optional[str]:
|
||||
df = self.get_df_payload()["df"] # leverage caching logic
|
||||
include_index = not isinstance(df.index, pd.RangeIndex)
|
||||
return csv.df_to_escaped_csv(df, index=include_index, **config["CSV_EXPORT"])
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData: # pylint: disable=no-self-use
|
||||
return df.to_dict(orient="records")
|
||||
|
||||
@property
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def json_data(self) -> str:
|
||||
return json.dumps(self.data)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def raise_for_access(self) -> None:
|
||||
"""
|
||||
Raise an exception if the user cannot access the resource.
|
||||
@@ -701,6 +726,7 @@ class TableViz(BaseViz):
|
||||
is_timeseries = False
|
||||
enforce_numerical_metrics = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def process_metrics(self) -> None:
|
||||
"""Process form data and store parsed column configs.
|
||||
1. Determine query mode based on form_data params.
|
||||
@@ -756,6 +782,7 @@ class TableViz(BaseViz):
|
||||
self.percent_columns = percent_columns
|
||||
self.is_timeseries = self.should_be_timeseries()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def should_be_timeseries(self) -> bool:
|
||||
# TODO handle datasource-type-specific code in datasource
|
||||
conditions_met = (
|
||||
@@ -771,6 +798,7 @@ class TableViz(BaseViz):
|
||||
)
|
||||
return bool(self.form_data.get("include_time"))
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
if self.query_mode == QueryMode.RAW:
|
||||
@@ -801,6 +829,7 @@ class TableViz(BaseViz):
|
||||
]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
"""
|
||||
Transform the query result to the table representation.
|
||||
@@ -833,6 +862,7 @@ class TableViz(BaseViz):
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def json_dumps(query_obj: Any, sort_keys: bool = False) -> str:
|
||||
return json.dumps(
|
||||
query_obj,
|
||||
@@ -851,6 +881,7 @@ class TimeTableViz(BaseViz):
|
||||
credits = 'a <a href="https://github.com/airbnb/superset">Superset</a> original'
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
|
||||
@@ -868,6 +899,7 @@ class TimeTableViz(BaseViz):
|
||||
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -897,6 +929,7 @@ class PivotTableViz(BaseViz):
|
||||
is_timeseries = False
|
||||
enforce_numerical_metrics = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
groupby = self.form_data.get("groupby")
|
||||
@@ -938,6 +971,7 @@ class PivotTableViz(BaseViz):
|
||||
return query_obj
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_aggfunc(
|
||||
metric: str, df: pd.DataFrame, form_data: Dict[str, Any]
|
||||
) -> Union[str, Callable[[Any], Any]]:
|
||||
@@ -950,6 +984,7 @@ class PivotTableViz(BaseViz):
|
||||
return aggfunc if aggfunc in ("min", "max") else "max"
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def _format_datetime(value: Union[pd.Timestamp, datetime, date, str]) -> str:
|
||||
"""
|
||||
Format a timestamp in such a way that the viz will be able to apply
|
||||
@@ -974,6 +1009,7 @@ class PivotTableViz(BaseViz):
|
||||
# fallback in case something incompatible is returned
|
||||
return cast(str, value)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1038,6 +1074,7 @@ class TreemapViz(BaseViz):
|
||||
credits = '<a href="https://d3js.org">d3.js</a>'
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
sort_by = self.form_data.get("timeseries_limit_metric")
|
||||
@@ -1051,6 +1088,7 @@ class TreemapViz(BaseViz):
|
||||
]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def _nest(self, metric: str, df: pd.DataFrame) -> List[Dict[str, Any]]:
|
||||
nlevels = df.index.nlevels
|
||||
if nlevels == 1:
|
||||
@@ -1062,6 +1100,7 @@ class TreemapViz(BaseViz):
|
||||
]
|
||||
return result
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1083,6 +1122,7 @@ class CalHeatmapViz(BaseViz):
|
||||
credits = "<a href=https://github.com/wa0x6e/cal-heatmap>cal-heatmap</a>"
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData: # pylint: disable=too-many-locals
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1136,6 +1176,7 @@ class CalHeatmapViz(BaseViz):
|
||||
"range": range_,
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["metrics"] = self.form_data.get("metrics")
|
||||
@@ -1173,6 +1214,7 @@ class BubbleViz(NVD3Viz):
|
||||
verbose_name = _("Bubble Chart")
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["groupby"] = [self.form_data.get("entity")]
|
||||
@@ -1197,6 +1239,7 @@ class BubbleViz(NVD3Viz):
|
||||
raise QueryObjectValidationError(_("Pick a metric for x, y and size"))
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1224,6 +1267,7 @@ class BulletViz(NVD3Viz):
|
||||
verbose_name = _("Bullet Chart")
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
form_data = self.form_data
|
||||
query_obj = super().query_obj()
|
||||
@@ -1236,6 +1280,7 @@ class BulletViz(NVD3Viz):
|
||||
raise QueryObjectValidationError(_("Pick a metric to display"))
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1255,6 +1300,7 @@ class BigNumberViz(BaseViz):
|
||||
credits = 'a <a href="https://github.com/airbnb/superset">Superset</a> original'
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
metric = self.form_data.get("metric")
|
||||
@@ -1264,6 +1310,7 @@ class BigNumberViz(BaseViz):
|
||||
self.form_data["metric"] = metric
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1289,6 +1336,7 @@ class BigNumberTotalViz(BaseViz):
|
||||
credits = 'a <a href="https://github.com/airbnb/superset">Superset</a> original'
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
metric = self.form_data.get("metric")
|
||||
@@ -1312,6 +1360,7 @@ class NVD3TimeSeriesViz(NVD3Viz):
|
||||
is_timeseries = True
|
||||
pivot_fill_value: Optional[int] = None
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
sort_by = self.form_data.get(
|
||||
@@ -1325,6 +1374,7 @@ class NVD3TimeSeriesViz(NVD3Viz):
|
||||
query_obj["orderby"] = [(sort_by, is_asc)]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def to_series( # pylint: disable=too-many-branches
|
||||
self, df: pd.DataFrame, classed: str = "", title_suffix: str = ""
|
||||
) -> List[Dict[str, Any]]:
|
||||
@@ -1386,6 +1436,7 @@ class NVD3TimeSeriesViz(NVD3Viz):
|
||||
chart_data.append(data)
|
||||
return chart_data
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def process_data(self, df: pd.DataFrame, aggregate: bool = False) -> VizData:
|
||||
if self.form_data.get("granularity") == "all":
|
||||
raise QueryObjectValidationError(
|
||||
@@ -1429,6 +1480,7 @@ class NVD3TimeSeriesViz(NVD3Viz):
|
||||
|
||||
return df
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def run_extra_queries(self) -> None:
|
||||
time_compare = self.form_data.get("time_compare") or []
|
||||
# backwards compatibility
|
||||
@@ -1463,6 +1515,7 @@ class NVD3TimeSeriesViz(NVD3Viz):
|
||||
df2 = self.process_data(df2)
|
||||
self._extra_chart_data.append((label, df2))
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
comparison_type = self.form_data.get("comparison_type") or "values"
|
||||
df = self.process_data(df)
|
||||
@@ -1521,9 +1574,11 @@ class MultiLineViz(NVD3Viz):
|
||||
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
return {}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
# pylint: disable=import-outside-toplevel,too-many-locals
|
||||
multiline_fd = self.form_data
|
||||
@@ -1599,6 +1654,7 @@ class NVD3DualLineViz(NVD3Viz):
|
||||
sort_series = False
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
m1 = self.form_data.get("metric")
|
||||
@@ -1614,6 +1670,7 @@ class NVD3DualLineViz(NVD3Viz):
|
||||
query_obj["metrics"] = [m1, m2]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def to_series(self, df: pd.DataFrame, classed: str = "") -> List[Dict[str, Any]]:
|
||||
cols = []
|
||||
for col in df.columns:
|
||||
@@ -1646,6 +1703,7 @@ class NVD3DualLineViz(NVD3Viz):
|
||||
)
|
||||
return chart_data
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1680,11 +1738,13 @@ class NVD3TimePivotViz(NVD3TimeSeriesViz):
|
||||
sort_series = True
|
||||
verbose_name = _("Time Series - Period Pivot")
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["metrics"] = [self.form_data.get("metric")]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1745,6 +1805,7 @@ class HistogramViz(BaseViz):
|
||||
verbose_name = _("Histogram")
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
"""Returns the query object for this visualization"""
|
||||
query_obj = super().query_obj()
|
||||
@@ -1762,6 +1823,7 @@ class HistogramViz(BaseViz):
|
||||
query_obj["metrics"] = None
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def labelify(self, keys: Union[List[str], str], column: str) -> str:
|
||||
if isinstance(keys, str):
|
||||
keys = [keys]
|
||||
@@ -1772,6 +1834,7 @@ class HistogramViz(BaseViz):
|
||||
labels = [column] + labels
|
||||
return "__".join(labels)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
"""Returns the chart data"""
|
||||
if df.empty:
|
||||
@@ -1803,6 +1866,7 @@ class DistributionBarViz(BaseViz):
|
||||
verbose_name = _("Distribution - Bar Chart")
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
if len(query_obj["groupby"]) < len(self.form_data.get("groupby") or []) + len(
|
||||
@@ -1833,6 +1897,7 @@ class DistributionBarViz(BaseViz):
|
||||
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData: # pylint: disable=too-many-locals
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1894,6 +1959,7 @@ class SunburstViz(BaseViz):
|
||||
'@<a href="https://bl.ocks.org/kerryrodden/7090426">bl.ocks.org</a>'
|
||||
)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1918,6 +1984,7 @@ class SunburstViz(BaseViz):
|
||||
df = df[cols]
|
||||
return df.to_numpy().tolist()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["metrics"] = [self.form_data["metric"]]
|
||||
@@ -1938,6 +2005,7 @@ class SankeyViz(BaseViz):
|
||||
is_timeseries = False
|
||||
credits = '<a href="https://www.npmjs.com/package/d3-sankey">d3-sankey on npm</a>'
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
if len(query_obj["groupby"]) != 2:
|
||||
@@ -1949,6 +2017,7 @@ class SankeyViz(BaseViz):
|
||||
query_obj["orderby"] = [(query_obj["metrics"][0], False)]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -1970,10 +2039,12 @@ class SankeyViz(BaseViz):
|
||||
for row in recs:
|
||||
hierarchy[row["source"]].add(row["target"])
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def find_cycle(graph: Dict[str, Set[str]]) -> Optional[Tuple[str, str]]:
|
||||
"""Whether there's a cycle in a directed graph"""
|
||||
path = set()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def visit(vertex: str) -> Optional[Tuple[str, str]]:
|
||||
path.add(vertex)
|
||||
for neighbour in graph.get(vertex, ()):
|
||||
@@ -2008,6 +2079,7 @@ class ChordViz(BaseViz):
|
||||
credits = '<a href="https://github.com/d3/d3-chord">Bostock</a>'
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["groupby"] = [
|
||||
@@ -2019,6 +2091,7 @@ class ChordViz(BaseViz):
|
||||
query_obj["orderby"] = [(query_obj["metrics"][0], False)]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -2047,6 +2120,7 @@ class CountryMapViz(BaseViz):
|
||||
is_timeseries = False
|
||||
credits = "From bl.ocks.org By john-guerra"
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
metric = self.form_data.get("metric")
|
||||
@@ -2061,6 +2135,7 @@ class CountryMapViz(BaseViz):
|
||||
query_obj["groupby"] = [entity]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -2082,6 +2157,7 @@ class WorldMapViz(BaseViz):
|
||||
is_timeseries = False
|
||||
credits = 'datamaps on <a href="https://www.npmjs.com/package/datamaps">npm</a>'
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["groupby"] = [self.form_data["entity"]]
|
||||
@@ -2089,6 +2165,7 @@ class WorldMapViz(BaseViz):
|
||||
query_obj["orderby"] = [(query_obj["metrics"][0], False)]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -2135,7 +2212,6 @@ class WorldMapViz(BaseViz):
|
||||
return data
|
||||
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
class FilterBoxViz(BaseViz):
|
||||
|
||||
"""A multi filter, multi-choice filter box to make dashboards interactive"""
|
||||
@@ -2148,9 +2224,11 @@ class FilterBoxViz(BaseViz):
|
||||
cache_type = "get_data"
|
||||
filter_row_limit = 1000
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
return {}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def run_extra_queries(self) -> None:
|
||||
query_obj = super().query_obj()
|
||||
filters = self.form_data.get("filter_configs") or []
|
||||
@@ -2175,6 +2253,7 @@ class FilterBoxViz(BaseViz):
|
||||
df = self.get_df_payload(query_obj=query_obj).get("df")
|
||||
self.dataframes[col] = df
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
filters = self.form_data.get("filter_configs") or []
|
||||
data = {}
|
||||
@@ -2201,6 +2280,7 @@ class FilterBoxViz(BaseViz):
|
||||
data[col] = []
|
||||
return data
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_query_context_factory(self) -> QueryContextFactory:
|
||||
if self.query_context_factory is None:
|
||||
# pylint: disable=import-outside-toplevel
|
||||
@@ -2226,6 +2306,7 @@ class ParallelCoordinatesViz(BaseViz):
|
||||
)
|
||||
is_timeseries = False
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["groupby"] = [self.form_data.get("series")]
|
||||
@@ -2240,6 +2321,7 @@ class ParallelCoordinatesViz(BaseViz):
|
||||
]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
return df.to_dict(orient="records")
|
||||
|
||||
@@ -2256,6 +2338,7 @@ class HeatmapViz(BaseViz):
|
||||
"bl.ocks.org</a>"
|
||||
)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["metrics"] = [self.form_data.get("metric")]
|
||||
@@ -2269,6 +2352,7 @@ class HeatmapViz(BaseViz):
|
||||
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -2326,6 +2410,7 @@ class MapboxViz(BaseViz):
|
||||
is_timeseries = False
|
||||
credits = "<a href=https://www.mapbox.com/mapbox-gl-js/api/>Mapbox GL JS</a>"
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
label_col = self.form_data.get("mapbox_label")
|
||||
@@ -2393,6 +2478,7 @@ class MapboxViz(BaseViz):
|
||||
)
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -2473,9 +2559,11 @@ class DeckGLMultiLayer(BaseViz):
|
||||
is_timeseries = False
|
||||
credits = '<a href="https://uber.github.io/deck.gl/">deck.gl</a>'
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
return {}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
# Late imports to avoid circular import issues
|
||||
# pylint: disable=import-outside-toplevel
|
||||
@@ -2498,14 +2586,17 @@ class BaseDeckGLViz(BaseViz):
|
||||
credits = '<a href="https://uber.github.io/deck.gl/">deck.gl</a>'
|
||||
spatial_control_keys: List[str] = []
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_metrics(self) -> List[str]:
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
self.metric = self.form_data.get("size")
|
||||
return [self.metric] if self.metric else []
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def process_spatial_query_obj(self, key: str, group_by: List[str]) -> None:
|
||||
group_by.extend(self.get_spatial_columns(key))
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_spatial_columns(self, key: str) -> List[str]:
|
||||
spatial = self.form_data.get(key)
|
||||
if spatial is None:
|
||||
@@ -2522,6 +2613,7 @@ class BaseDeckGLViz(BaseViz):
|
||||
return []
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def parse_coordinates(latlog: Any) -> Optional[Tuple[float, float]]:
|
||||
if not latlog:
|
||||
return None
|
||||
@@ -2534,14 +2626,17 @@ class BaseDeckGLViz(BaseViz):
|
||||
) from ex
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def reverse_geohash_decode(geohash_code: str) -> Tuple[str, str]:
|
||||
lat, lng = geohash.decode(geohash_code)
|
||||
return (lng, lat)
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def reverse_latlong(df: pd.DataFrame, key: str) -> None:
|
||||
df[key] = [tuple(reversed(o)) for o in df[key] if isinstance(o, (list, tuple))]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def process_spatial_data_obj(self, key: str, df: pd.DataFrame) -> pd.DataFrame:
|
||||
spatial = self.form_data.get(key)
|
||||
if spatial is None:
|
||||
@@ -2574,6 +2669,7 @@ class BaseDeckGLViz(BaseViz):
|
||||
)
|
||||
return df
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def add_null_filters(self) -> None:
|
||||
spatial_columns = set()
|
||||
for key in self.spatial_control_keys:
|
||||
@@ -2593,6 +2689,7 @@ class BaseDeckGLViz(BaseViz):
|
||||
)
|
||||
self.form_data["adhoc_filters"].append(filter_)
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
# add NULL filters
|
||||
if self.form_data.get("filter_nulls", True):
|
||||
@@ -2627,10 +2724,12 @@ class BaseDeckGLViz(BaseViz):
|
||||
query_obj["columns"] = group_by
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_js_columns(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
cols = self.form_data.get("js_columns") or []
|
||||
return {col: data.get(col) for col in cols}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -2653,6 +2752,7 @@ class BaseDeckGLViz(BaseViz):
|
||||
"metricLabels": self.metric_labels,
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
raise NotImplementedError()
|
||||
|
||||
@@ -2666,6 +2766,7 @@ class DeckScatterViz(BaseDeckGLViz):
|
||||
spatial_control_keys = ["spatial"]
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
self.is_timeseries = bool(
|
||||
@@ -2677,6 +2778,7 @@ class DeckScatterViz(BaseDeckGLViz):
|
||||
}
|
||||
return super().query_obj()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_metrics(self) -> List[str]:
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
self.metric = None
|
||||
@@ -2685,6 +2787,7 @@ class DeckScatterViz(BaseDeckGLViz):
|
||||
return [self.metric]
|
||||
return []
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
return {
|
||||
"metric": data.get(self.metric_label) if self.metric_label else None,
|
||||
@@ -2698,6 +2801,7 @@ class DeckScatterViz(BaseDeckGLViz):
|
||||
DTTM_ALIAS: data.get(DTTM_ALIAS),
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
self.metric_label = utils.get_metric_name(self.metric) if self.metric else None
|
||||
@@ -2718,12 +2822,14 @@ class DeckScreengrid(BaseDeckGLViz):
|
||||
spatial_control_keys = ["spatial"]
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
self.is_timeseries = bool(
|
||||
self.form_data.get("time_grain_sqla") or self.form_data.get("granularity")
|
||||
)
|
||||
return super().query_obj()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
return {
|
||||
"position": data.get("spatial"),
|
||||
@@ -2731,6 +2837,7 @@ class DeckScreengrid(BaseDeckGLViz):
|
||||
"__timestamp": data.get(DTTM_ALIAS) or data.get("__time"),
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
self.metric_label = ( # pylint: disable=attribute-defined-outside-init
|
||||
utils.get_metric_name(self.metric) if self.metric else None
|
||||
@@ -2746,12 +2853,14 @@ class DeckGrid(BaseDeckGLViz):
|
||||
verbose_name = _("Deck.gl - 3D Grid")
|
||||
spatial_control_keys = ["spatial"]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
return {
|
||||
"position": data.get("spatial"),
|
||||
"weight": (data.get(self.metric_label) if self.metric_label else None) or 1,
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
self.metric_label = ( # pylint: disable=attribute-defined-outside-init
|
||||
utils.get_metric_name(self.metric) if self.metric else None
|
||||
@@ -2759,6 +2868,7 @@ class DeckGrid(BaseDeckGLViz):
|
||||
return super().get_data(df)
|
||||
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def geohash_to_json(geohash_code: str) -> List[List[float]]:
|
||||
bbox = geohash.bbox(geohash_code)
|
||||
return [
|
||||
@@ -2784,6 +2894,7 @@ class DeckPathViz(BaseDeckGLViz):
|
||||
"geohash": geohash_to_json,
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
self.is_timeseries = bool(
|
||||
@@ -2800,6 +2911,7 @@ class DeckPathViz(BaseDeckGLViz):
|
||||
query_obj["columns"].append(line_col)
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
line_type = self.form_data["line_type"]
|
||||
deser = self.deser_map[line_type]
|
||||
@@ -2813,6 +2925,7 @@ class DeckPathViz(BaseDeckGLViz):
|
||||
data["__timestamp"] = data.get(DTTM_ALIAS) or data.get("__time")
|
||||
return data
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
self.metric_label = ( # pylint: disable=attribute-defined-outside-init
|
||||
utils.get_metric_name(self.metric) if self.metric else None
|
||||
@@ -2828,6 +2941,7 @@ class DeckPolygon(DeckPathViz):
|
||||
deck_viz_key = "polygon"
|
||||
verbose_name = _("Deck.gl - Polygon")
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
self.elevation = self.form_data.get("point_radius_fixed") or {
|
||||
@@ -2836,12 +2950,14 @@ class DeckPolygon(DeckPathViz):
|
||||
}
|
||||
return super().query_obj()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_metrics(self) -> List[str]:
|
||||
metrics = [self.form_data.get("metric")]
|
||||
if self.elevation.get("type") == "metric":
|
||||
metrics.append(self.elevation.get("value"))
|
||||
return [metric for metric in metrics if metric]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
super().get_properties(data)
|
||||
elevation = self.form_data["point_radius_fixed"]["value"]
|
||||
@@ -2862,12 +2978,14 @@ class DeckHex(BaseDeckGLViz):
|
||||
verbose_name = _("Deck.gl - 3D HEX")
|
||||
spatial_control_keys = ["spatial"]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
return {
|
||||
"position": data.get("spatial"),
|
||||
"weight": (data.get(self.metric_label) if self.metric_label else None) or 1,
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
self.metric_label = ( # pylint: disable=attribute-defined-outside-init
|
||||
utils.get_metric_name(self.metric) if self.metric else None
|
||||
@@ -2882,6 +3000,7 @@ class DeckGeoJson(BaseDeckGLViz):
|
||||
viz_type = "deck_geojson"
|
||||
verbose_name = _("Deck.gl - GeoJSON")
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
query_obj["columns"] += [self.form_data.get("geojson")]
|
||||
@@ -2889,6 +3008,7 @@ class DeckGeoJson(BaseDeckGLViz):
|
||||
query_obj["groupby"] = []
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
geojson = data[get_column_name(self.form_data["geojson"])]
|
||||
return json.loads(geojson)
|
||||
@@ -2903,12 +3023,14 @@ class DeckArc(BaseDeckGLViz):
|
||||
spatial_control_keys = ["start_spatial", "end_spatial"]
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
self.is_timeseries = bool(
|
||||
self.form_data.get("time_grain_sqla") or self.form_data.get("granularity")
|
||||
)
|
||||
return super().query_obj()
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_properties(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
dim = self.form_data.get("dimension")
|
||||
return {
|
||||
@@ -2918,12 +3040,13 @@ class DeckArc(BaseDeckGLViz):
|
||||
DTTM_ALIAS: data.get(DTTM_ALIAS),
|
||||
}
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
|
||||
return {
|
||||
"features": super().get_data(df)["features"], # type: ignore
|
||||
"features": super().get_data(df)["features"],
|
||||
"mapboxApiKey": config["MAPBOX_API_KEY"],
|
||||
}
|
||||
|
||||
@@ -2937,6 +3060,7 @@ class EventFlowViz(BaseViz):
|
||||
credits = 'from <a href="https://github.com/williaster/data-ui">@data-ui</a>'
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query = super().query_obj()
|
||||
form_data = self.form_data
|
||||
@@ -2956,6 +3080,7 @@ class EventFlowViz(BaseViz):
|
||||
|
||||
return query
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
return df.to_dict(orient="records")
|
||||
|
||||
@@ -2969,6 +3094,7 @@ class PairedTTestViz(BaseViz):
|
||||
sort_series = False
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
sort_by = self.form_data.get("timeseries_limit_metric")
|
||||
@@ -2982,6 +3108,7 @@ class PairedTTestViz(BaseViz):
|
||||
]
|
||||
return query_obj
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
"""
|
||||
Transform received data frame into an object of the form:
|
||||
@@ -3040,13 +3167,14 @@ class RoseViz(NVD3TimeSeriesViz):
|
||||
sort_series = False
|
||||
is_timeseries = True
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
|
||||
data = super().get_data(df)
|
||||
result: Dict[str, List[Dict[str, str]]] = {}
|
||||
for datum in data: # type: ignore
|
||||
for datum in data:
|
||||
key = datum["key"]
|
||||
for val in datum["values"]:
|
||||
timestamp = val["x"].value
|
||||
@@ -3073,6 +3201,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
viz_type = "partition"
|
||||
verbose_name = _("Partition Diagram")
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def query_obj(self) -> QueryObjectDict:
|
||||
query_obj = super().query_obj()
|
||||
time_op = self.form_data.get("time_series_option", "not_time")
|
||||
@@ -3081,6 +3210,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
return query_obj
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def levels_for(
|
||||
time_op: str, groups: List[str], df: pd.DataFrame
|
||||
) -> Dict[int, pd.Series]:
|
||||
@@ -3098,6 +3228,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
return levels
|
||||
|
||||
@staticmethod
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def levels_for_diff(
|
||||
time_op: str, groups: List[str], df: pd.DataFrame
|
||||
) -> Dict[int, pd.DataFrame]:
|
||||
@@ -3134,6 +3265,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
)
|
||||
return levels
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def levels_for_time(
|
||||
self, groups: List[str], df: pd.DataFrame
|
||||
) -> Dict[int, VizData]:
|
||||
@@ -3145,6 +3277,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
self.form_data["groupby"] = groups
|
||||
return procs
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def nest_values(
|
||||
self,
|
||||
levels: Dict[int, pd.DataFrame],
|
||||
@@ -3189,6 +3322,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
for i in dim_level.index
|
||||
]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def nest_procs(
|
||||
self,
|
||||
procs: Dict[int, pd.DataFrame],
|
||||
@@ -3223,6 +3357,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
for i in procs[level][dims].columns
|
||||
]
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_data(self, df: pd.DataFrame) -> VizData:
|
||||
if df.empty:
|
||||
return None
|
||||
@@ -3244,6 +3379,7 @@ class PartitionViz(NVD3TimeSeriesViz):
|
||||
return self.nest_values(levels)
|
||||
|
||||
|
||||
@deprecated(deprecated_in="3.0")
|
||||
def get_subclasses(cls: Type[BaseViz]) -> Set[Type[BaseViz]]:
|
||||
return set(cls.__subclasses__()).union(
|
||||
[sc for c in cls.__subclasses__() for sc in get_subclasses(c)]
|
||||
|
||||
Reference in New Issue
Block a user