2929 PopDatesetMetric ,
3030 SimpleMetric ,
3131)
32- from gooddata_sdk .utils import IdObjType , SideLoads , load_all_entities , ref_extract , ref_extract_obj_id , safeget
32+ from gooddata_sdk .utils import (
33+ IdObjType ,
34+ ObjRefType ,
35+ SideLoads ,
36+ load_all_entities ,
37+ ref_extract ,
38+ ref_extract_obj_id ,
39+ safeget ,
40+ )
3341
3442#
3543# Conversion from types stored in visualization into the gooddata_afm_client models.
@@ -166,23 +174,30 @@ def _convert_filter_to_computable(filter_obj: dict[str, Any]) -> Filter:
166174 # fallback to use URIs; SDK may be able to create filter with attr elements as uris...
167175 in_values = f ["in" ]["values" ] if "values" in f ["in" ] else f ["in" ]["uris" ]
168176
169- return PositiveAttributeFilter (label = ref_extract (f ["displayForm" ]), values = in_values )
177+ return PositiveAttributeFilter (
178+ label = ref_extract (f ["displayForm" ], ObjRefType .LABEL ),
179+ values = in_values ,
180+ )
170181
171182 elif "negativeAttributeFilter" in filter_obj :
172183 f = filter_obj ["negativeAttributeFilter" ]
173184 # fallback to use URIs; SDK may be able to create filter with attr elements as uris...
174185 not_in_values = f ["notIn" ]["values" ] if "values" in f ["notIn" ] else f ["notIn" ]["uris" ]
175186
176- return NegativeAttributeFilter (label = ref_extract (f ["displayForm" ]), values = not_in_values )
187+ return NegativeAttributeFilter (
188+ label = ref_extract (f ["displayForm" ], ObjRefType .LABEL ),
189+ values = not_in_values ,
190+ )
191+
177192 elif "relativeDateFilter" in filter_obj :
178193 f = filter_obj ["relativeDateFilter" ]
179194
180195 # there is filter present, but uses all time
181196 if ("from" not in f ) or ("to" not in f ):
182- return AllTimeFilter (ref_extract_obj_id (f ["dataSet" ]))
197+ return AllTimeFilter (ref_extract_obj_id (f ["dataSet" ], ObjRefType . DATASET ))
183198
184199 return RelativeDateFilter (
185- dataset = ref_extract_obj_id (f ["dataSet" ]),
200+ dataset = ref_extract_obj_id (f ["dataSet" ], ObjRefType . DATASET ),
186201 granularity = _GRANULARITY_CONVERSION [f ["granularity" ]],
187202 from_shift = f ["from" ],
188203 to_shift = f ["to" ],
@@ -191,7 +206,12 @@ def _convert_filter_to_computable(filter_obj: dict[str, Any]) -> Filter:
191206 elif "absoluteDateFilter" in filter_obj :
192207 f = filter_obj ["absoluteDateFilter" ]
193208
194- return AbsoluteDateFilter (dataset = ref_extract_obj_id (f ["dataSet" ]), from_date = f ["from" ], to_date = f ["to" ])
209+ return AbsoluteDateFilter (
210+ dataset = ref_extract_obj_id (f ["dataSet" ], ObjRefType .DATASET ),
211+ from_date = f ["from" ],
212+ to_date = f ["to" ],
213+ )
214+
195215 elif "measureValueFilter" in filter_obj :
196216 f = filter_obj ["measureValueFilter" ]
197217
@@ -211,6 +231,7 @@ def _convert_filter_to_computable(filter_obj: dict[str, Any]) -> Filter:
211231 values = c ["value" ],
212232 treat_nulls_as = treat_values_as_null ,
213233 )
234+
214235 elif "range" in condition :
215236 c = condition ["range" ]
216237 treat_values_as_null = c .get ("treatNullValuesAs" )
@@ -220,6 +241,7 @@ def _convert_filter_to_computable(filter_obj: dict[str, Any]) -> Filter:
220241 values = (c ["from" ], c ["to" ]),
221242 treat_nulls_as = treat_values_as_null ,
222243 )
244+
223245 elif "rankingFilter" in filter_obj :
224246 f = filter_obj ["rankingFilter" ]
225247 # mypy is unable to automatically convert Union[str, ObjId] to Union[str, ObjId, Attribute, Metric]
@@ -254,15 +276,20 @@ def _convert_metric_to_computable(metric: dict[str, Any]) -> Metric:
254276
255277 return SimpleMetric (
256278 local_id = local_id ,
257- item = ref_extract_obj_id (d ["item" ]),
279+ item = ref_extract_obj_id (d ["item" ], ObjRefType . FACT ),
258280 aggregation = aggregation ,
259281 compute_ratio = compute_ratio ,
260282 filters = filters ,
261283 )
262284
263285 elif "popMeasureDefinition" in measure_def :
264286 d = measure_def ["popMeasureDefinition" ]
265- date_attributes = [PopDate (attribute = ref_extract_obj_id (d ["popAttribute" ]), periods_ago = 1 )]
287+ date_attributes = [
288+ PopDate (
289+ attribute = ref_extract_obj_id (d ["popAttribute" ], ObjRefType .ATTRIBUTE ),
290+ periods_ago = 1 ,
291+ ),
292+ ]
266293
267294 return PopDateMetric (
268295 local_id = local_id ,
@@ -273,7 +300,9 @@ def _convert_metric_to_computable(metric: dict[str, Any]) -> Metric:
273300 elif "previousPeriodMeasure" in measure_def :
274301 d = measure_def ["previousPeriodMeasure" ]
275302
276- date_datasets = [PopDateDataset (ref_extract (dd ["dataSet" ]), dd ["periodsAgo" ]) for dd in d ["dateDataSets" ]]
303+ date_datasets = [
304+ PopDateDataset (ref_extract (dd ["dataSet" ], ObjRefType .DATASET ), dd ["periodsAgo" ]) for dd in d ["dateDataSets" ]
305+ ]
277306
278307 return PopDatesetMetric (
279308 local_id = local_id ,
@@ -394,7 +423,11 @@ def show_all_values(self) -> Optional[bool]:
394423 return self ._a .get ("showAllValues" )
395424
396425 def as_computable (self ) -> Attribute :
397- return Attribute (local_id = self .local_id , label = ref_extract (self .label ), show_all_values = self .show_all_values )
426+ return Attribute (
427+ local_id = self .local_id ,
428+ label = ref_extract (self .label , ObjRefType .LABEL ),
429+ show_all_values = self .show_all_values ,
430+ )
398431
399432 def __str__ (self ) -> str :
400433 return self .__repr__ ()
0 commit comments