From c375138550615e8a076034a5366d2de4d11d96db Mon Sep 17 00:00:00 2001 From: anders-albert Date: Sun, 15 Dec 2024 20:16:36 +0100 Subject: [PATCH] fix: core extension tutorial --- .../figs/core_extension_no_connection.png | Bin 0 -> 25984 bytes .../data-modeling/core_extension.ipynb | 172 +++++++++++++----- .../data-modeling/dms_data_model.html | 26 ++- 3 files changed, 143 insertions(+), 55 deletions(-) create mode 100644 docs/artifacts/figs/core_extension_no_connection.png diff --git a/docs/artifacts/figs/core_extension_no_connection.png b/docs/artifacts/figs/core_extension_no_connection.png new file mode 100644 index 0000000000000000000000000000000000000000..c38f50b43c093bb91780a6906dbfef631e96bfdc GIT binary patch literal 25984 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 ('cdf_cdm', 'CogniteCore', 'v1') read successfully\n" + "Neat Engine 2.0.3 loaded.\n", + "Data model read passed\n" ] }, { @@ -124,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "4ca48575-6876-410a-814a-ed8757ad0a9a", "metadata": {}, "outputs": [], @@ -137,12 +138,13 @@ "id": "5349941f-efbb-4bde-92c5-3ea4328518f3", "metadata": {}, "source": [ - "Next we will turn the `CogniteCore` model into the basis for our new model `ExtensionCore`" + "Next we will turn the `CogniteCore` model into the basis for our new model `Enterprise` model. This means \n", + "we are creating an extension from the `CogniteCore`." ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "0c533aa7-9b69-4a6f-98e7-a96cdfc1f65c", "metadata": { "editable": true, @@ -153,7 +155,59 @@ }, "outputs": [], "source": [ - "neat.prepare.data_model.to_extension(new_data_model_id=(\"sp_doctrino_space\", \"ExtensionCore\", \"v1\"), prefix=\"MyOrg\")" + "neat.prepare.data_model.to_enterprise(\n", + " data_model_id=(\"sp_doctrino_space\", \"ExtensionCore\", \"v1\"), org_name=\"MyOrg\", move_connections=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d24f6f4a-c5c0-462d-bc8e-06b9eb95fee7", + "metadata": {}, + "source": [ + "Note that we set `move_connections=True`. This repeats all connections in the `CogniteCore` model and updates the value type to match our new types.\n", + "\n", + "We can show the results by using the `show.data_model()` method." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "309ecda9-bbcf-482c-bdd9-3e66d96ee161", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dms_data_model.html\n" + ] + }, + { + "data": { + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "neat.show.data_model()" ] }, { @@ -161,7 +215,7 @@ "id": "e8baac0a-104b-40d7-be8e-feba27d12454", "metadata": {}, "source": [ - "The new base model is now ready. We can now directly publish it to CDF " + "The new enterprise model is now ready. We can now publish it to CDF " ] }, { @@ -170,61 +224,67 @@ "id": "f27e25fe-9c94-4514-b235-d27c5e713e04", "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You can inspect the details with the .inspect.outcome.data_model(...) method.\n" + ] + }, { "data": { "text/html": [ - "
\n", - "\n", - "\n", + "
\n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - "
namecreated
 namecreated
0spaces1.00schema0
1containersNaN1spaces1
2views11.02containers11
3data_models1.03views11
4data_models1
5nodes0
\n", - "
" + "\n" ], "text/plain": [ - "[UploadResult(name='spaces', error_messages=[], issues=[], created={'sp_doctrino_space'}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", - " UploadResult(name='containers', error_messages=[], issues=[], created=set(), upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", - " UploadResult(name='views', error_messages=[], issues=[], created={ViewId(space='sp_doctrino_space', external_id='MyOrgUnit', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgAsset', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgAssetType', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgActivity', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgEquipment', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgEquipmentType', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgSourceSystem', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgFileCategory', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgTimeSeries', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgFile', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgAssetClass', version='v1')}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", - " UploadResult(name='data_models', error_messages=[], issues=[], created={DataModelId(space='sp_doctrino_space', external_id='ExtensionCore', version='v1')}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set())]" + "[UploadResultCore(name='schema', error_messages=[], issues=[]),\n", + " UploadResult(name='spaces', error_messages=[], issues=[], created={'sp_doctrino_space'}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", + " UploadResult(name='containers', error_messages=[], issues=[], created={ContainerId(space='sp_doctrino_space', external_id='MyOrgAsset'), ContainerId(space='sp_doctrino_space', external_id='MyOrgActivity'), ContainerId(space='sp_doctrino_space', external_id='MyOrgAssetClass'), ContainerId(space='sp_doctrino_space', external_id='MyOrgFileCategory'), ContainerId(space='sp_doctrino_space', external_id='MyOrgEquipmentType'), ContainerId(space='sp_doctrino_space', external_id='MyOrgFile'), ContainerId(space='sp_doctrino_space', external_id='MyOrgAssetType'), ContainerId(space='sp_doctrino_space', external_id='MyOrgUnit'), ContainerId(space='sp_doctrino_space', external_id='MyOrgEquipment'), ContainerId(space='sp_doctrino_space', external_id='MyOrgTimeSeries'), ContainerId(space='sp_doctrino_space', external_id='MyOrgSourceSystem')}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", + " UploadResult(name='views', error_messages=[], issues=[], created={ViewId(space='sp_doctrino_space', external_id='MyOrgEquipment', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgFileCategory', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgEquipmentType', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgTimeSeries', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgSourceSystem', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgAssetType', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgFile', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgActivity', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgAsset', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgAssetClass', version='v1'), ViewId(space='sp_doctrino_space', external_id='MyOrgUnit', version='v1')}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", + " UploadResult(name='data_models', error_messages=[], issues=[], created={DataModelId(space='sp_doctrino_space', external_id='ExtensionCore', version='v1')}, upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set()),\n", + " UploadResult(name='nodes', error_messages=[], issues=[], created=set(), upserted=set(), deleted=set(), changed=set(), unchanged=set(), skipped=set(), failed_created=set(), failed_upserted=set(), failed_changed=set(), failed_deleted=set())]" ] }, "execution_count": 9, @@ -266,7 +326,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "06df8a88-2afa-49dc-8df3-d29987e7a988", "metadata": { "editable": true, @@ -277,7 +337,7 @@ }, "outputs": [], "source": [ - "neat.to.excel(\"my_extension.xlsx\")" + "neat.to.excel(\"my_extension.xlsx\", model=\"dms\")" ] }, { @@ -541,7 +601,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "888713e2-a68e-4b83-ae8e-36a1563c6e61", "metadata": { "editable": true, @@ -552,13 +612,27 @@ "hide" ] }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Deleted space []\n" + ] + } + ], "source": [ "# This cell is hidden so it does not show in the docs.\n", - "from cognite.neat._utils.cdf.loaders import SpaceLoader\n", - "\n", - "SpaceLoader(client).clean(\"sp_doctrino_space\");" + "neat._client.loaders.spaces.clean(\"sp_doctrino_space\");" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b61e33fe-a45a-44af-9f17-7d164daf9ea1", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/docs/tutorials/data-modeling/dms_data_model.html b/docs/tutorials/data-modeling/dms_data_model.html index e9ab17f1f..06e606347 100644 --- a/docs/tutorials/data-modeling/dms_data_model.html +++ b/docs/tutorials/data-modeling/dms_data_model.html @@ -261,13 +261,27 @@

> - + - + - + - + + + + + + + + + + + + + + + @@ -321,8 +335,8 @@

// parsing and collecting nodes and edges from the python - nodes = new vis.DataSet([{"color": "#97c2fc", "id": "Documentation", "label": "Documentation", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "Pump", "label": "Pump", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "Facility", "label": "Facility", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "CogniteTimeSeries", "label": "CogniteTimeSeries", "shape": "dot", "size": 10}]); - edges = new vis.DataSet([{"arrows": "to", "from": "Documentation", "label": "relatedPumps", "to": "Pump", "width": 1}, {"arrows": "to", "from": "Facility", "label": "hasPumps", "to": "Pump", "width": 1}, {"arrows": "to", "from": "Pump", "label": "documentation", "to": "Documentation", "width": 1}, {"arrows": "to", "from": "Pump", "label": "livesIn", "to": "Facility", "width": 1}, {"arrows": "to", "from": "Pump", "label": "temperature", "to": "CogniteTimeSeries", "width": 1}]); + nodes = new vis.DataSet([{"color": "#97c2fc", "id": "MyOrgActivity", "label": "MyOrgActivity", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgAsset", "label": "MyOrgAsset", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgEquipment", "label": "MyOrgEquipment", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgSourceSystem", "label": "MyOrgSourceSystem", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgTimeSeries", "label": "MyOrgTimeSeries", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgAssetClass", "label": "MyOrgAssetClass", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgFile", "label": "MyOrgFile", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgAssetType", "label": "MyOrgAssetType", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgEquipmentType", "label": "MyOrgEquipmentType", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgFileCategory", "label": "MyOrgFileCategory", "shape": "dot", "size": 10}, {"color": "#97c2fc", "id": "MyOrgUnit", "label": "MyOrgUnit", "shape": "dot", "size": 10}]); + edges = new vis.DataSet([{"arrows": "to", "from": "MyOrgActivity", "label": "Assets", "to": "MyOrgAsset", "width": 1}, {"arrows": "to", "from": "MyOrgActivity", "label": "Equipment", "to": "MyOrgEquipment", "width": 1}, {"arrows": "to", "from": "MyOrgActivity", "label": "source", "to": "MyOrgSourceSystem", "width": 1}, {"arrows": "to", "from": "MyOrgActivity", "label": "Time series", "to": "MyOrgTimeSeries", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Activities", "to": "MyOrgActivity", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Asset class", "to": "MyOrgAssetClass", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Root", "to": "MyOrgAsset", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Equipment", "to": "MyOrgEquipment", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Files", "to": "MyOrgFile", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "source", "to": "MyOrgSourceSystem", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Time series", "to": "MyOrgTimeSeries", "width": 1}, {"arrows": "to", "from": "MyOrgAsset", "label": "Asset type", "to": "MyOrgAssetType", "width": 1}, {"arrows": "to", "from": "MyOrgAssetType", "label": "Asset class", "to": "MyOrgAssetClass", "width": 1}, {"arrows": "to", "from": "MyOrgEquipment", "label": "Activities", "to": "MyOrgActivity", "width": 1}, {"arrows": "to", "from": "MyOrgEquipment", "label": "Asset", "to": "MyOrgAsset", "width": 1}, {"arrows": "to", "from": "MyOrgEquipment", "label": "Equipment type", "to": "MyOrgEquipmentType", "width": 1}, {"arrows": "to", "from": "MyOrgEquipment", "label": "Files", "to": "MyOrgFile", "width": 1}, {"arrows": "to", "from": "MyOrgEquipment", "label": "source", "to": "MyOrgSourceSystem", "width": 1}, {"arrows": "to", "from": "MyOrgEquipment", "label": "Time series", "to": "MyOrgTimeSeries", "width": 1}, {"arrows": "to", "from": "MyOrgFile", "label": "Assets", "to": "MyOrgAsset", "width": 1}, {"arrows": "to", "from": "MyOrgFile", "label": "Category", "to": "MyOrgFileCategory", "width": 1}, {"arrows": "to", "from": "MyOrgFile", "label": "Equipment", "to": "MyOrgEquipment", "width": 1}, {"arrows": "to", "from": "MyOrgFile", "label": "source", "to": "MyOrgSourceSystem", "width": 1}, {"arrows": "to", "from": "MyOrgTimeSeries", "label": "Activities", "to": "MyOrgActivity", "width": 1}, {"arrows": "to", "from": "MyOrgTimeSeries", "label": "Assets", "to": "MyOrgAsset", "width": 1}, {"arrows": "to", "from": "MyOrgTimeSeries", "label": "Equipment", "to": "MyOrgEquipment", "width": 1}, {"arrows": "to", "from": "MyOrgTimeSeries", "label": "source", "to": "MyOrgSourceSystem", "width": 1}, {"arrows": "to", "from": "MyOrgTimeSeries", "label": "Unit", "to": "MyOrgUnit", "width": 1}]); nodeColors = {}; allNodes = nodes.get({ returnType: "Object" });