diff --git a/cognite/client/data_classes/_base.py b/cognite/client/data_classes/_base.py index 47cc0b3ff2..beba8d901e 100644 --- a/cognite/client/data_classes/_base.py +++ b/cognite/client/data_classes/_base.py @@ -172,6 +172,17 @@ def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = """ return fast_dict_load(cls, resource, cognite_client=cognite_client) + @classmethod + def _load_list( + cls, resource: dict[str, Any] | list[dict[str, Any]], cognite_client: CogniteClient | None = None + ) -> list[Self]: + if isinstance(resource, dict): + return [cls._load(resource, cognite_client)] + elif isinstance(resource, list): + return [cls._load(res, cognite_client) for res in resource if isinstance(res, dict)] + else: + raise TypeError("Expected a dict or a list of dicts.") + class UnknownCogniteObject(CogniteObject): def __init__(self, data: dict[str, Any]) -> None: