Data Modeling
Data Models
Retrieve data models by id(s)
- DataModelsAPI.retrieve(ids: cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str]], inline_views: Literal[True]) DataModelList[View]
- DataModelsAPI.retrieve(ids: cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str]], inline_views: Literal[False] = False) DataModelList[ViewId]
Retrieve data_model(s) by id(s).
- Parameters
ids (DataModelIdentifier | Sequence[DataModelIdentifier]) – Data Model identifier(s).
inline_views (bool) – Whether to expand the referenced views inline in the returned result.
- Returns
Requested data model(s) or empty if none exist.
- Return type
Examples
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.data_models.retrieve(("mySpace", "myDataModel", "v1"))
List data models
- DataModelsAPI.list(inline_views: Literal[True], limit: int | None = DATA_MODELING_DEFAULT_LIMIT_READ, space: str | None = None, all_versions: bool = False, include_global: bool = False) DataModelList[View]
- DataModelsAPI.list(inline_views: Literal[False] = False, limit: int | None = DATA_MODELING_DEFAULT_LIMIT_READ, space: str | None = None, all_versions: bool = False, include_global: bool = False) DataModelList[ViewId]
-
- Parameters
inline_views (bool) – Whether to expand the referenced views inline in the returned result.
limit (int | None) – Maximum number of data model to return. Defaults to 10. Set to -1, float(“inf”) or None to return all items.
space (str | None) – The space to query.
all_versions (bool) – Whether to return all versions. If false, only the newest version is returned, which is determined based on the ‘createdTime’ field.
include_global (bool) – Whether to include global data models.
- Returns
List of requested data models
- Return type
Examples
List 5 data model:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> data_model_list = client.data_modeling.data_models.list(limit=5)
Iterate over data model:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for data_model in client.data_modeling.data_models: ... data_model # do something with the data_model
Iterate over chunks of data model to reduce memory load:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for data_model_list in client.data_modeling.data_models(chunk_size=10): ... data_model_list # do something with the data model
Apply data models
- DataModelsAPI.apply(data_model: Sequence[DataModelApply]) DataModelList
- DataModelsAPI.apply(data_model: DataModelApply) DataModel
Create or update one or more data model.
- Parameters
data_model (DataModelApply | Sequence[DataModelApply]) – Data model(s) to create or update (upsert).
- Returns
Created data model(s)
- Return type
Examples
Create new data model:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import DataModelApply >>> client = CogniteClient() >>> data_models = [ ... DataModelApply(space="mySpace",external_id="myDataModel",version="v1"), ... DataModelApply(space="mySpace",external_id="myOtherDataModel",version="v1")] >>> res = client.data_modeling.data_models.apply(data_models)
Delete data models
- DataModelsAPI.delete(ids: cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str]]) list[cognite.client.data_classes.data_modeling.ids.DataModelId]
-
- Parameters
ids (DataModelIdentifier | Sequence[DataModelIdentifier]) – Data Model identifier(s).
- Returns
The data_model(s) which has been deleted. None if nothing was deleted.
- Return type
list[DataModelId]
Examples
Delete data model by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.data_models.delete(("mySpace", "myDataModel", "v1"))
Data model data classes
- class cognite.client.data_classes.data_modeling.data_models.DataModel(space: str, external_id: str, version: str, is_global: bool, last_updated_time: int, created_time: int, description: str | None, name: str | None, views: list[T_View] | None)
Bases:
DataModelCore
,Generic
[T_View
]A group of views. This is the read version of a Data Model
- Parameters
space (str) – The workspace for the data model, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the data model.
version (str) – DMS version.
is_global (bool) – Whether this is a global data model.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
description (str | None) – Textual description of the data model
name (str | None) – Human readable name for the data model.
views (list[T_View] | None) – List of views included in this data model.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.data_models.DataModelApply(space: str, external_id: str, version: str, description: Optional[str] = None, name: Optional[str] = None, views: Optional[Sequence[cognite.client.data_classes.data_modeling.ids.ViewId | cognite.client.data_classes.data_modeling.views.ViewApply]] = None)
Bases:
DataModelCore
A group of views. This is the write version of a Data Model.
- Parameters
space (str) – The workspace for the data model, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the data model.
version (str) – DMS version.
description (str | None) – Textual description of the data model
name (str | None) – Human readable name for the data model.
views (Sequence[ViewId | ViewApply] | None) – List of views included in this data model.
- as_write() DataModelApply
Returns this DataModelApply instance.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.data_models.DataModelApplyList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[DataModelApply
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.DataModelId]
Convert the list of data models to a list of data model ids.
- Returns
The list of data model ids.
- Return type
list[DataModelId]
- class cognite.client.data_classes.data_modeling.data_models.DataModelCore(space: str, external_id: str, version: str, description: str | None, name: str | None)
Bases:
DataModelingSchemaResource
[DataModelApply
],ABC
A group of views.
- Parameters
space (str) – The workspace for the data model, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the data model.
version (str) – DMS version.
description (str | None) – Textual description of the data model
name (str | None) – Human readable name for the data model.
- class cognite.client.data_classes.data_modeling.data_models.DataModelFilter(space: Optional[str] = None, inline_views: bool = False, all_versions: bool = False, include_global: bool = False)
Bases:
CogniteFilter
Represent the filer arguments for the list endpoint.
- Parameters
space (str | None) – The space to query
inline_views (bool) – Whether to expand the referenced views inline in the returned result.
all_versions (bool) – Whether to return all versions. If false, only the newest version is returned, which is determined based on the ‘createdTime’ field.
include_global (bool) – Whether to include global views.
- class cognite.client.data_classes.data_modeling.data_models.DataModelList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
WriteableCogniteResourceList
[DataModelApply
,DataModel
[T_View
]]- as_apply() DataModelApplyList
Convert the list of data models to a list of data model applies.
- Returns
The list of data model applies.
- Return type
- as_ids() list[cognite.client.data_classes.data_modeling.ids.DataModelId]
Convert the list of data models to a list of data model ids.
- Returns
The list of data model ids.
- Return type
list[DataModelId]
- latest_version(key: Literal['created_time', 'last_updated_time'] = 'created_time') DataModel[T_View]
Get the data model in the list with the latest version. The latest version is determined based on the created_time or last_updated_time field.
- Parameters
key (Literal['created_time', 'last_updated_time']) – The field to use for determining the latest version.
- Returns
The data model with the latest version.
- Return type
DataModel[T_View]
- class cognite.client.data_classes.data_modeling.data_models.DataModelsSort(property: Literal['space', 'external_id', 'name', 'description', 'version', 'created_time', 'last_updated_time'], direction: Literal['ascending', 'descending'] = 'ascending', nulls_first: bool = False)
Bases:
DataModelingSort
Spaces
Retrieve a space by id
- SpacesAPI.retrieve(spaces: str) cognite.client.data_classes.data_modeling.spaces.Space | None
- SpacesAPI.retrieve(spaces: SequenceNotStr[str]) SpaceList
-
- Parameters
spaces (str | SequenceNotStr[str]) – Space ID
- Returns
Requested space or None if it does not exist.
- Return type
Examples
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.spaces.retrieve(spaces='mySpace')
Get multiple spaces by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.spaces.retrieve(spaces=["MySpace", "MyAwesomeSpace", "MyOtherSpace"])
List spaces
- SpacesAPI.list(limit: int | None = 25, include_global: bool = False) SpaceList
-
- Parameters
limit (int | None) – Maximum number of spaces to return. Defaults to 10. Set to -1, float(“inf”) or None to return all items.
include_global (bool) – Whether to include global spaces. Defaults to False.
- Returns
List of requested spaces
- Return type
Examples
List spaces and filter on max start time:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> space_list = client.data_modeling.spaces.list(limit=5)
Iterate over spaces:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for space in client.data_modeling.spaces: ... space # do something with the space
Iterate over chunks of spaces to reduce memory load:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for space_list in client.data_modeling.spaces(chunk_size=2500): ... space_list # do something with the spaces
Apply spaces
- SpacesAPI.apply(spaces: Sequence[SpaceApply]) SpaceList
- SpacesAPI.apply(spaces: SpaceApply) Space
Create or patch one or more spaces.
- Parameters
spaces (SpaceApply | Sequence[SpaceApply]) – Space | Sequence[Space]): Space or spaces of spacesda to create or update.
- Returns
Created space(s)
- Return type
Examples
Create new spaces:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import SpaceApply >>> client = CogniteClient() >>> spaces = [SpaceApply(space="mySpace", description="My first space", name="My Space"), ... SpaceApply(space="myOtherSpace", description="My second space", name="My Other Space")] >>> res = client.data_modeling.spaces.apply(spaces)
Delete spaces
- SpacesAPI.delete(spaces: Union[str, SequenceNotStr[str]]) list[str]
-
- Parameters
spaces (str | SequenceNotStr[str]) – ID or ID list ids of spaces.
- Returns
The space(s) which has been deleted.
- Return type
list[str]
Examples
Delete spaces by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.spaces.delete(spaces=["mySpace", "myOtherSpace"])
Data classes
- class cognite.client.data_classes.data_modeling.spaces.Space(space: str, is_global: bool, last_updated_time: int, created_time: int, description: Optional[str] = None, name: Optional[str] = None)
Bases:
SpaceCore
A workspace for data models and instances. This is the read version.
- Parameters
space (str) – A unique identifier for the space.
is_global (bool) – Whether the space is global or not.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
description (str | None) – Textual description of the space
name (str | None) – Human readable name for the space.
- class cognite.client.data_classes.data_modeling.spaces.SpaceApply(space: str, description: Optional[str] = None, name: Optional[str] = None)
Bases:
SpaceCore
A workspace for data models and instances. This is the write version
- Parameters
space (str) – A unique identifier for the space.
description (str | None) – Textual description of the space
name (str | None) – Human readable name for the space.
- as_write() SpaceApply
Returns this SpaceApply instance.
- class cognite.client.data_classes.data_modeling.spaces.SpaceApplyList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[SpaceApply
]- as_ids() list[str]
Converts all the spaces to a space id list.
- Returns
A list of space ids.
- Return type
list[str]
- class cognite.client.data_classes.data_modeling.spaces.SpaceCore(space: str, description: str | None, name: str | None)
Bases:
WritableDataModelingResource
[SpaceApply
],ABC
A workspace for data models and instances.
- Parameters
space (str) – A unique identifier for the space.
description (str | None) – Textual description of the space
name (str | None) – Human readable name for the space.
- class cognite.client.data_classes.data_modeling.spaces.SpaceList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
WriteableCogniteResourceList
[SpaceApply
,Space
]- as_apply() SpaceApplyList
Converts all the spaces to a space apply list.
- Returns
A list of space applies.
- Return type
- as_ids() list[str]
Converts all the spaces to a space id list.
- Returns
A list of space ids.
- Return type
list[str]
- extend(other: Iterable[Any]) None
S.extend(iterable) – extend sequence by appending elements from the iterable
- get(space: str) cognite.client.data_classes.data_modeling.spaces.Space | None
Get a space object from this list by space ID.
- Parameters
space (str) – The space identifier to get.
- Returns
The requested space if present, else None
- Return type
Space | None
Views
Retrieve views by id(s)
- ViewsAPI.retrieve(ids: cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]], include_inherited_properties: bool = True, all_versions: bool = True) ViewList
-
- Parameters
ids (ViewIdentifier | Sequence[ViewIdentifier]) – The view identifier(s). This can be given as a tuple of strings or a ViewId object. For example, (“my_space”, “my_view”), (“my_space”, “my_view”, “my_version”), or ViewId(“my_space”, “my_view”, “my_version”). Note that version is optional, if not provided, all versions will be returned.
include_inherited_properties (bool) – Whether to include properties inherited from views this view implements.
all_versions (bool) – Whether to return all versions. If false, only the newest version is returned,
- Returns
Requested view or None if it does not exist.
- Return type
Examples
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.views.retrieve(('mySpace', 'myView', 'v1'))
List views
- ViewsAPI.list(limit: int | None = 10, space: Optional[str] = None, include_inherited_properties: bool = True, all_versions: bool = False, include_global: bool = False) ViewList
-
- Parameters
limit (int | None) – Maximum number of views to return. Defaults to 10. Set to -1, float(“inf”) or None to return all items.
space (str | None) – (str | None): The space to query.
include_inherited_properties (bool) – Whether to include properties inherited from views this view implements.
all_versions (bool) – Whether to return all versions. If false, only the newest version is returned, which is determined based on the ‘createdTime’ field.
include_global (bool) – Whether to include global views.
- Returns
List of requested views
- Return type
Examples
List 5 views:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> view_list = client.data_modeling.views.list(limit=5)
Iterate over views:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for view in client.data_modeling.views: ... view # do something with the view
Iterate over chunks of views to reduce memory load:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for view_list in client.data_modeling.views(chunk_size=10): ... view_list # do something with the views
Apply view
- ViewsAPI.apply(view: Sequence[ViewApply]) ViewList
- ViewsAPI.apply(view: ViewApply) View
Create or update (upsert) one or more views.
- Parameters
view (ViewApply | Sequence[ViewApply]) – View(s) to create or update.
- Returns
Created view(s)
- Return type
Examples
Create new views:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ViewApply, MappedPropertyApply, ContainerId >>> client = CogniteClient() >>> views = [ ... ViewApply( ... space="mySpace", ... external_id="myView", ... version="v1", ... properties={ ... "someAlias": MappedPropertyApply( ... container=ContainerId("mySpace", "myContainer"), ... container_property_identifier="someProperty", ... ), ... } ... ) ... ] >>> res = client.data_modeling.views.apply(views)
Create views with edge relations:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ( ... ContainerId, ... DirectRelationReference, ... MappedPropertyApply, ... MultiEdgeConnectionApply, ... ViewApply, ... ViewId ... ) >>> client = CogniteClient() >>> acts_in_edge_type = DirectRelationReference(space="imdb", external_id="acts-in") >>> movie_view = ViewApply( ... space="imdb", ... external_id="Movie", ... version="1", ... name="Movie", ... properties={ ... "title": MappedPropertyApply( ... container=ContainerId(space="imdb", external_id="Movie"), ... container_property_identifier="title", ... ), ... "actors": MultiEdgeConnectionApply( ... type=acts_in_edge_type, ... direction="inwards", ... source=ViewId("imdb", "Actor", "1"), ... name="actors", ... ), ... } ... ) >>> actor_view = ViewApply( ... space="imdb", ... external_id="Actor", ... version="1", ... name="Actor", ... properties={ ... "name": MappedPropertyApply( ... container=ContainerId("imdb", "Actor"), ... name="name", ... container_property_identifier="name", ... ), ... "movies": MultiEdgeConnectionApply( ... type=acts_in_edge_type, ... direction="outwards", ... source=ViewId("imdb", "Movie", "1"), ... name="movies", ... ), ... } ... ) >>> res = client.data_modeling.views.apply([movie_view, actor_view])
Delete views
- ViewsAPI.delete(ids: cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]]) list[cognite.client.data_classes.data_modeling.ids.ViewId]
-
- Parameters
ids (ViewIdentifier | Sequence[ViewIdentifier]) – View identifier(s)
- Returns
The identifier for the view(s) which has been deleted. Empty list if nothing was deleted.
- Return type
list[ViewId]
Examples
Delete views by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.views.delete(('mySpace', 'myView', 'v1'))
View data classes
- class cognite.client.data_classes.data_modeling.views.ConnectionDefinition
Bases:
ViewProperty
,ABC
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.ConnectionDefinitionApply
Bases:
ViewPropertyApply
,ABC
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.EdgeConnection(type: DirectRelationReference, source: ViewId, name: str | None, description: str | None, edge_source: cognite.client.data_classes.data_modeling.ids.ViewId | None, direction: Literal['outwards', 'inwards'])
Bases:
ConnectionDefinition
,ABC
Describes the edge(s) that are likely to exist to aid in discovery and documentation of the view. A listed edge is not required. i.e. It does not have to exist when included in this list. A connection has a max distance of one hop.
- Parameters
type (DirectRelationReference) – Reference to the node pointed to by the direct relation. The reference consists of a space and an external-id.
source (ViewId) – The target node(s) of this connection can be read through the view specified in ‘source’.
name (str | None) – Readable property name.
description (str | None) – Description of the content and suggested use for this property.
edge_source (ViewId | None) – The edge(s) of this connection can be read through the view specified in ‘edgeSource’.
direction (Literal["outwards", "inwards"]) – The direction of the edge. The outward direction is used to indicate that the edge points from the source to the target. The inward direction is used to indicate that the edge points from the target to the source.
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.EdgeConnectionApply(type: DirectRelationReference, source: ViewId, name: Optional[str] = None, description: Optional[str] = None, edge_source: Optional[ViewId] = None, direction: Literal['outwards', 'inwards'] = 'outwards')
Bases:
ConnectionDefinitionApply
,ABC
Describes the edge(s) that are likely to exist to aid in discovery and documentation of the view. A listed edge is not required. i.e. It does not have to exist when included in this list. A connection has a max distance of one hop.
It is called ‘EdgeConnection’ in the API spec.
- Parameters
type (DirectRelationReference) – Reference to the node pointed to by the direct relation. The reference consists of a space and an external-id.
source (ViewId) – The target node(s) of this connection can be read through the view specified in ‘source’.
name (str | None) – Readable property name.
description (str | None) – Description of the content and suggested use for this property.
edge_source (ViewId | None) – The edge(s) of this connection can be read through the view specified in ‘edgeSource’.
direction (Literal["outwards", "inwards"]) – The direction of the edge. The outward direction is used to indicate that the edge points from the source to the target. The inward direction is used to indicate that the edge points from the target to the source.
- abstract dump(camel_case: bool = True) dict
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.MappedProperty(container: 'ContainerId', container_property_identifier: 'str', type: 'PropertyType', nullable: 'bool', immutable: 'bool', auto_increment: 'bool', source: 'ViewId | None' = None, default_value: 'str | int | dict | None' = None, name: 'str | None' = None, description: 'str | None' = None)
Bases:
ViewProperty
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.MappedPropertyApply(container: 'ContainerId', container_property_identifier: 'str', name: 'str | None' = None, description: 'str | None' = None, source: 'ViewId | None' = None)
Bases:
ViewPropertyApply
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.MultiEdgeConnection(type: 'DirectRelationReference', source: 'ViewId', name: 'str | None', description: 'str | None', edge_source: 'ViewId | None', direction: "Literal['outwards', 'inwards']")
Bases:
EdgeConnection
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.MultiEdgeConnectionApply(type: 'DirectRelationReference', source: 'ViewId', name: 'str | None' = None, description: 'str | None' = None, edge_source: 'ViewId | None' = None, direction: "Literal['outwards', 'inwards']" = 'outwards')
Bases:
EdgeConnectionApply
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.MultiReverseDirectRelation(source: 'ViewId', through: 'PropertyId', name: 'str | None' = None, description: 'str | None' = None)
Bases:
ReverseDirectRelation
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.MultiReverseDirectRelationApply(source: 'ViewId', through: 'PropertyId', name: 'str | None' = None, description: 'str | None' = None)
Bases:
ReverseDirectRelationApply
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.ReverseDirectRelation(source: ViewId, through: PropertyId, name: Optional[str] = None, description: Optional[str] = None)
Bases:
ConnectionDefinition
,ABC
Describes the direct relation(s) pointing to instances read through this view. This connection type is used to aid in discovery and documentation of the view
It is called ‘ReverseDirectRelationConnection’ in the API spec.
- Parameters
source (ViewId) – The node(s) containing the direct relation property can be read through the view specified in ‘source’.
through (PropertyId) – The view or container of the node containing the direct relation property.
name (str | None) – Readable property name.
description (str | None) – Description of the content and suggested use for this property.
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.ReverseDirectRelationApply(source: ViewId, through: PropertyId, name: Optional[str] = None, description: Optional[str] = None)
Bases:
ConnectionDefinitionApply
,ABC
Describes the direct relation(s) pointing to instances read through this view. This connection type is used to aid in discovery and documentation of the view.
It is called ‘ReverseDirectRelationConnection’ in the API spec.
- Parameters
source (ViewId) – The node(s) containing the direct relation property can be read through the view specified in ‘source’.
through (PropertyId) – The view or container of the node containing the direct relation property.
name (str | None) – Readable property name.
description (str | None) – Description of the content and suggested use for this property.
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.SingleEdgeConnection(type: 'DirectRelationReference', source: 'ViewId', name: 'str | None', description: 'str | None', edge_source: 'ViewId | None', direction: "Literal['outwards', 'inwards']")
Bases:
EdgeConnection
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.SingleEdgeConnectionApply(type: 'DirectRelationReference', source: 'ViewId', name: 'str | None' = None, description: 'str | None' = None, edge_source: 'ViewId | None' = None, direction: "Literal['outwards', 'inwards']" = 'outwards')
Bases:
EdgeConnectionApply
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- cognite.client.data_classes.data_modeling.views.SingleHopConnectionDefinition
alias of
MultiEdgeConnection
- cognite.client.data_classes.data_modeling.views.SingleHopConnectionDefinitionApply
alias of
MultiEdgeConnectionApply
- class cognite.client.data_classes.data_modeling.views.SingleReverseDirectRelation(source: 'ViewId', through: 'PropertyId', name: 'str | None' = None, description: 'str | None' = None)
Bases:
ReverseDirectRelation
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.SingleReverseDirectRelationApply(source: 'ViewId', through: 'PropertyId', name: 'str | None' = None, description: 'str | None' = None)
Bases:
ReverseDirectRelationApply
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.View(space: str, external_id: str, version: str, properties: dict[str, cognite.client.data_classes.data_modeling.views.ViewProperty], last_updated_time: int, created_time: int, description: str | None, name: str | None, filter: cognite.client.data_classes.filters.Filter | None, implements: list[cognite.client.data_classes.data_modeling.ids.ViewId] | None, writable: bool, used_for: Literal['node', 'edge', 'all'], is_global: bool)
Bases:
ViewCore
A group of properties. Read only version.
- Parameters
space (str) – The workspace for the view, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the view.
version (str) – DMS version.
properties (dict[str, ViewProperty]) – View with included properties and expected edges, indexed by a unique space-local identifier.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
description (str | None) – Textual description of the view
name (str | None) – Human readable name for the view.
filter (Filter | None) – A filter Domain Specific Language (DSL) used to create advanced filter queries.
implements (list[ViewId] | None) – References to the views from where this view will inherit properties and edges.
writable (bool) – Whether the view supports write operations.
used_for (Literal['node', 'edge', 'all']) – Does this view apply to nodes, edges or both.
is_global (bool) – Whether this is a global view.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- referenced_containers() set[cognite.client.data_classes.data_modeling.ids.ContainerId]
Helper function to get the set of containers referenced by this view.
- Returns
The set of containers referenced by this view.
- Return type
set[ContainerId]
- class cognite.client.data_classes.data_modeling.views.ViewApply(space: str, external_id: str, version: str, description: Optional[str] = None, name: Optional[str] = None, filter: Optional[Filter] = None, implements: Optional[list[cognite.client.data_classes.data_modeling.ids.ViewId]] = None, properties: Optional[dict[str, cognite.client.data_classes.data_modeling.views.ViewPropertyApply]] = None)
Bases:
ViewCore
A group of properties. Write only version.
- Parameters
space (str) – The workspace for the view, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the view.
version (str) – DMS version.
description (str | None) – Textual description of the view
name (str | None) – Human readable name for the view.
filter (Filter | None) – A filter Domain Specific Language (DSL) used to create advanced filter queries.
implements (list[ViewId] | None) – References to the views from where this view will inherit properties and edges.
properties (dict[str, ViewPropertyApply] | None) – No description.
Note
The order of elements (i.e., ViewId) in
implements
matters, as it indicates priority on how to handle collisions of same properties from different views. See docs on implemented property conflicts for more details.- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- referenced_containers() set[cognite.client.data_classes.data_modeling.ids.ContainerId]
Helper function to get the set of containers referenced by this view.
- Returns
The set of containers referenced by this view.
- Return type
set[ContainerId]
- class cognite.client.data_classes.data_modeling.views.ViewApplyList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[ViewApply
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.ViewId]
Returns the list of ViewIds
- Returns
The list of ViewIds
- Return type
list[ViewId]
- referenced_containers() set[cognite.client.data_classes.data_modeling.ids.ContainerId]
Helper function to get the set of containers referenced by this view.
- Returns
The set of containers referenced by this view.
- Return type
set[ContainerId]
- class cognite.client.data_classes.data_modeling.views.ViewCore(space: str, external_id: str, version: str, description: str | None, name: str | None, filter: cognite.client.data_classes.filters.Filter | None, implements: list[cognite.client.data_classes.data_modeling.ids.ViewId] | None)
Bases:
DataModelingSchemaResource
[ViewApply
],ABC
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.ViewFilter(space: Optional[str] = None, include_inherited_properties: bool = True, all_versions: bool = False, include_global: bool = False)
Bases:
CogniteFilter
Represent the filer arguments for the list endpoint.
- Parameters
space (str | None) – The space to query
include_inherited_properties (bool) – Whether to include properties inherited from views this view implements.
all_versions (bool) – Whether to return all versions. If false, only the newest version is returned, which is determined based on the ‘createdTime’ field.
include_global (bool) – Whether to include global views.
- class cognite.client.data_classes.data_modeling.views.ViewList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
WriteableCogniteResourceList
[ViewApply
,View
]- as_apply() ViewApplyList
Convert to a view an apply list.
- Returns
The view apply list.
- Return type
- as_ids() list[cognite.client.data_classes.data_modeling.ids.ViewId]
Returns the list of ViewIds
- Returns
The list of ViewIds
- Return type
list[ViewId]
- referenced_containers() set[cognite.client.data_classes.data_modeling.ids.ContainerId]
Helper function to get the set of containers referenced by this view.
- Returns
The set of containers referenced by this view.
- Return type
set[ContainerId]
- class cognite.client.data_classes.data_modeling.views.ViewProperty
Bases:
CogniteObject
,ABC
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.views.ViewPropertyApply
Bases:
CogniteObject
,ABC
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
Containers
Retrieve containers by id(s)
- ContainersAPI.retrieve(ids: cognite.client.data_classes.data_modeling.ids.ContainerId | tuple[str, str]) cognite.client.data_classes.data_modeling.containers.Container | None
- ContainersAPI.retrieve(ids: Sequence[cognite.client.data_classes.data_modeling.ids.ContainerId | tuple[str, str]]) ContainerList
Retrieve one or more container by id(s).
- Parameters
ids (ContainerIdentifier | Sequence[ContainerIdentifier]) – Identifier for container(s).
- Returns
Requested container or None if it does not exist.
- Return type
Container | ContainerList | None
Examples
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.containers.retrieve(('mySpace', 'myContainer'))
Fetch using the ContainerId:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ContainerId >>> client = CogniteClient() >>> res = client.data_modeling.containers.retrieve(ContainerId(space='mySpace', external_id='myContainer'))
List containers
- ContainersAPI.list(space: Optional[str] = None, limit: int | None = 10, include_global: bool = False) ContainerList
-
- Parameters
space (str | None) – The space to query
limit (int | None) – Maximum number of containers to return. Defaults to 10. Set to -1, float(“inf”) or None to return all items.
include_global (bool) – Whether the global containers should be returned.
- Returns
List of requested containers
- Return type
Examples
List containers and limit to 5:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> container_list = client.data_modeling.containers.list(limit=5)
Iterate over containers:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for container in client.data_modeling.containers: ... container # do something with the container
Iterate over chunks of containers to reduce memory load:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> for container_list in client.data_modeling.containers(chunk_size=10): ... container_list # do something with the containers
Apply containers
- ContainersAPI.apply(container: Sequence[ContainerApply]) ContainerList
- ContainersAPI.apply(container: ContainerApply) Container
Add or update (upsert) containers.
- Parameters
container (ContainerApply | Sequence[ContainerApply]) – Container(s) to create or update.
- Returns
Created container(s)
- Return type
Examples
Create new containers:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ContainerApply, ContainerProperty, Text >>> client = CogniteClient() >>> container = [ContainerApply(space="mySpace", external_id="myContainer", ... properties={"name": ContainerProperty(type=Text, name="name")})] >>> res = client.data_modeling.containers.apply(container)
Create new container with unit-aware properties:
>>> from cognite.client.data_classes.data_modeling import Float64 >>> from cognite.client.data_classes.data_modeling.data_types import UnitReference >>> client = CogniteClient() >>> container = ContainerApply( ... space="mySpace", ... external_id="myContainer", ... properties={ ... "maxPressure": ContainerProperty( ... nullable=True, ... description="Maximum Pump Pressure", ... name="maxPressure", ... type=Float64( ... unit=UnitReference( ... external_id="pressure:bar", ... source_unit="BAR" ... ) ... ) ... ), ... "rotationConfigurations": ContainerProperty( ... nullable=True, ... description="Rotation Configurations", ... name="rotationConfigurations", ... type=Float64( ... is_list=True, ... unit=UnitReference( ... external_id="angular_velocity:rev-per-min" ... ) ... ) ... ) ... } ... ) >>> res = client.data_modeling.containers.apply(container)
Example container with all available properties (for illustration purposes). Note that
ContainerProperty
has several options not shown here, likename
,description
,nullable
,auto_increment
,default_value
andimmutable
that may be specified, depending on the choice of property type (e.g.auto_increment
only works with integer types).>>> from cognite.client.data_classes.data_modeling.data_types import UnitReference, EnumValue >>> from cognite.client.data_classes.data_modeling.data_types import ( ... Boolean, Date, DirectRelation, Enum, FileReference, Float32, Float64, ... Int32, Int64, Json, SequenceReference, Text, TimeSeriesReference, Timestamp ... ) >>> container_properties = { ... "prop01": ContainerProperty(Boolean), ... "prop02": ContainerProperty(Boolean(is_list=True)), ... "prop03": ContainerProperty(Date), ... "prop04": ContainerProperty(Date(is_list=True)), ... "prop05": ContainerProperty(Timestamp), ... "prop06": ContainerProperty(Timestamp(is_list=True)), ... "prop07": ContainerProperty(Text), ... "prop08": ContainerProperty(Text(is_list=True)), ... # Note: DirectRelation(list) support `container`: The (optional) required type for the node ... # the direct relation points to. ... "prop09": ContainerProperty(DirectRelation), ... "prop10": ContainerProperty(DirectRelation(is_list=True)), ... # Note: Enum also support `unknown_value`: The value to use when the enum value is unknown. ... "prop11": ContainerProperty( ... Enum({"Closed": EnumValue("Valve is closed"), ... "Opened": EnumValue("Valve is opened")})), ... # Note: Floats support unit references, e.g. `unit=UnitReference("pressure:bar")`: ... "prop12": ContainerProperty(Float32), ... "prop13": ContainerProperty(Float32(is_list=True)), ... "prop14": ContainerProperty(Float64), ... "prop15": ContainerProperty(Float64(is_list=True)), ... "prop16": ContainerProperty(Int32), ... "prop17": ContainerProperty(Int32(is_list=True)), ... "prop18": ContainerProperty(Int64), ... "prop19": ContainerProperty(Int64(is_list=True)), ... "prop20": ContainerProperty(Json), ... "prop21": ContainerProperty(Json(is_list=True)), ... "prop22": ContainerProperty(SequenceReference), ... "prop23": ContainerProperty(SequenceReference(is_list=True)), ... # Note: It is adviced to represent files and time series directly as nodes ... # instead of referencing existing: ... "prop24": ContainerProperty(FileReference), ... "prop25": ContainerProperty(FileReference(is_list=True)), ... "prop26": ContainerProperty(TimeSeriesReference), ... "prop27": ContainerProperty(TimeSeriesReference(is_list=True)), ... } >>> container = ContainerApply( ... space="my-space", ... external_id="my-everything-container", ... properties=container_properties, ... )
Delete containers
- ContainersAPI.delete(ids: cognite.client.data_classes.data_modeling.ids.ContainerId | tuple[str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.ContainerId | tuple[str, str]]) list[cognite.client.data_classes.data_modeling.ids.ContainerId]
-
- Parameters
ids (ContainerIdentifier | Sequence[ContainerIdentifier]) – The container identifier(s).
- Returns
The container(s) which has been deleted. Empty list if nothing was deleted.
- Return type
list[ContainerId]
Examples
Delete containers by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.containers.delete(("mySpace", "myContainer"))
Delete constraints
- ContainersAPI.delete_constraints(ids: Sequence[tuple[cognite.client.data_classes.data_modeling.ids.ContainerId, str]]) list[tuple[cognite.client.data_classes.data_modeling.ids.ContainerId, str]]
Delete one or more constraints
- Parameters
ids (Sequence[ConstraintIdentifier]) – The constraint identifier(s).
- Returns
The constraints(s) which have been deleted.
- Return type
list[ConstraintIdentifier]
Examples
Delete constraints by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.containers.delete_constraints( ... [(ContainerId("mySpace", "myContainer"), "myConstraint")] ... )
Delete indexes
- ContainersAPI.delete_indexes(ids: Sequence[tuple[cognite.client.data_classes.data_modeling.ids.ContainerId, str]]) list[tuple[cognite.client.data_classes.data_modeling.ids.ContainerId, str]]
-
- Parameters
ids (Sequence[IndexIdentifier]) – The index identifier(s).
- Returns
The indexes(s) which has been deleted.
- Return type
list[IndexIdentifier]
Examples
Delete indexes by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.containers.delete_indexes( ... [(ContainerId("mySpace", "myContainer"), "myIndex")] ... )
Containers data classes
- class cognite.client.data_classes.data_modeling.containers.BTreeIndex(properties: 'list[str]', cursorable: 'bool' = False)
Bases:
Index
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.Constraint
Bases:
CogniteObject
,ABC
- abstract dump(camel_case: bool = True) dict[str, str | dict]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.Container(space: str, external_id: str, properties: dict[str, cognite.client.data_classes.data_modeling.containers.ContainerProperty], is_global: bool, last_updated_time: int, created_time: int, description: str | None, name: str | None, used_for: Literal['node', 'edge', 'all'], constraints: dict[str, cognite.client.data_classes.data_modeling.containers.Constraint] | None, indexes: dict[str, cognite.client.data_classes.data_modeling.containers.Index] | None)
Bases:
ContainerCore
Represent the physical storage of data. This is the read format of the container
- Parameters
space (str) – The workspace for the container, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the container.
properties (dict[str, ContainerProperty]) – We index the property by a local unique identifier.
is_global (bool) – Whether this is a global container, i.e., one of the out-of-the-box models.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
description (str | None) – Textual description of the container
name (str | None) – Human readable name for the container.
used_for (Literal['node', 'edge', 'all']) – Should this operation apply to nodes, edges or both.
constraints (dict[str, Constraint] | None) – Set of constraints to apply to the container
indexes (dict[str, Index] | None) – Set of indexes to apply to the container.
- class cognite.client.data_classes.data_modeling.containers.ContainerApply(space: str, external_id: str, properties: dict[str, cognite.client.data_classes.data_modeling.containers.ContainerProperty], description: Optional[str] = None, name: Optional[str] = None, used_for: Optional[Literal['node', 'edge', 'all']] = None, constraints: Optional[dict[str, cognite.client.data_classes.data_modeling.containers.Constraint]] = None, indexes: Optional[dict[str, cognite.client.data_classes.data_modeling.containers.Index]] = None)
Bases:
ContainerCore
Represent the physical storage of data. This is the write format of the container
- Parameters
space (str) – The workspace for the container, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the container.
properties (dict[str, ContainerProperty]) – We index the property by a local unique identifier.
description (str | None) – Textual description of the container
name (str | None) – Human readable name for the container.
used_for (Literal['node', 'edge', 'all'] | None) – Should this operation apply to nodes, edges or both.
constraints (dict[str, Constraint] | None) – Set of constraints to apply to the container
indexes (dict[str, Index] | None) – Set of indexes to apply to the container.
- as_write() ContainerApply
Returns this ContainerApply instance.
- class cognite.client.data_classes.data_modeling.containers.ContainerApplyList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[ContainerApply
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.ContainerId]
Convert to a container id list.
- Returns
The container id list.
- Return type
list[ContainerId]
- class cognite.client.data_classes.data_modeling.containers.ContainerCore(space: str, external_id: str, properties: dict[str, cognite.client.data_classes.data_modeling.containers.ContainerProperty], description: str | None, name: str | None, constraints: dict[str, cognite.client.data_classes.data_modeling.containers.Constraint] | None, indexes: dict[str, cognite.client.data_classes.data_modeling.containers.Index] | None)
Bases:
DataModelingSchemaResource
[ContainerApply
],ABC
Represent the physical storage of data. This is the base class for the read and write version.
- Parameters
space (str) – The workspace for the container, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the container.
properties (dict[str, ContainerProperty]) – We index the property by a local unique identifier.
description (str | None) – Textual description of the container
name (str | None) – Human readable name for the container.
constraints (dict[str, Constraint] | None) – Set of constraints to apply to the container
indexes (dict[str, Index] | None) – Set of indexes to apply to the container.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.ContainerList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
WriteableCogniteResourceList
[ContainerApply
,Container
]- as_apply() ContainerApplyList
Convert to a ContainerApply list.
- Returns
The container apply list.
- Return type
- as_ids() list[cognite.client.data_classes.data_modeling.ids.ContainerId]
Convert to a container id list.
- Returns
The container id list.
- Return type
list[ContainerId]
- class cognite.client.data_classes.data_modeling.containers.ContainerProperty(type: 'PropertyType', nullable: 'bool' = True, auto_increment: 'bool' = False, name: 'str | None' = None, default_value: 'str | int | float | bool | dict | None' = None, description: 'str | None' = None, immutable: 'bool' = False)
Bases:
CogniteObject
- dump(camel_case: bool = True) dict[str, str | dict]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.Index
Bases:
CogniteObject
,ABC
- abstract dump(camel_case: bool = True) dict[str, str | dict]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.InvertedIndex(properties: 'list[str]')
Bases:
Index
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.RequiresConstraint(require: 'ContainerId')
Bases:
Constraint
- dump(camel_case: bool = True) dict[str, str | dict]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.containers.UniquenessConstraint(properties: 'list[str]')
Bases:
Constraint
- dump(camel_case: bool = True) dict[str, str | dict]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
Instances
Retrieve instances by id(s)
- InstancesAPI.retrieve(nodes: Optional[Union[NodeId, Sequence[NodeId], tuple[str, str], Sequence[tuple[str, str]]]] = None, edges: Optional[Union[EdgeId, Sequence[EdgeId], tuple[str, str], Sequence[tuple[str, str]]]] = None, sources: Optional[Union[SourceSelector, View, ViewId, tuple[str, str], tuple[str, str, str], Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]]]] = None, include_typing: bool = False) InstancesResult[Node, Edge]
Retrieve one or more instance by id(s).
- Parameters
nodes (NodeId | Sequence[NodeId] | tuple[str, str] | Sequence[tuple[str, str]] | None) – Node ids
edges (EdgeId | Sequence[EdgeId] | tuple[str, str] | Sequence[tuple[str, str]] | None) – Edge ids
sources (Source | Sequence[Source] | None) – Retrieve properties from the listed - by reference - views.
include_typing (bool) – Whether to return property type information as part of the result.
- Returns
Requested instances.
- Return type
Examples
Retrieve instances by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.instances.retrieve( ... nodes=("mySpace", "myNodeExternalId"), ... edges=("mySpace", "myEdgeExternalId"), ... sources=("mySpace", "myViewExternalId", "myViewVersion"))
Retrieve nodes an edges using the built in data class
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import NodeId, EdgeId, ViewId >>> client = CogniteClient() >>> res = client.data_modeling.instances.retrieve( ... NodeId("mySpace", "myNode"), ... EdgeId("mySpace", "myEdge"), ... ViewId("mySpace", "myViewExternalId", "myViewVersion"))
Retrieve nodes an edges using the the view object as source
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import NodeId, EdgeId >>> client = CogniteClient() >>> res = client.data_modeling.instances.retrieve( ... NodeId("mySpace", "myNode"), ... EdgeId("mySpace", "myEdge"), ... sources=("myspace", "myView"))
Retrieve Nodes by id(s)
- InstancesAPI.retrieve_nodes(nodes: cognite.client.data_classes.data_modeling.ids.NodeId | tuple[str, str], *, node_cls: type[T_Node]) Optional[T_Node]
- InstancesAPI.retrieve_nodes(nodes: cognite.client.data_classes.data_modeling.ids.NodeId | tuple[str, str], *, sources: cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]] | None = None, include_typing: bool = False) cognite.client.data_classes.data_modeling.instances.Node | None
- InstancesAPI.retrieve_nodes(nodes: collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.NodeId] | collections.abc.Sequence[tuple[str, str]], *, node_cls: type[T_Node]) NodeList[T_Node]
- InstancesAPI.retrieve_nodes(nodes: collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.NodeId] | collections.abc.Sequence[tuple[str, str]], *, sources: cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]] | None = None, include_typing: bool = False) NodeList[Node]
Retrieve one or more nodes by id(s).
Note
This method should be used for retrieving nodes with a custom node class. You can use it without providing a custom node class, but in that case, the retrieved nodes will be of the built-in Node class.
- Parameters
nodes (NodeId | Sequence[NodeId] | tuple[str, str] | Sequence[tuple[str, str]]) – Node id(s) to retrieve.
node_cls (type[T_Node]) – The custom node class to use, the retrieved nodes will automatically be serialized to this class.
sources (Source | Sequence[Source] | None) – Retrieve properties from the listed - by reference - views. This only applies if you do not provide a custom node class.
include_typing (bool) – Whether to include typing information
- Returns
The requested edges.
- Return type
Retrieve nodes using a custom typed node class “Person”. Any property that you want to look up by a different attribute name, e.g. you want my_node.birth_year to return the data for property birthYear, must use the PropertyOptions as shown below. We strongly suggest you use snake_cased attribute names, as is done here:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import NodeId, TypedNode, PropertyOptions, DirectRelationReference, ViewId >>> class Person(TypedNode): ... birth_year = PropertyOptions(identifier="birthYear") ... ... def __init__( ... self, ... space: str, ... external_id: str, ... version: int, ... last_updated_time: int, ... created_time: int, ... name: str, ... birth_year: int | None = None, ... type: DirectRelationReference | None = None, ... deleted_time: int | None = None, ... ): ... super().__init__( ... space=space, ... external_id=external_id, ... version=version, ... last_updated_time=last_updated_time, ... created_time=created_time, ... type=type, ... deleted_time=deleted_time ... ) ... self.name = name ... self.birth_year = birth_year ... ... @classmethod ... def get_source(cls) -> ViewId: ... return ViewId("myModelSpace", "Person", "1") ... >>> client = CogniteClient() >>> res = client.data_modeling.instances.retrieve_nodes( ... NodeId("myDataSpace", "myPerson"), node_cls=Person ... ) >>> isinstance(res, Person)
Retrieve Edges by id(s)
- InstancesAPI.retrieve_edges(edges: cognite.client.data_classes.data_modeling.ids.EdgeId | tuple[str, str], *, edge_cls: type[T_Edge]) Optional[T_Edge]
- InstancesAPI.retrieve_edges(edges: cognite.client.data_classes.data_modeling.ids.EdgeId | tuple[str, str], *, sources: cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]] | None = None, include_typing: bool = False) cognite.client.data_classes.data_modeling.instances.Edge | None
- InstancesAPI.retrieve_edges(edges: collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.EdgeId] | collections.abc.Sequence[tuple[str, str]], *, edge_cls: type[T_Edge]) EdgeList[T_Edge]
- InstancesAPI.retrieve_edges(edges: collections.abc.Sequence[cognite.client.data_classes.data_modeling.ids.EdgeId] | collections.abc.Sequence[tuple[str, str]], *, sources: cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]] | None = None, include_typing: bool = False) EdgeList[Edge]
Retrieve one or more edges by id(s).
Note
This method should be used for retrieving edges with a custom edge class.You can use it without providing a custom node class, but in that case, the retrieved nodes will be of the built-in Edge class.
- Parameters
edges (EdgeId | Sequence[EdgeId] | tuple[str, str] | Sequence[tuple[str, str]]) – Edge id(s) to retrieve.
edge_cls (type[T_Edge]) – The custom edge class to use, the retrieved edges will automatically be serialized into this class.
sources (Source | Sequence[Source] | None) – Retrieve properties from the listed - by reference - views. This only applies if you do not provide a custom edge class.
include_typing (bool) – Whether to include typing information
- Returns
The requested edges.
- Return type
Retrieve edges using a custom typed class “Flow”. Any property that you want to look up by a different attribute name, e.g. you want my_edge.flow_rate to return the data for property flowRate, must use the PropertyOptions as shown below. We strongly suggest you use snake_cased attribute names, as is done here:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import EdgeId, TypedEdge, PropertyOptions, DirectRelationReference, ViewId >>> class Flow(TypedEdge): ... flow_rate = PropertyOptions(identifier="flowRate") ... ... def __init__( ... self, ... space: str, ... external_id: str, ... version: int, ... type: DirectRelationReference, ... last_updated_time: int, ... created_time: int, ... flow_rate: float, ... start_node: DirectRelationReference, ... end_node: DirectRelationReference, ... deleted_time: int | None = None, ... ) -> None: ... super().__init__( ... space, external_id, version, type, last_updated_time, created_time, start_node, end_node, deleted_time ... ) ... self.flow_rate = flow_rate ... ... @classmethod ... def get_source(cls) -> ViewId: ... return ViewId("sp_model_space", "flow", "1") ... >>> client = CogniteClient() >>> res = client.data_modeling.instances.retrieve_edges( ... EdgeId("mySpace", "theFlow"), edge_cls=Flow ... ) >>> isinstance(res, Flow)
List instances
- InstancesAPI.list(instance_type: Literal['node'] = 'node', include_typing: bool = False, sources: cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, limit: int | None = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None) NodeList[Node]
- InstancesAPI.list(instance_type: Literal['edge'], include_typing: bool = False, sources: cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str] | collections.abc.Sequence[cognite.client.data_classes.data_modeling.query.SourceSelector | cognite.client.data_classes.data_modeling.views.View | cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, limit: int | None = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None) EdgeList[Edge]
- InstancesAPI.list(instance_type: type[T_Node], *, space: Optional[Union[str, SequenceNotStr[str]]] = None, limit: int | None = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None) NodeList[T_Node]
- InstancesAPI.list(instance_type: type[T_Edge], *, space: Optional[Union[str, SequenceNotStr[str]]] = None, limit: int | None = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None) EdgeList[T_Edge]
-
- Parameters
instance_type (Literal['node', 'edge'] | type[T_Node] | type[T_Edge]) – Whether to query for nodes or edges. You can also pass a custom typed node (or edge class) inheriting from TypedNode (or TypedEdge). See apply, retrieve_nodes or retrieve_edges for an example.
include_typing (bool) – Whether to return property type information as part of the result.
sources (Source | Sequence[Source] | None) – Views to retrieve properties from.
space (str | SequenceNotStr[str] | None) – Only return instances in the given space (or list of spaces).
limit (int | None) – Maximum number of instances to return. Defaults to 25. Set to -1, float(“inf”) or None to return all items.
sort (Sequence[InstanceSort | dict] | InstanceSort | dict | None) – How you want the listed instances information ordered.
filter (Filter | dict[str, Any] | None) – Advanced filtering of instances.
- Returns
List of requested instances
- Return type
Examples
List instances and limit to 5:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> instance_list = client.data_modeling.instances.list(limit=5)
List some instances in the space ‘my-space’:
>>> instance_list = client.data_modeling.instances.list(space="my-space")
List instances and sort by some property:
>>> from cognite.client.data_classes.data_modeling import InstanceSort >>> property_sort = InstanceSort( ... property=('space', 'view_xid/view_version', 'some_property'), ... direction="descending", ... nulls_first=True) >>> instance_list = client.data_modeling.instances.list(sort=property_sort)
Iterate over instances (note: returns nodes):
>>> for instance in client.data_modeling.instances: ... instance # do something with the instance
Iterate over chunks of instances to reduce memory load:
>>> for instance_list in client.data_modeling.instances(chunk_size=100): ... instance_list # do something with the instances
Apply instances
- InstancesAPI.apply(nodes: Optional[Union[NodeApply, Sequence[NodeApply]]] = None, edges: Optional[Union[EdgeApply, Sequence[EdgeApply]]] = None, auto_create_start_nodes: bool = False, auto_create_end_nodes: bool = False, auto_create_direct_relations: bool = True, skip_on_version_conflict: bool = False, replace: bool = False) InstancesApplyResult
Add or update (upsert) instances.
- Parameters
nodes (NodeApply | Sequence[NodeApply] | None) – Nodes to apply
edges (EdgeApply | Sequence[EdgeApply] | None) – Edges to apply
auto_create_start_nodes (bool) – Whether to create missing start nodes for edges when ingesting. By default, the start node of an edge must exist before it can be ingested.
auto_create_end_nodes (bool) – Whether to create missing end nodes for edges when ingesting. By default, the end node of an edge must exist before it can be ingested.
auto_create_direct_relations (bool) – Whether to create missing direct relation targets when ingesting.
skip_on_version_conflict (bool) – If existingVersion is specified on any of the nodes/edges in the input, the default behaviour is that the entire ingestion will fail when version conflicts occur. If skipOnVersionConflict is set to true, items with version conflicts will be skipped instead. If no version is specified for nodes/edges, it will do the writing directly.
replace (bool) – How do we behave when a property value exists? Do we replace all matching and existing values with the supplied values (true)? Or should we merge in new values for properties together with the existing values (false)? Note: This setting applies for all nodes or edges specified in the ingestion call.
- Returns
Created instance(s)
- Return type
Examples
Create new node without data:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import EdgeApply, NodeOrEdgeData, NodeApply >>> client = CogniteClient() >>> node = NodeApply("mySpace", "myNodeId") >>> res = client.data_modeling.instances.apply(node)
Create two nodes with data with a one-to-many edge
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import EdgeApply, NodeOrEdgeData, NodeApply, ViewId >>> actor = NodeApply( ... space="actors", ... external_id="arnold_schwarzenegger", ... sources=[ ... NodeOrEdgeData( ... ViewId("mySpace", "PersonView", "v1"), ... {"name": "Arnold Schwarzenegger", "birthYear": 1947} ... ), ... NodeOrEdgeData( ... ViewId("mySpace", "ActorView", "v1"), ... {"wonOscar": False} ... ) ... ] ... ) >>> movie = NodeApply( ... space="movies", ... external_id="Terminator", ... sources=[ ... NodeOrEdgeData( ... ViewId("mySpace", "MovieView", "v1"), ... {"title": "Terminator", "releaseYear": 1984} ... ) ... ] ... ) ... # This is one-to-many edge, in this case from a person to a movie >>> actor_to_movie = EdgeApply( ... space="actors", ... external_id="relation:arnold_schwarzenegger:terminator", ... type=("types", "acts-in"), ... start_node=("actors", "arnold_schwarzenegger"), ... end_node=("movies", "Terminator"), ... ) >>> res = client.data_modeling.instances.apply([actor, movie], [actor_to_movie])
Create new edge and automatically create end nodes.
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import EdgeApply >>> client = CogniteClient() >>> actor_to_movie = EdgeApply( ... space="actors", ... external_id="relation:arnold_schwarzenegger:terminator", ... type=("types", "acts-in"), ... start_node=("actors", "arnold_schwarzenegger"), ... end_node=("movies", "Terminator"), ... ) >>> res = client.data_modeling.instances.apply( ... edges=actor_to_movie, ... auto_create_start_nodes=True, ... auto_create_end_nodes=True ... )
Using helper function to create valid graphql timestamp for a datetime object:
>>> from cognite.client.utils import datetime_to_ms_iso_timestamp >>> from datetime import datetime, timezone >>> my_date = datetime(2020, 3, 14, 15, 9, 26, 535000, tzinfo=timezone.utc) >>> data_model_timestamp = datetime_to_ms_iso_timestamp(my_date) # "2020-03-14T15:09:26.535+00:00"
Create a typed node apply. Any property that you want to look up by a different attribute name, e.g. you want my_node.birth_year to return the data for property birthYear, must use the PropertyOptions as shown below. We strongly suggest you use snake_cased attribute names, as is done here:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import TypedNodeApply, PropertyOptions >>> class PersonApply(TypedNodeApply): ... birth_year = PropertyOptions(identifier="birthYear") ... ... def __init__(self, space: str, external_id, name: str, birth_year: int): ... super().__init__(space, external_id, type=("sp_model_space", "Person")) ... self.name = name ... self.birth_year = birth_year ... def get_source(self): ... return ViewId("sp_model_space", "Person", "v1") ... >>> person = PersonApply("sp_date_space", "my_person", "John Doe", 1980) >>> res = client.data_modeling.instances.apply(nodes=person)
Search instances
- InstancesAPI.search(view: ViewId, query: str | None = None, *, instance_type: Literal['node'] = 'node', properties: list[str] | None = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, include_typing: bool = False, limit: int = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None) NodeList[Node]
- InstancesAPI.search(view: ViewId, query: str | None = None, *, instance_type: Literal['edge'], properties: list[str] | None = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, include_typing: bool = False, limit: int = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None) EdgeList[Edge]
- InstancesAPI.search(view: ViewId, query: str | None = None, *, instance_type: type[T_Node], properties: list[str] | None = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, include_typing: bool = False, limit: int = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None) NodeList[T_Node]
- InstancesAPI.search(view: ViewId, query: str | None = None, *, instance_type: type[T_Edge], properties: list[str] | None = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, include_typing: bool = False, limit: int = DEFAULT_LIMIT_READ, sort: collections.abc.Sequence[cognite.client.data_classes.data_modeling.instances.InstanceSort | dict] | cognite.client.data_classes.data_modeling.instances.InstanceSort | dict | None = None) EdgeList[T_Edge]
-
- Parameters
view (ViewId) – View to search in.
query (str | None) – Query string that will be parsed and used for search.
instance_type (Literal['node', 'edge'] | type[T_Node] | type[T_Edge]) – Whether to search for nodes or edges. You can also pass a custom typed node (or edge class) inheriting from TypedNode (or TypedEdge). See apply, retrieve_nodes or retrieve_edges for an example.
properties (list[str] | None) – Optional array of properties you want to search through. If you do not specify one or more properties, the service will search all text fields within the view.
target_units (list[TargetUnit] | None) – Properties to convert to another unit. The API can only convert to another unit if a unit has been defined as part of the type on the underlying container being queried.
space (str | SequenceNotStr[str] | None) – Restrict instance search to the given space (or list of spaces).
filter (Filter | dict[str, Any] | None) – Advanced filtering of instances.
include_typing (bool) – Whether to include typing information.
limit (int) – Maximum number of instances to return. Defaults to 25.
sort (Sequence[InstanceSort | dict] | InstanceSort | dict | None) – How you want the listed instances information ordered.
- Returns
Search result with matching nodes or edges.
- Return type
Examples
Search for Arnold in the person view in the name property:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ViewId >>> client = CogniteClient() >>> res = client.data_modeling.instances.search( ... ViewId("mySpace", "PersonView", "v1"), ... query="Arnold", ... properties=["name"])
Search for Quentin in the person view in the name property, but only born after 1970:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ViewId >>> from cognite.client.data_classes import filters >>> client = CogniteClient() >>> born_after_1970 = filters.Range(["mySpace", "PersonView/v1", "birthYear"], gt=1970) >>> res = client.data_modeling.instances.search( ... ViewId("mySpace", "PersonView", "v1"), ... query="Quentin", ... properties=["name"], ... filter=born_after_1970)
Aggregate instances
- InstancesAPI.aggregate(view: ViewId, aggregates: cognite.client.data_classes.aggregations.MetricAggregation | dict, group_by: None = None, instance_type: Literal['node', 'edge'] = 'node', query: str | None = None, properties: Optional[Union[str, SequenceNotStr[str]]] = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, limit: int = DEFAULT_LIMIT_READ) AggregatedNumberedValue
- InstancesAPI.aggregate(view: ViewId, aggregates: Sequence[cognite.client.data_classes.aggregations.MetricAggregation | dict], group_by: None = None, instance_type: Literal['node', 'edge'] = 'node', query: str | None = None, properties: Optional[Union[str, SequenceNotStr[str]]] = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, limit: int = DEFAULT_LIMIT_READ) list[cognite.client.data_classes.aggregations.AggregatedNumberedValue]
- InstancesAPI.aggregate(view: ViewId, aggregates: cognite.client.data_classes.aggregations.MetricAggregation | dict | collections.abc.Sequence[cognite.client.data_classes.aggregations.MetricAggregation | dict], group_by: Union[str, SequenceNotStr[str]], instance_type: Literal['node', 'edge'] = 'node', query: str | None = None, properties: Optional[Union[str, SequenceNotStr[str]]] = None, target_units: list[cognite.client.data_classes.data_modeling.instances.TargetUnit] | None = None, space: Optional[Union[str, SequenceNotStr[str]]] = None, filter: cognite.client.data_classes.filters.Filter | dict[str, Any] | None = None, limit: int = DEFAULT_LIMIT_READ) InstanceAggregationResultList
Aggregate data across nodes/edges
- Parameters
view (ViewId) – View to aggregate over.
aggregates (MetricAggregation | dict | Sequence[MetricAggregation | dict]) – The properties to aggregate over.
group_by (str | SequenceNotStr[str] | None) – The selection of fields to group the results by when doing aggregations. You can specify up to 5 items to group by.
instance_type (Literal['node', 'edge']) – The type of instance.
query (str | None) – Optional query string. The API will parse the query string, and use it to match the text properties on elements to use for the aggregate(s).
properties (str | SequenceNotStr[str] | None) – Optional list of properties you want to apply the query to. If you do not list any properties, you search through text fields by default.
target_units (list[TargetUnit] | None) – Properties to convert to another unit. The API can only convert to another unit if a unit has been defined as part of the type on the underlying container being queried.
space (str | SequenceNotStr[str] | None) – Restrict instance aggregate query to the given space (or list of spaces).
filter (Filter | dict[str, Any] | None) – Advanced filtering of instances.
limit (int) – Maximum number of instances to return. Defaults to 25.
- Returns
Node or edge aggregation results.
- Return type
AggregatedNumberedValue | list[AggregatedNumberedValue] | InstanceAggregationResultList
Examples
Get the average run time in minutes for movies grouped by release year:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import ViewId, aggregations as aggs >>> client = CogniteClient() >>> avg_run_time = aggs.Avg("runTimeMinutes") >>> view_id = ViewId("mySpace", "PersonView", "v1") >>> res = client.data_modeling.instances.aggregate(view_id, avg_run_time, group_by="releaseYear")
Query instances
- InstancesAPI.query(query: Query, include_typing: bool = False) QueryResult
Advanced query interface for nodes/edges.
The Data Modelling API exposes an advanced query interface. The query interface supports parameterization, recursive edge traversal, chaining of result sets, and granular property selection.
- Parameters
query (Query) – Query.
include_typing (bool) – Should we return property type information as part of the result?
- Returns
The resulting nodes and/or edges from the query.
- Return type
Examples
Find actors in movies released before 2000 sorted by actor name:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling.query import Query, Select, NodeResultSetExpression, EdgeResultSetExpression, SourceSelector >>> from cognite.client.data_classes.filters import Range, Equals >>> from cognite.client.data_classes.data_modeling.ids import ViewId >>> client = CogniteClient() >>> movie_id = ViewId("mySpace", "MovieView", "v1") >>> actor_id = ViewId("mySpace", "ActorView", "v1") >>> query = Query( ... with_ = { ... "movies": NodeResultSetExpression(filter=Range(movie_id.as_property_ref("releaseYear"), lt=2000)), ... "actors_in_movie": EdgeResultSetExpression(from_="movies", filter=Equals(["edge", "type"], {"space": movie_id.space, "externalId": "Movie.actors"})), ... "actors": NodeResultSetExpression(from_="actors_in_movie"), ... }, ... select = { ... "actors": Select( ... [SourceSelector(actor_id, ["name"])], sort=[InstanceSort(actor_id.as_property_ref("name"))]), ... }, ... ) >>> res = client.data_modeling.instances.query(query)
To convert units, specify what your target units are in the SourceSelector. You can either use a UnitReference or a UnitSystemReference. Note that in order for a property to be converted, they need to have a unit defined in the underlying container.
>>> from cognite.client.data_classes.data_modeling.data_types import UnitReference, UnitSystemReference >>> selected_source = SourceSelector( ... source=ViewId("my-space", "my-xid", "v1"), ... properties=["f32_prop1", "f32_prop2", "f64_prop1", "f64_prop2"], ... target_units=[ ... TargetUnit("f32_prop1", UnitReference("pressure:kilopa")), ... TargetUnit("f32_prop2", UnitReference("pressure:barg")), ... TargetUnit("f64_prop1", UnitSystemReference("SI")), ... TargetUnit("f64_prop2", UnitSystemReference("Imperial")), ... ], ... )
To select all properties, use ‘[*]’ in your SourceSelector:
>>> SourceSelector(source=ViewId("my-space", "my-xid", "v1"), properties=["*"])
Sync instances
- InstancesAPI.sync(query: Query, include_typing: bool = False) QueryResult
Subscription to changes for nodes/edges.
Subscribe to changes for nodes and edges in a project, matching a supplied filter.
- Parameters
query (Query) – Query.
include_typing (bool) – Should we return property type information as part of the result?
- Returns
The resulting nodes and/or edges from the query.
- Return type
Examples
Find actors in movies released before 2000 sorted by actor name:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling.instances import InstanceSort >>> from cognite.client.data_classes.data_modeling.query import Query, Select, NodeResultSetExpression, EdgeResultSetExpression, SourceSelector >>> from cognite.client.data_classes.filters import Range, Equals >>> from cognite.client.data_classes.data_modeling.ids import ViewId >>> client = CogniteClient() >>> movie_id = ViewId("mySpace", "MovieView", "v1") >>> actor_id = ViewId("mySpace", "ActorView", "v1") >>> query = Query( ... with_ = { ... "movies": NodeResultSetExpression(filter=Range(movie_id.as_property_ref("releaseYear"), lt=2000)), ... "actors_in_movie": EdgeResultSetExpression(from_="movies", filter=Equals(["edge", "type"], {"space": movie_id.space, "externalId": "Movie.actors"})), ... "actors": NodeResultSetExpression(from_="actors_in_movie"), ... }, ... select = { ... "actors": Select( ... [SourceSelector(actor_id, ["name"])], sort=[InstanceSort(actor_id.as_property_ref("name"))]), ... }, ... ) >>> res = client.data_modeling.instances.sync(query) >>> # Added a new movie with actors released before 2000 >>> query.cursors = res.cursors >>> res_new = client.data_modeling.instances.sync(query)
In the last example, the res_new will only contain the actors that have been added with the new movie.
- InstancesAPI.subscribe(query: Query, callback: Callable[[QueryResult], None], poll_delay_seconds: float = 30, throttle_seconds: float = 1) SubscriptionContext
Subscribe to a query and get updates when the result set changes. This invokes the sync() method in a loop in a background thread.
We do not support chaining result sets when subscribing to a query.
- Parameters
query (Query) – The query to subscribe to.
callback (Callable[[QueryResult], None]) – The callback function to call when the result set changes.
poll_delay_seconds (float) – The time to wait between polls when no data is present. Defaults to 30 seconds.
throttle_seconds (float) – The time to wait between polls despite data being present.
- Returns
An object that can be used to cancel the subscription.
- Return type
Examples
Subscribe to a given query and print the changed data:
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling.query import Query, QueryResult, NodeResultSetExpression, Select, SourceSelector >>> from cognite.client.data_classes.data_modeling import ViewId >>> from cognite.client.data_classes.filters import Range >>> >>> client = CogniteClient() >>> def just_print_the_result(result: QueryResult) -> None: ... print(result) ... >>> view_id = ViewId("someSpace", "someView", "v1") >>> filter = Range(view_id.as_property_ref("releaseYear"), lt=2000) >>> query = Query( ... with_={"movies": NodeResultSetExpression(filter=filter)}, ... select={"movies": Select([SourceSelector(view_id, ["releaseYear"])])} ... ) >>> subscription_context = client.data_modeling.instances.subscribe(query, just_print_the_result) >>> subscription_context.cancel()
Example on syncing instances to local sqlite
import json
import time
import sqlite3
from cognite.client import CogniteClient
from cognite.client.data_classes.data_modeling.instances import (
SubscriptionContext,
)
from cognite.client.data_classes.data_modeling.query import (
QueryResult,
Query,
NodeResultSetExpression,
Select,
)
from cognite.client.data_classes.filters import Equals
client = CogniteClient()
def sqlite_connection(db_name: str) -> sqlite3.Connection:
return sqlite3.connect(db_name, check_same_thread=False)
def bootstrap_sqlite(db_name: str) -> None:
with sqlite_connection(db_name) as connection:
connection.execute(
"""
CREATE TABLE IF NOT EXISTS instance (
space TEXT,
external_id TEXT,
data JSON,
PRIMARY KEY(space, external_id)
)
"""
)
connection.execute("CREATE TABLE IF NOT EXISTS cursor (cursor TEXT)")
def sync_space_to_sqlite(
db_name: str, space_to_sync: str
) -> SubscriptionContext:
with sqlite_connection(db_name) as connection:
existing_cursor = connection.execute(
"SELECT cursor FROM cursor"
).fetchone()
if existing_cursor:
print("Found existing cursor, using that")
query = Query(
with_={
"nodes": NodeResultSetExpression(
filter=Equals(property=["node", "space"], value=space_to_sync)
)
},
select={"nodes": Select()},
cursors={"nodes": existing_cursor[0] if existing_cursor else None},
)
def _sync_batch_to_sqlite(result: QueryResult):
with sqlite_connection(db_name) as connection:
inserts = []
deletes = []
for node in result["nodes"]:
if node.deleted_time is None:
inserts.append(
(node.space, node.external_id, json.dumps(node.dump()))
)
else:
deletes.append((node.space, node.external_id))
# Updates must be done in the same transaction as persisting the cursor.
# A transaction is implicitly started by sqlite here.
#
# It is also important that deletes happen first as the same (space, external_id)
# may appear as several tombstones and then a new instance, which must result in
# the instance being saved.
connection.executemany(
"DELETE FROM instance WHERE space=? AND external_id=?", deletes
)
connection.executemany(
"INSERT INTO instance VALUES (?, ?, ?) ON CONFLICT DO UPDATE SET data=excluded.data",
inserts,
)
connection.execute(
"INSERT INTO cursor VALUES (?)", [result.cursors["nodes"]]
)
connection.commit()
print(f"Wrote {len(inserts)} nodes and deleted {len(deletes)} nodes")
return client.data_modeling.instances.subscribe(query, _sync_batch_to_sqlite)
if __name__ == "__main__":
SQLITE_DB_NAME = "test.db"
SPACE_TO_SYNC = "mytestspace"
bootstrap_sqlite(db_name=SQLITE_DB_NAME)
sync_space_to_sqlite(db_name=SQLITE_DB_NAME, space_to_sync=SPACE_TO_SYNC)
while True:
# Keep main thread alive
time.sleep(10)
Delete instances
- InstancesAPI.delete(nodes: Optional[Union[NodeId, Sequence[NodeId], tuple[str, str], Sequence[tuple[str, str]]]] = None, edges: Optional[Union[EdgeId, Sequence[EdgeId], tuple[str, str], Sequence[tuple[str, str]]]] = None) InstancesDeleteResult
-
- Parameters
- Returns
The instance(s) which has been deleted. Empty list if nothing was deleted.
- Return type
Examples
Delete instances by id:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> client.data_modeling.instances.delete(nodes=("mySpace", "myNode"))
Delete nodes and edges using the built in data class
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import NodeId, EdgeId >>> client = CogniteClient() >>> client.data_modeling.instances.delete(NodeId('mySpace', 'myNode'), EdgeId('mySpace', 'myEdge'))
Delete all nodes from a NodeList
>>> from cognite.client import CogniteClient >>> from cognite.client.data_classes.data_modeling import NodeId, EdgeId >>> client = CogniteClient() >>> my_view = client.data_modeling.views.retrieve(('mySpace', 'myView')) >>> my_nodes = client.data_modeling.instances.list(instance_type='node', sources=my_view, limit=None) >>> client.data_modeling.instances.delete(nodes=my_nodes.as_ids())
Instances core data classes
- class cognite.client.data_classes.data_modeling.instances.DataModelingInstancesList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
WriteableCogniteResourceList
[T_WriteClass
,T_Instance
],ABC
- extend(other: Iterable[Any]) None
S.extend(iterable) – extend sequence by appending elements from the iterable
- get(instance_id: Optional[Union[InstanceId, tuple[str, str]]] = None, external_id: Optional[str] = None, *, id: Optional[Union[InstanceId, tuple[str, str]]] = None) Optional[T_Instance]
Get an instance from this list by instance ID.
- Parameters
instance_id (InstanceId | tuple[str, str] | None) – The instance ID to get. A tuple on the form (space, external_id) is also accepted.
external_id (str | None) – The external ID of the instance to return. Will raise ValueError when ambiguous (in presence of multiple spaces).
id (InstanceId | tuple[str, str] | None) – (DEPRECATED) Backwards-compatible alias for instance_id. Will be removed in the next major version.
- Returns
The requested instance if present, else None
- Return type
T_Instance | None
- to_pandas(camel_case: bool = False, convert_timestamps: bool = True, expand_properties: bool = False, remove_property_prefix: bool = True, **kwargs: Any) pd.DataFrame
Convert the instance into a pandas DataFrame. Note that if the properties column is expanded and there are keys in the metadata that already exist in the DataFrame, then an error will be raised by pandas during joining.
- Parameters
camel_case (bool) – Convert column names to camel case (e.g. externalId instead of external_id). Does not apply to properties.
convert_timestamps (bool) – Convert known columns storing CDF timestamps (milliseconds since epoch) to datetime. Does not affect properties.
expand_properties (bool) – Expand the properties into separate columns. Note: Will change default to True in the next major version.
remove_property_prefix (bool) – Remove view ID prefix from columns names of expanded properties. Requires data to be from a single view.
**kwargs (Any) – For backwards compatibility.
- Returns
The Cognite resource as a dataframe.
- Return type
pd.DataFrame
- class cognite.client.data_classes.data_modeling.instances.Edge(space: str, external_id: str, version: int, type: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], last_updated_time: int, created_time: int, start_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], end_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], deleted_time: int | None, properties: cognite.client.data_classes.data_modeling.instances.Properties | None)
-
An Edge. This is the read version of the edge.
- Parameters
space (str) – The workspace for the edge, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the edge.
version (int) – Current version of the edge.
type (DirectRelationReference | tuple[str, str]) – The type of edge.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
start_node (DirectRelationReference | tuple[str, str]) – Reference to the direct relation. The reference consists of a space and an external-id.
end_node (DirectRelationReference | tuple[str, str]) – Reference to the direct relation. The reference consists of a space and an external-id.
deleted_time (int | None) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds. Timestamp when the instance was soft deleted. Note that deleted instances are filtered out of query results, but present in sync results
properties (Properties | None) – No description.
- as_apply() EdgeApply
This is a convenience function for converting the read to a write edge.
It makes the simplifying assumption that all properties are from the same view. Note that this is not true in general.
- Returns
A write edge, EdgeApply
- Return type
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.EdgeApply(space: str, external_id: str, type: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], start_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], end_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], existing_version: Optional[int] = None, sources: Optional[list[cognite.client.data_classes.data_modeling.instances.NodeOrEdgeData]] = None)
Bases:
InstanceApply
[EdgeApply
]An Edge. This is the write version of the edge.
- Parameters
space (str) – The workspace for the edge, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the edge.
type (DirectRelationReference | tuple[str, str]) – The type of edge.
start_node (DirectRelationReference | tuple[str, str]) – Reference to the direct relation. The reference consists of a space and an external-id.
end_node (DirectRelationReference | tuple[str, str]) – Reference to the direct relation. The reference consists of a space and an external-id.
existing_version (int | None) – Fail the ingestion request if the node’s version is greater than or equal to this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the edge (for the specified container or edge). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the item already exists. If skipOnVersionConflict is set on the ingestion request, then the item will be skipped instead of failing the ingestion request.
sources (list[NodeOrEdgeData] | None) – List of source properties to write. The properties are from the edge and/or container the container(s) making up this node.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.EdgeApplyList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[EdgeApply
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.EdgeId]
Convert the list of edges to a list of edge ids.
- Returns
A list of edge ids.
- Return type
list[EdgeId]
- class cognite.client.data_classes.data_modeling.instances.EdgeApplyResult(space: str, external_id: str, version: int, was_modified: bool, last_updated_time: int, created_time: int)
Bases:
InstanceApplyResult
An Edge. This represents the update on the edge.
- Parameters
space (str) – The workspace for the edge, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the edge.
version (int) – Current version of the edge.
was_modified (bool) – Whether the edge was modified by the ingestion.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
- class cognite.client.data_classes.data_modeling.instances.EdgeApplyResultList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[EdgeApplyResult
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.EdgeId]
Convert the list of edges to a list of edge ids.
- Returns
A list of edge ids.
- Return type
list[EdgeId]
- class cognite.client.data_classes.data_modeling.instances.EdgeList(resources: Collection[Any], typing: TypeInformation | None = None, cognite_client: CogniteClient | None = None)
Bases:
DataModelingInstancesList
[EdgeApply
,T_Edge
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.EdgeId]
Convert the list of edges to a list of edge ids.
- Returns
A list of edge ids.
- Return type
list[EdgeId]
- as_write() EdgeApplyList
Returns this EdgeList as a EdgeApplyList
- dump_raw(camel_case: bool = True) dict[str, Any]
This method dumps the list with extra information in addition to the items.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the list.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.EdgeListWithCursor(resources: Collection[Any], cursor: str | None, typing: TypeInformation | None = None, cognite_client: CogniteClient | None = None)
Bases:
EdgeList
- extend(other: EdgeListWithCursor) None
S.extend(iterable) – extend sequence by appending elements from the iterable
- class cognite.client.data_classes.data_modeling.instances.InspectOperation
Bases:
ABC
- class cognite.client.data_classes.data_modeling.instances.InspectionResults(involved_views: list[cognite.client.data_classes.data_modeling.ids.ViewId] | None, involved_containers: list[cognite.client.data_classes.data_modeling.ids.ContainerId] | None)
Bases:
CogniteResource
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.Instance(space: str, external_id: str, version: int, last_updated_time: int, created_time: int, instance_type: Literal['node', 'edge'], deleted_time: int | None, properties: cognite.client.data_classes.data_modeling.instances.Properties | None)
Bases:
WritableInstanceCore
[T_CogniteResource
],ABC
A node or edge. This is the read version of the instance.
- Parameters
space (str) – The workspace for the instance, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the instance.
version (int) – Current version of the instance.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
instance_type (Literal['node', 'edge']) – The type of instance.
deleted_time (int | None) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds. Timestamp when the instance was soft deleted. Note that deleted instances are filtered out of query results, but present in sync results
properties (Properties | None) – Properties of the instance.
- abstract as_apply() InstanceApply
Convert the instance to an apply instance.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- to_pandas(ignore: list[str] | None = None, camel_case: bool = False, convert_timestamps: bool = True, expand_properties: bool = False, remove_property_prefix: bool = True, **kwargs: Any) pd.DataFrame
Convert the instance into a pandas DataFrame.
- Parameters
ignore (list[str] | None) – List of row keys to skip when converting to a data frame. Is applied before expansions.
camel_case (bool) – Convert attribute names to camel case (e.g. externalId instead of external_id). Does not affect properties if expanded.
convert_timestamps (bool) – Convert known attributes storing CDF timestamps (milliseconds since epoch) to datetime. Does not affect properties.
expand_properties (bool) – Expand the properties into separate rows. Note: Will change default to True in the next major version.
remove_property_prefix (bool) – Remove view ID prefix from row names of expanded properties (in index). Requires data to be from a single view.
**kwargs (Any) – For backwards compatibility.
- Returns
The dataframe.
- Return type
pd.DataFrame
- class cognite.client.data_classes.data_modeling.instances.InstanceAggregationResult(aggregates: list[cognite.client.data_classes.aggregations.AggregatedNumberedValue], group: dict[str, str | int | float | bool])
Bases:
DataModelingResource
Represents instances aggregation results.
- Parameters
aggregates (list[AggregatedNumberedValue]) – List of aggregated values.
group (dict[str, str | int | float | bool]) – The grouping used for the aggregation.
- dump(camel_case: bool = True) dict[str, Any]
Dumps the aggregation results to a dictionary.
- Parameters
camel_case (bool) – Whether to convert the keys to camel case.
- Returns
A dictionary with the instance results.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.InstanceAggregationResultList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
- class cognite.client.data_classes.data_modeling.instances.InstanceApply(space: str, external_id: str, instance_type: Literal['node', 'edge'] = 'node', existing_version: Optional[int] = None, sources: Optional[list[cognite.client.data_classes.data_modeling.instances.NodeOrEdgeData]] = None)
Bases:
WritableInstanceCore
[T_CogniteResource
],ABC
A node or edge. This is the write version of the instance.
- Parameters
space (str) – The workspace for the instance, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the instance.
instance_type (Literal['node', 'edge']) – The type of instance.
existing_version (int | None) – Fail the ingestion request if the instance’s version is greater than or equal to this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the instance (for the specified container or instance). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the instance already exists. If skipOnVersionConflict is set on the ingestion request, then the instance will be skipped instead of failing the ingestion request.
sources (list[NodeOrEdgeData] | None) – List of source properties to write. The properties are from the instance and/or container the container(s) making up this node.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.InstanceApplyResult(instance_type: Literal['node', 'edge'], space: str, external_id: str, version: int, was_modified: bool, last_updated_time: int, created_time: int)
Bases:
InstanceCore
,ABC
A node or edge. This represents the update on the instance.
- Parameters
instance_type (Literal['node', 'edge']) – The type of instance.
space (str) – The workspace for the instance, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the instance.
version (int) – DMS version of the instance.
was_modified (bool) – Whether the instance was modified by the ingestion.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
- class cognite.client.data_classes.data_modeling.instances.InstanceCore(space: str, external_id: str, instance_type: Literal['node', 'edge'])
Bases:
DataModelingResource
,ABC
A node or edge :param space: The workspace for the instance, a unique identifier for the space. :type space: str :param external_id: Combined with the space is the unique identifier of the instance. :type external_id: str :param instance_type: The type of instance. :type instance_type: Literal[‘node’, ‘edge’]
- class cognite.client.data_classes.data_modeling.instances.InstanceInspectResult(space: str, external_id: str, instance_type: Literal['node', 'edge'], inspection_results: InspectionResults)
Bases:
CogniteResource
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.InstanceInspectResultList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
- class cognite.client.data_classes.data_modeling.instances.InstanceInspectResults(nodes: 'InstanceInspectResultList', edges: 'InstanceInspectResultList')
Bases:
object
- class cognite.client.data_classes.data_modeling.instances.InstanceSort(property: list[str] | tuple[str, ...], direction: Literal['ascending', 'descending'] = 'ascending', nulls_first: Optional[bool] = None)
Bases:
DataModelingSort
- class cognite.client.data_classes.data_modeling.instances.InstancesApply(nodes: NodeApplyList, edges: EdgeApplyList)
Bases:
object
This represents the write request of an instance query :param nodes: A list of nodes. :type nodes: NodeApplyList :param edges: A list of edges. :type edges: EdgeApplyList
- class cognite.client.data_classes.data_modeling.instances.InstancesApplyResult(nodes: NodeApplyResultList, edges: EdgeApplyResultList)
Bases:
object
This represents the write result of an instance query
- Parameters
nodes (NodeApplyResultList) – A list of nodes.
edges (EdgeApplyResultList) – A list of edges.
- class cognite.client.data_classes.data_modeling.instances.InstancesDeleteResult(nodes: list[cognite.client.data_classes.data_modeling.ids.NodeId], edges: list[cognite.client.data_classes.data_modeling.ids.EdgeId])
Bases:
object
This represents the delete result of an instance query
- class cognite.client.data_classes.data_modeling.instances.InstancesResult(nodes: NodeList[T_Node], edges: EdgeList[T_Edge])
Bases:
Generic
[T_Node
,T_Edge
]This represents the read result of an instance query
- class cognite.client.data_classes.data_modeling.instances.InvolvedContainers
Bases:
InspectOperation
- class cognite.client.data_classes.data_modeling.instances.InvolvedViews(all_versions: 'bool' = False)
Bases:
InspectOperation
- class cognite.client.data_classes.data_modeling.instances.Node(space: str, external_id: str, version: int, last_updated_time: int, created_time: int, deleted_time: int | None, properties: cognite.client.data_classes.data_modeling.instances.Properties | None, type: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str] | None)
-
A node. This is the read version of the node.
- Parameters
space (str) – The workspace for the node, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the node.
version (int) – Current version of the node.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
deleted_time (int | None) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds. Timestamp when the instance was soft deleted. Note that deleted instances are filtered out of query results, but present in sync results
properties (Properties | None) – Properties of the node.
type (DirectRelationReference | tuple[str, str] | None) – Direct relation pointing to the type node.
- as_apply() NodeApply
This is a convenience function for converting the read to a write node.
It makes the simplifying assumption that all properties are from the same view. Note that this is not true in general.
- Returns
A write node, NodeApply
- Return type
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.NodeApply(space: str, external_id: str, existing_version: Optional[int] = None, sources: Optional[list[cognite.client.data_classes.data_modeling.instances.NodeOrEdgeData]] = None, type: Optional[Union[DirectRelationReference, tuple[str, str]]] = None)
Bases:
InstanceApply
[NodeApply
]A node. This is the write version of the node.
- Parameters
space (str) – The workspace for the node, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the node.
existing_version (int | None) – Fail the ingestion request if the node’s version is greater than or equal to this value. If no existingVersion is specified, the ingestion will always overwrite any existing data for the edge (for the specified container or node). If existingVersion is set to 0, the upsert will behave as an insert, so it will fail the bulk if the item already exists. If skipOnVersionConflict is set on the ingestion request, then the item will be skipped instead of failing the ingestion request.
sources (list[NodeOrEdgeData] | None) – List of source properties to write. The properties are from the node and/or container the container(s) making up this node.
type (DirectRelationReference | tuple[str, str] | None) – Direct relation pointing to the type node.
- as_write() Self
Returns this NodeApply instance
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.NodeApplyList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[NodeApply
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.NodeId]
Convert the list of nodes to a list of node ids.
- Returns
A list of node ids.
- Return type
list[NodeId]
- class cognite.client.data_classes.data_modeling.instances.NodeApplyResult(space: str, external_id: str, version: int, was_modified: bool, last_updated_time: int, created_time: int)
Bases:
InstanceApplyResult
A node. This represents the update on the node.
- Parameters
space (str) – The workspace for the node, a unique identifier for the space.
external_id (str) – Combined with the space is the unique identifier of the node.
version (int) – Current version of the node.
was_modified (bool) – Whether the node was modified by the ingestion.
last_updated_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
created_time (int) – The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds.
- class cognite.client.data_classes.data_modeling.instances.NodeApplyResultList(resources: Iterable[Any], cognite_client: CogniteClient | None = None)
Bases:
CogniteResourceList
[NodeApplyResult
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.NodeId]
Convert the list of nodes to a list of node ids.
- Returns
A list of node ids.
- Return type
list[NodeId]
- class cognite.client.data_classes.data_modeling.instances.NodeList(resources: Collection[Any], typing: TypeInformation | None = None, cognite_client: CogniteClient | None = None)
Bases:
DataModelingInstancesList
[NodeApply
,T_Node
]- as_ids() list[cognite.client.data_classes.data_modeling.ids.NodeId]
Convert the list of nodes to a list of node ids.
- Returns
A list of node ids.
- Return type
list[NodeId]
- as_write() NodeApplyList
Returns this NodeList as a NodeApplyList
- dump_raw(camel_case: bool = True) dict[str, Any]
This method dumps the list with extra information in addition to the items.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the list.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.NodeListWithCursor(resources: Collection[Any], cursor: str | None, typing: TypeInformation | None = None, cognite_client: CogniteClient | None = None)
Bases:
NodeList
[T_Node
]- extend(other: NodeListWithCursor) None
S.extend(iterable) – extend sequence by appending elements from the iterable
- class cognite.client.data_classes.data_modeling.instances.NodeOrEdgeData(source: cognite.client.data_classes.data_modeling.ids.ContainerId | cognite.client.data_classes.data_modeling.ids.ViewId, properties: Mapping[str, Optional[Union[str, int, float, bool, dict, SequenceNotStr[str], Sequence[int], Sequence[float], Sequence[bool], Sequence[dict], NodeId, DirectRelationReference, date, datetime, Sequence[cognite.client.data_classes.data_modeling.ids.NodeId | cognite.client.data_classes.data_modeling.data_types.DirectRelationReference], Sequence[date], Sequence[datetime]]]])
Bases:
CogniteObject
This represents the data values of a node or edge.
- Parameters
source (ContainerId | ViewId) – The container or view the node or edge property is in
properties (Mapping[str, PropertyValue]) – The properties of the node or edge.
- dump(camel_case: bool = True) dict
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.Properties(properties: MutableMapping[ViewId, MutableMapping[str, str | int | float | bool | dict | list[str] | list[int] | list[float] | list[bool] | list[dict]]])
Bases:
MutableMapping
[ViewId
|tuple
[str
,str
] |tuple
[str
,str
,str
],MutableMapping
[str
,str
|int
|float
|bool
|dict
|list
[str
] |list
[int
] |list
[float
] |list
[bool
] |list
[dict
]]]- get(view: cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str]) collections.abc.MutableMapping[str, str | int | float | bool | dict | list[str] | list[int] | list[float] | list[bool] | list[dict]] | None
- get(view: cognite.client.data_classes.data_modeling.ids.ViewId | tuple[str, str] | tuple[str, str, str], default: Union[MutableMapping[str, str | int | float | bool | dict | list[str] | list[int] | list[float] | list[bool] | list[dict]], _T]) Union[MutableMapping[str, str | int | float | bool | dict | list[str] | list[int] | list[float] | list[bool] | list[dict]], _T]
D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class cognite.client.data_classes.data_modeling.instances.PropertyOptions(identifier: Optional[str] = None)
Bases:
object
This is a descriptor class for instance properties in a typed class.
It is used when you have a property that has a different name in the Data Model compared to the name in the Python class.
- Parameters
identifier (str | None) – The name of the property in the Data Model. Defaults to the name of the property in the Python class.
- class cognite.client.data_classes.data_modeling.instances.SubscriptionContext(last_successful_sync: 'datetime | None' = None, last_successful_callback: 'datetime | None' = None, _canceled: 'bool' = False, _thread: 'threading.Thread | None' = None)
Bases:
object
- class cognite.client.data_classes.data_modeling.instances.TargetUnit(property: 'str', unit: 'UnitReference | UnitSystemReference')
Bases:
CogniteObject
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.TypeInformation(data: Optional[dict[str, dict[str, dict[str, cognite.client.data_classes.data_modeling.instances.TypePropertyDefinition]]]] = None)
Bases:
UserDict
,CogniteObject
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.TypePropertyDefinition(type: 'PropertyType', nullable: 'bool' = True, auto_increment: 'bool' = False, immutable: 'bool' = False, default_value: 'str | int | dict | None' = None, name: 'str | None' = None, description: 'str | None' = None)
Bases:
CogniteObject
- dump(camel_case: bool = True, return_flat_dict: bool = False) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.instances.TypedEdge(space: str, external_id: str, version: int, type: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], last_updated_time: int, created_time: int, start_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], end_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], deleted_time: int | None)
Bases:
Edge
,TypedInstance
- class cognite.client.data_classes.data_modeling.instances.TypedEdgeApply(space: str, external_id: str, type: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], start_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], end_node: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str], existing_version: Optional[int] = None)
Bases:
EdgeApply
,TypedInstance
- class cognite.client.data_classes.data_modeling.instances.TypedInstance
Bases:
ABC
- class cognite.client.data_classes.data_modeling.instances.TypedNode(space: str, external_id: str, version: int, last_updated_time: int, created_time: int, deleted_time: int | None, type: cognite.client.data_classes.data_modeling.data_types.DirectRelationReference | tuple[str, str] | None)
Bases:
Node
,TypedInstance
- class cognite.client.data_classes.data_modeling.instances.TypedNodeApply(space: str, external_id: str, existing_version: Optional[int] = None, type: Optional[Union[DirectRelationReference, tuple[str, str]]] = None)
Bases:
NodeApply
,TypedInstance
- class cognite.client.data_classes.data_modeling.instances.WritableInstanceCore(space: str, external_id: str, instance_type: Literal['node', 'edge'])
Bases:
WritableDataModelingResource
[T_CogniteResource
],ABC
Instances query data classes
- class cognite.client.data_classes.data_modeling.query.EdgeResultSetExpression(from_: Optional[str] = None, max_distance: Optional[int] = None, direction: Literal['outwards', 'inwards'] = 'outwards', filter: Optional[Filter] = None, node_filter: Optional[Filter] = None, termination_filter: Optional[Filter] = None, limit_each: Optional[int] = None, sort: Optional[list[cognite.client.data_classes.data_modeling.instances.InstanceSort]] = None, post_sort: Optional[list[cognite.client.data_classes.data_modeling.instances.InstanceSort]] = None, limit: Optional[int] = None, chain_to: Literal['destination', 'source'] = 'destination')
Bases:
ResultSetExpression
Describes how to query for edges in the data model.
- Parameters
from (str | None) – Chain your result expression from this edge.
max_distance (int | None) – The largest - max - number of levels to traverse.
direction (Literal['outwards', 'inwards']) – The direction to use when traversing.
filter (Filter | None) – Filter the result set based on this filter.
node_filter (Filter | None) – Filter the result set based on this filter.
termination_filter (Filter | None) – Filter the result set based on this filter.
limit_each (int | None) – Limit the number of returned edges for each of the source nodes in the result set. The indicated uniform limit applies to the result set from the referenced from. limitEach only has meaning when you also specify maxDistance=1 and from.
sort (list[InstanceSort] | None) – Sort the result set based on this list of sort criteria.
post_sort (list[InstanceSort] | None) – Sort the result set based on this list of sort criteria.
limit (int | None) – Limit the result set to this number of instances.
chain_to (Literal['destination', 'source']) – Control which side of the edge to chain to. The chain_to option is only applicable if the result rexpression referenced in from contains edges. source will chain to start if you’re following edges outwards i.e direction=outwards. If you’re following edges inwards i.e direction=inwards, it will chain to end. destination (default) will chain to end if you’re following edges outwards i.e direction=outwards. If you’re following edges inwards i.e, direction=inwards, it will chain to start.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.query.NodeResultSetExpression(from_: Optional[str] = None, filter: Optional[Filter] = None, sort: Optional[list[cognite.client.data_classes.data_modeling.instances.InstanceSort]] = None, limit: Optional[int] = None, through: Optional[Union[list[str], tuple[str, str, str], PropertyId]] = None, direction: Literal['outwards', 'inwards'] = 'outwards', chain_to: Literal['destination', 'source'] = 'destination')
Bases:
ResultSetExpression
Describes how to query for nodes in the data model.
- Parameters
from (str | None) – Chain your result-expression based on this view.
filter (Filter | None) – Filter the result set based on this filter.
sort (list[InstanceSort] | None) – Sort the result set based on this list of sort criteria.
limit (int | None) – Limit the result set to this number of instances.
through (list[str] | tuple[str, str, str] | PropertyId | None) – Chain your result-expression through this container or view. The property must be a reference to a direct relation property. from_ must be defined. The tuple must be on the form (space, container, property) or (space, view/version, property).
direction (Literal['outwards', 'inwards']) – The direction to use when traversing direct relations. Only applicable when through is specified.
chain_to (Literal['destination', 'source']) – Control which side of the edge to chain to. The chain_to option is only applicable if the result rexpression referenced in from contains edges. source will chain to start if you’re following edges outwards i.e direction=outwards. If you’re following edges inwards i.e direction=inwards, it will chain to end. destination (default) will chain to end if you’re following edges outwards i.e direction=outwards. If you’re following edges inwards i.e, direction=inwards, it will chain to start.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.query.Query(with_: dict[str, cognite.client.data_classes.data_modeling.query.ResultSetExpression], select: dict[str, cognite.client.data_classes.data_modeling.query.Select], parameters: Optional[dict[str, str | int | float | bool | dict | list[str] | list[int] | list[float] | list[bool] | list[dict]]] = None, cursors: Optional[Mapping[str, str | None]] = None)
Bases:
CogniteObject
Query allows you to do advanced queries on the data model.
- Parameters
with (dict[str, ResultSetExpression]) – A dictionary of result set expressions to use in the query. The keys are used to reference the result set expressions in the select and parameters.
select (dict[str, Select]) – A dictionary of select expressions to use in the query. The keys must match the keys in the with_ dictionary. The select expressions define which properties to include in the result set.
parameters (dict[str, PropertyValue] | None) – Values in filters can be parameterised. Parameters are provided as part of the query object, and referenced in the filter itself.
cursors (Mapping[str, str | None] | None) – A dictionary of cursors to use in the query. These are for pagination purposes, for example, in the sync endpoint.
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.query.QueryResult(dict=None, /, **kwargs)
Bases:
UserDict
- class cognite.client.data_classes.data_modeling.query.ResultSetExpression(from_: str | None, filter: cognite.client.data_classes.filters.Filter | None, limit: int | None, sort: list[cognite.client.data_classes.data_modeling.instances.InstanceSort] | None, direction: Literal['outwards', 'inwards'] = 'outwards', chain_to: Literal['destination', 'source'] = 'destination')
Bases:
CogniteObject
,ABC
- abstract dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.query.Select(sources: 'list[SourceSelector]' = <factory>, sort: 'list[InstanceSort]' = <factory>, limit: 'int | None' = None)
Bases:
CogniteObject
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.query.SourceSelector(source: 'ViewId', properties: 'list[str] | None' = None, target_units: 'list[TargetUnit] | None' = None)
Bases:
CogniteObject
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
Data Modeling ID data classes
- class cognite.client.data_classes.data_modeling.ids.AbstractDataclass(*args: 'Any', **kwargs: 'Any')
Bases:
ABC
- class cognite.client.data_classes.data_modeling.ids.ContainerId(space: 'str', external_id: 'str')
Bases:
DataModelingId
- class cognite.client.data_classes.data_modeling.ids.DataModelId(space: 'str', external_id: 'str', version: 'str | None' = None)
Bases:
VersionedDataModelingId
- class cognite.client.data_classes.data_modeling.ids.DataModelingId(space: 'str', external_id: 'str')
Bases:
AbstractDataclass
- class cognite.client.data_classes.data_modeling.ids.EdgeId(space: 'str', external_id: 'str')
Bases:
InstanceId
- class cognite.client.data_classes.data_modeling.ids.IdLike(*args, **kwargs)
Bases:
Protocol
- class cognite.client.data_classes.data_modeling.ids.NodeId(space: 'str', external_id: 'str')
Bases:
InstanceId
- class cognite.client.data_classes.data_modeling.ids.PropertyId(source: 'ViewId | ContainerId', property: 'str')
Bases:
CogniteObject
- dump(camel_case: bool = True) dict[str, Any]
Dump the instance into a json serializable Python data type.
- Parameters
camel_case (bool) – Use camelCase for attribute names. Defaults to True.
- Returns
A dictionary representation of the instance.
- Return type
dict[str, Any]
- class cognite.client.data_classes.data_modeling.ids.VersionedDataModelingId(space: 'str', external_id: 'str', version: 'str | None' = None)
Bases:
AbstractDataclass
- class cognite.client.data_classes.data_modeling.ids.VersionedIdLike(*args, **kwargs)
Bases:
IdLike
,Protocol
- class cognite.client.data_classes.data_modeling.ids.ViewId(space: 'str', external_id: 'str', version: 'str | None' = None)
Bases:
VersionedDataModelingId
GraphQL
Apply DML
- DataModelingGraphQLAPI.apply_dml(id: cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str], dml: str, name: Optional[str] = None, description: Optional[str] = None, previous_version: Optional[str] = None) DMLApplyResult
Apply the DML for a given data model.
- Parameters
id (DataModelIdentifier) – The data model to apply DML to.
dml (str) – The DML to apply.
name (str | None) – The name of the data model.
description (str | None) – The description of the data model.
previous_version (str | None) – The previous version of the data model. Specify to reuse view versions from previous data model version.
- Returns
The id of the updated data model.
- Return type
DMLApplyResult
Examples
Apply DML:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.graphql.apply_dml( ... id=("mySpaceExternalId", "myModelExternalId", "1"), ... dml="type MyType { id: String! }", ... name="My model name", ... description="My model description" ... )
Execute GraphQl query
- DataModelingGraphQLAPI.query(id: cognite.client.data_classes.data_modeling.ids.DataModelId | tuple[str, str] | tuple[str, str, str], query: str, variables: Optional[dict[str, Any]] = None) dict[str, Any]
Execute a GraphQl query against a given data model.
- Parameters
id (DataModelIdentifier) – The data model to query.
query (str) – The query to issue.
variables (dict[str, Any] | None) – An optional dict of variables to pass to the query.
- Returns
The query result
- Return type
dict[str, Any]
Examples
Execute a graphql query against a given data model:
>>> from cognite.client import CogniteClient >>> client = CogniteClient() >>> res = client.data_modeling.graphql.query( ... id=("mySpace", "myDataModel", "v1"), ... query="listThings { items { thingProperty } }", ... )