def create(  # pylint: disable=too-many-arguments
     self,
     parent_result_type: ChartDataResultType,
     datasource: Optional[DatasourceDict] = None,
     extras: Optional[Dict[str, Any]] = None,
     row_limit: Optional[int] = None,
     time_range: Optional[str] = None,
     time_shift: Optional[str] = None,
     **kwargs: Any,
 ) -> QueryObject:
     datasource_model_instance = None
     if datasource:
         datasource_model_instance = self._convert_to_model(datasource)
     processed_extras = self._process_extras(extras)
     result_type = kwargs.setdefault("result_type", parent_result_type)
     row_limit = self._process_row_limit(row_limit, result_type)
     from_dttm, to_dttm = self._get_dttms(time_range, time_shift,
                                          processed_extras)
     kwargs["from_dttm"] = from_dttm
     kwargs["to_dttm"] = to_dttm
     return QueryObject(
         datasource=datasource_model_instance,
         extras=extras,
         row_limit=row_limit,
         time_range=time_range,
         time_shift=time_shift,
         **kwargs,
     )
Пример #2
0
 def __init__(  # pylint: disable=too-many-arguments
     self,
     datasource: Dict[str, Any],
     queries: List[Dict[str, Any]],
     force: bool = False,
     custom_cache_timeout: Optional[int] = None,
     result_type: Optional[utils.ChartDataResultType] = None,
     result_format: Optional[utils.ChartDataResultFormat] = None,
 ) -> None:
     self.datasource = ConnectorRegistry.get_datasource(
         str(datasource["type"]), int(datasource["id"]), db.session)
     self.queries = [QueryObject(**query_obj) for query_obj in queries]
     self.force = force
     self.custom_cache_timeout = custom_cache_timeout
     self.result_type = result_type or utils.ChartDataResultType.FULL
     self.result_format = result_format or utils.ChartDataResultFormat.JSON
Пример #3
0
 def __init__(
     self,
     datasource: DatasourceDict,
     queries: List[Dict[str, Any]],
     force: bool = False,
     custom_cache_timeout: Optional[int] = None,
     result_type: Optional[ChartDataResultType] = None,
     result_format: Optional[ChartDataResultFormat] = None,
 ) -> None:
     self.datasource = ConnectorRegistry.get_datasource(
         str(datasource["type"]), int(datasource["id"]), db.session)
     self.queries = [QueryObject(**query_obj) for query_obj in queries]
     self.force = force
     self.custom_cache_timeout = custom_cache_timeout
     self.result_type = result_type or ChartDataResultType.FULL
     self.result_format = result_format or ChartDataResultFormat.JSON
     self.cache_values = {
         "datasource": datasource,
         "queries": queries,
         "result_type": self.result_type,
         "result_format": self.result_format,
     }