cognite-neat 1.0.9__py3-none-any.whl → 1.0.11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,7 +68,15 @@ class PhysicalDataModel:
68
68
 
69
69
  @session_wrapper
70
70
  class ReadPhysicalDataModel:
71
- """Read physical data model from various sources into NeatSession store."""
71
+ """Read physical data model from various sources into NeatSession store.
72
+
73
+ Available methods:
74
+
75
+ - `neat.physical_data_model.read.yaml`
76
+ - `neat.physical_data_model.read.json`
77
+ - `neat.physical_data_model.read.excel`
78
+ - `neat.physical_data_model.read.cdf`
79
+ """
72
80
 
73
81
  def __init__(self, store: NeatStore, client: NeatClient, config: NeatConfig) -> None:
74
82
  self._store = store
@@ -94,12 +102,13 @@ class ReadPhysicalDataModel:
94
102
  reader = DMSAPIImporter.from_yaml(path)
95
103
  else:
96
104
  raise UserInputError(f"Unsupported format: {format}. Supported formats are 'neat' and 'toolkit'.")
105
+
97
106
  on_success = DmsDataModelValidation(
98
- self._client,
99
107
  modus_operandi=self._config.modeling.mode,
108
+ cdf_snapshot=self._store.cdf_snapshot,
109
+ limits=self._store.limits,
100
110
  can_run_validator=self._config.validation.can_run_validator,
101
111
  )
102
-
103
112
  return self._store.read_physical(reader, on_success)
104
113
 
105
114
  def json(self, io: Any, format: Literal["neat", "toolkit"] = "neat") -> None:
@@ -121,12 +130,13 @@ class ReadPhysicalDataModel:
121
130
  reader = DMSAPIImporter.from_json(path)
122
131
  else:
123
132
  raise UserInputError(f"Unsupported format: {format}. Supported formats are 'neat' and 'toolkit'.")
133
+
124
134
  on_success = DmsDataModelValidation(
125
- self._client,
126
135
  modus_operandi=self._config.modeling.mode,
136
+ cdf_snapshot=self._store.cdf_snapshot,
137
+ limits=self._store.limits,
127
138
  can_run_validator=self._config.validation.can_run_validator,
128
139
  )
129
-
130
140
  return self._store.read_physical(reader, on_success)
131
141
 
132
142
  def excel(self, io: Any) -> None:
@@ -139,9 +149,11 @@ class ReadPhysicalDataModel:
139
149
 
140
150
  path = NeatReader.create(io).materialize_path()
141
151
  reader = DMSTableImporter.from_excel(path)
152
+
142
153
  on_success = DmsDataModelValidation(
143
- self._client,
144
154
  modus_operandi=self._config.modeling.mode,
155
+ cdf_snapshot=self._store.cdf_snapshot,
156
+ limits=self._store.limits,
145
157
  can_run_validator=self._config.validation.can_run_validator,
146
158
  )
147
159
 
@@ -159,9 +171,11 @@ class ReadPhysicalDataModel:
159
171
  reader = DMSAPIImporter.from_cdf(
160
172
  DataModelReference(space=space, external_id=external_id, version=version), self._client
161
173
  )
174
+
162
175
  on_success = DmsDataModelValidation(
163
- self._client,
164
176
  modus_operandi=self._config.modeling.mode,
177
+ cdf_snapshot=self._store.cdf_snapshot,
178
+ limits=self._store.limits,
165
179
  can_run_validator=self._config.validation.can_run_validator,
166
180
  )
167
181
 
@@ -170,7 +184,15 @@ class ReadPhysicalDataModel:
170
184
 
171
185
  @session_wrapper
172
186
  class WritePhysicalDataModel:
173
- """Write physical data model to various sources from NeatSession store."""
187
+ """Write physical data model to various sources from NeatSession store.
188
+
189
+ Available methods:
190
+
191
+ - `neat.physical_data_model.write.yaml`
192
+ - `neat.physical_data_model.write.json`
193
+ - `neat.physical_data_model.write.excel`
194
+ - `neat.physical_data_model.write.cdf`
195
+ """
174
196
 
175
197
  def __init__(self, store: NeatStore, client: NeatClient, config: NeatConfig) -> None:
176
198
  self._store = store
@@ -238,22 +260,24 @@ class WritePhysicalDataModel:
238
260
  """Write physical data model with views, containers, and spaces that are in the same space as the data model
239
261
  to CDF.
240
262
 
241
- This method depends on the session governance profile for data modeling set when creating the NeatSession.
242
- - In 'additive' mode, only new or updates to data models/views/containers will be applied.
243
- You cannot remove views from data models, properties from views or containers, or
244
- indexes or constraints from containers.
245
- - In 'rebuild' mode, the data model in CDF will be made to exactly match the data model in Neat.
246
- If there are any breaking changes, Neat will delete and recreate the relevant
247
- data model/view/container. However, if drop_data is set to False, Neat will treat
248
- containers as 'additive' and will not delete any containers or remove properties,
249
- indexes, or constraints. To fully rebuild the data model, including containers, set drop_data to True.
250
-
251
263
  Args:
252
264
  dry_run (bool): If true, the changes will not be applied to CDF. Instead, Neat will
253
265
  report what changes would have been made.
254
266
  rollback (bool): If true, all changes will be rolled back if any error occurs.
255
267
  drop_data (bool): Only applicable if the session mode is 'rebuild'. If
256
268
 
269
+ !!! note "Impact of governance profile"
270
+ This method depends on the session governance profile for data modeling set when creating the NeatSession:
271
+
272
+ - In `additive` mode, only new or updates to data models/views/containers will be applied.
273
+ You cannot remove views from data models, properties from views or containers, or
274
+ indexes or constraints from containers.
275
+
276
+ - In `rebuild` mode, the data model in CDF will be made to exactly match the data model in Neat.
277
+ If there are any breaking changes, Neat will delete and recreate the relevant
278
+ data model/view/container. However, if drop_data is set to False, Neat will treat
279
+ containers as `additive` and will not delete any containers or remove properties,
280
+ indexes, or constraints. To fully rebuild the data model, including containers, set drop_data to True.
257
281
  """
258
282
  writer = DMSAPIExporter()
259
283
  options = DeploymentOptions(
@@ -33,8 +33,8 @@ class NeatSession:
33
33
  self._config = NeatConfig.create_predefined(config) if isinstance(config, str) else config
34
34
 
35
35
  # Use configuration for physical data model
36
- self._store = NeatStore()
37
36
  self._client = NeatClient(client)
37
+ self._store = NeatStore(config=self._config, client=self._client)
38
38
  self.physical_data_model = PhysicalDataModel(self._store, self._client, self._config)
39
39
  self.issues = Issues(self._store)
40
40
  self.result = Result(self._store)
@@ -2,6 +2,7 @@ from collections.abc import Callable
2
2
  from functools import wraps
3
3
  from typing import Any, Protocol, TypeVar
4
4
 
5
+ from cognite.neat._issues import ConsistencyError, Recommendation
5
6
  from cognite.neat._session._usage_analytics._collector import Collector
6
7
  from cognite.neat._store._store import NeatStore
7
8
  from cognite.neat._utils.text import NEWLINE, split_on_capitals
@@ -33,19 +34,33 @@ def session_wrapper(cls: type[T_Class]) -> type[T_Class]:
33
34
  _COLLECTOR.collect("action", {"action": identifier, "success": True})
34
35
  return res
35
36
  change = self._store.provenance[-1]
36
- issues_count = len(change.issues) if change.issues else 0
37
- errors_count = len(change.errors) if change.errors else 0
38
- total_issues = issues_count + errors_count
37
+
38
+ recommendation_count = (
39
+ len(change.issues) if change.issues and change.issues.by_type().get(Recommendation) else 0
40
+ )
41
+ consistency_errors_count = (
42
+ len(change.errors) if change.errors and change.errors.by_type().get(ConsistencyError) else 0
43
+ )
44
+ syntax_errors_count = len(change.errors) if change.errors else 0
45
+ errors_count = consistency_errors_count + syntax_errors_count
46
+ total_insights = recommendation_count + consistency_errors_count + syntax_errors_count
39
47
 
40
48
  data_model_not_read = not change.successful and "ReadPhysicalDataModel" in identifier
41
49
 
50
+ if not change.successful:
51
+ success_icon = "❌"
52
+ elif change.successful and consistency_errors_count:
53
+ success_icon = "⚠️"
54
+ else:
55
+ success_icon = "✅"
56
+
42
57
  print(
43
58
  f"{display_name} "
44
- f"{'✅' if change.successful else '❌'}"
45
- f"{f' | Issues: {total_issues} (of which {errors_count} critical)' if total_issues > 0 else ''}"
59
+ f"{success_icon}"
60
+ f"{f' | Insights: {total_insights} (of which {errors_count} errors)' if total_insights > 0 else ''}"
46
61
  f"{NEWLINE + '⚠️ Data model not read into session' if data_model_not_read else ''}"
47
- f"{NEWLINE + '📋 For details on issues run neat.issues' if change.issues or change.errors else ''}"
48
- f"{NEWLINE + '📊 For details on result run neat.result' if change.result else ''}"
62
+ f"{NEWLINE + '📋 For details on issues run .issues' if change.issues or change.errors else ''}"
63
+ f"{NEWLINE + '📊 For details on result run .result' if change.result else ''}"
49
64
  )
50
65
  if _COLLECTOR.can_collect:
51
66
  event = change.as_mixpanel_event()
@@ -3,11 +3,17 @@ from collections.abc import Callable
3
3
  from datetime import datetime, timezone
4
4
  from typing import Any, cast
5
5
 
6
+ from cognite.neat._client.client import NeatClient
7
+ from cognite.neat._config import NeatConfig
6
8
  from cognite.neat._data_model._shared import OnSuccess, OnSuccessIssuesChecker, OnSuccessResultProducer
9
+ from cognite.neat._data_model._snapshot import SchemaSnapshot
7
10
  from cognite.neat._data_model.deployer.data_classes import DeploymentResult
11
+ from cognite.neat._data_model.deployer.deployer import SchemaDeployer
8
12
  from cognite.neat._data_model.exporters import DMSExporter, DMSFileExporter
13
+ from cognite.neat._data_model.exporters._api_exporter import DMSAPIExporter
9
14
  from cognite.neat._data_model.importers import DMSImporter, DMSTableImporter
10
15
  from cognite.neat._data_model.models.dms import RequestSchema as PhysicalDataModel
16
+ from cognite.neat._data_model.models.dms._limits import SchemaLimits
11
17
  from cognite.neat._exceptions import DataModelImportException
12
18
  from cognite.neat._issues import IssueList
13
19
  from cognite.neat._state_machine._states import EmptyState, PhysicalState, State
@@ -19,10 +25,16 @@ Agents = DMSExporter | DMSTableImporter | DMSImporter
19
25
 
20
26
 
21
27
  class NeatStore:
22
- def __init__(self) -> None:
28
+ def __init__(self, config: NeatConfig, client: NeatClient) -> None:
23
29
  self.physical_data_model = DataModelList()
24
30
  self.provenance = Provenance()
25
31
  self.state: State = EmptyState()
32
+ self._client = client
33
+ self._config = config
34
+
35
+ # Caching CDF Schema limits and snapshot
36
+ self.limits = SchemaLimits.from_api_response(self._client.statistics.project())
37
+ self.cdf_snapshot = SchemaSnapshot.fetch_entire_cdf(self._client)
26
38
 
27
39
  def read_physical(self, reader: DMSImporter, on_success: OnSuccess | None = None) -> None:
28
40
  """Read object from the store"""
@@ -59,6 +71,14 @@ class NeatStore:
59
71
 
60
72
  self.provenance.append(change)
61
73
 
74
+ if (
75
+ isinstance(writer, DMSAPIExporter)
76
+ and isinstance(on_success, SchemaDeployer)
77
+ and not on_success.options.dry_run
78
+ ):
79
+ # Update CDF snapshot after successful deployment
80
+ self.cdf_snapshot = SchemaSnapshot.fetch_entire_cdf(self._client)
81
+
62
82
  def _can_agent_do_activity(self, agent: Agents) -> None:
63
83
  """Validate if activity can be performed in the current state and considering provenance"""
64
84
  if not self.state.can_transition(agent):
cognite/neat/_version.py CHANGED
@@ -1,2 +1,2 @@
1
- __version__ = "1.0.9"
1
+ __version__ = "1.0.11"
2
2
  __engine__ = "^2.0.4"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite-neat
3
- Version: 1.0.9
3
+ Version: 1.0.11
4
4
  Summary: Knowledge graph transformation
5
5
  Author: Nikola Vasiljevic, Anders Albert
6
6
  Author-email: Nikola Vasiljevic <nikola.vasiljevic@cognite.com>, Anders Albert <anders.albert@cognite.com>
@@ -1,4 +1,4 @@
1
- cognite/neat/__init__.py,sha256=u5EhnGuNS2GKydU6lVFCNrBpHBBKUnCDAE63Cqk__eo,244
1
+ cognite/neat/__init__.py,sha256=4RJ6p29cDU_VwQ3sVsgiFdb817BKqKASp-lIgQeD6BI,300
2
2
  cognite/neat/_client/__init__.py,sha256=75Bh7eGhaN4sOt3ZcRzHl7pXaheu1z27kmTHeaI05vo,114
3
3
  cognite/neat/_client/api.py,sha256=nbxCdWBXcTVM6MrQeT_VpB6ehfoI544JHPFq-ejQKCY,292
4
4
  cognite/neat/_client/client.py,sha256=h0HELAHiBFxMNInkDu4AzbgfEIXqeM0BqqnMBmXjgi0,903
@@ -9,20 +9,21 @@ cognite/neat/_client/data_model_api.py,sha256=ogVHOabQ3HTqWaaoiGClmbtYdP-pl6DPN2
9
9
  cognite/neat/_client/spaces_api.py,sha256=xHtSMt_2k2YwZ5_8kH2dfa7fWxQQrky7wra4Ar2jwqs,4111
10
10
  cognite/neat/_client/statistics_api.py,sha256=HcYb2nNC9M_iaI1xyjjLn2Cz1tcyu7BJeaqVps79tg4,773
11
11
  cognite/neat/_client/views_api.py,sha256=Qzk_wiLtaWszxCQFDBoWCH1yDc4GOEJsVOcL061rcK0,5639
12
- cognite/neat/_config.py,sha256=MzQiZer0Wyk6VEtfDtl_tTF9KYAjYu2Q8jE7RugMJuM,9201
12
+ cognite/neat/_config.py,sha256=Ryxk6_TTFXBclhtnUlPuYFnV--GOVl45D2A9xAGZAms,9703
13
13
  cognite/neat/_data_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- cognite/neat/_data_model/_analysis.py,sha256=d_gP0M_8-HjSAhWT28cfdOsydNAKmOOT4pTh5W_CQcU,8827
14
+ cognite/neat/_data_model/_analysis.py,sha256=Sp4a5Zmu2eVFkvAA7tt7YidyiHcYmFOhRVI2kpg-G5E,14988
15
15
  cognite/neat/_data_model/_constants.py,sha256=txKFNRPkCRrIkXbf_bLCYBCMkoE_7nc5LliohzMGwOs,1596
16
16
  cognite/neat/_data_model/_identifiers.py,sha256=2l_bCtuE6TVZLCnzV7hhAUTP0kU6ji4QlIK-JhRK1fM,1922
17
17
  cognite/neat/_data_model/_shared.py,sha256=H0gFqa8tKFNWuvdat5jL6OwySjCw3aQkLPY3wtb9Wrw,1302
18
+ cognite/neat/_data_model/_snapshot.py,sha256=jiAuik3HmS2rOuNc9bpuayu4i3OpwgZWYeOuYtU0gjU,6186
18
19
  cognite/neat/_data_model/deployer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
20
  cognite/neat/_data_model/deployer/_differ.py,sha256=1ircRBCoaFooSzMTmTZBTORHeAhDa8YtDEnVwBo6TUI,4742
20
21
  cognite/neat/_data_model/deployer/_differ_container.py,sha256=mcy7PhUOfnvAxnZWNoeNRmiXa8ovIn0W6YoqfzVYyiQ,14665
21
22
  cognite/neat/_data_model/deployer/_differ_data_model.py,sha256=iA7Xp-7NRvzZJXLLpJaLebkKKpv_VCBKPX6f-RU9wBk,1864
22
23
  cognite/neat/_data_model/deployer/_differ_space.py,sha256=J_AaqiseLpwQsOkKc7gmho4U2oSWAGVeEdQNepZiWw0,343
23
24
  cognite/neat/_data_model/deployer/_differ_view.py,sha256=g1xHwsoxFUaTOTtQa19nntKF3rxFzc2FxpKKFAUN_NE,11412
24
- cognite/neat/_data_model/deployer/data_classes.py,sha256=1T4Kk9DjYo_wgmFMC--DWq82Ws7F3FqCiNtcRA5C5_4,26916
25
- cognite/neat/_data_model/deployer/deployer.py,sha256=8W6Zy8MVLaUWRqNlNrP-A1HUJlOMdzpDsyPqClxfyrU,20288
25
+ cognite/neat/_data_model/deployer/data_classes.py,sha256=BYIkbzVNT_UA4MwLCa_wU0DnrzB5DMxS-mgvmZUV3_I,26522
26
+ cognite/neat/_data_model/deployer/deployer.py,sha256=acMGnAeZnfFf-kzN5UFDiErT48bsTW7qsXhwdt9h-Mw,19096
26
27
  cognite/neat/_data_model/exporters/__init__.py,sha256=AskjmB_0Vqib4kN84bWt8-M8nO42QypFf-l-E8oA5W8,482
27
28
  cognite/neat/_data_model/exporters/_api_exporter.py,sha256=G9cqezy_SH8VdhW4o862qBHh_QcbzfP6O1Yyjvdpeog,1579
28
29
  cognite/neat/_data_model/exporters/_base.py,sha256=rG_qAU5i5Hh5hUMep2UmDFFZID4x3LEenL6Z5C6N8GQ,646
@@ -55,13 +56,13 @@ cognite/neat/_data_model/models/dms/_data_types.py,sha256=FMt_d5aJD-o3s9VQWyyCVl
55
56
  cognite/neat/_data_model/models/dms/_http.py,sha256=YIRRowqkphFAYkx3foTeLyPMe9fNnmzhUCBDXe0u9Kk,926
56
57
  cognite/neat/_data_model/models/dms/_indexes.py,sha256=ZtXe8ABuRcsAwRIZ9FCanS3uwZHpkOAhvDvjSXtx_Fs,900
57
58
  cognite/neat/_data_model/models/dms/_limits.py,sha256=x_X7T50SkwPNo_aHTGCr35hDXI8FRdZLYIB9HpFqnIk,3520
58
- cognite/neat/_data_model/models/dms/_references.py,sha256=x2sK_YnEpWtLED4j8dqrqVxOrJEkB8PcNJJ5Ab8YzwU,3724
59
+ cognite/neat/_data_model/models/dms/_references.py,sha256=Mx_nxfvOrvAx7nvebhhbFw6eRm3nHqeFW5P5AqADUlM,3890
59
60
  cognite/neat/_data_model/models/dms/_schema.py,sha256=2JFLcm52smzPdtZ69Lf02UbYAD8I_hpRbI7ZAzdxJJs,641
60
61
  cognite/neat/_data_model/models/dms/_space.py,sha256=3KvWg0bVuLpgQwhkDbsJ53ZMMmK0cKUgfyDRrSrERko,1904
61
62
  cognite/neat/_data_model/models/dms/_types.py,sha256=5-cgC53AG186OZUqkltv7pMjcGNLuH7Etbn8IUcgk1c,447
62
63
  cognite/neat/_data_model/models/dms/_view_filter.py,sha256=SXZw2soq9KKNFQQKHPrI9YxptxYdffUhbo-rNI_icmw,10476
63
64
  cognite/neat/_data_model/models/dms/_view_property.py,sha256=nJBPmw4KzJOdaQmvRfCE3A4FL-E13OsNUEufI64vLKo,9271
64
- cognite/neat/_data_model/models/dms/_views.py,sha256=1yxuwnsUM4WKItEY1hmJbMQKW0q3Dn321NmLmKLJeCM,8657
65
+ cognite/neat/_data_model/models/dms/_views.py,sha256=oWSqp9_tBNwKQgj4xKICQKE3f89Ya6Xyjcms-I66zN0,8931
65
66
  cognite/neat/_data_model/models/entities/__init__.py,sha256=7dDyES7fYl9LEREal59F038RdEvfGRpUOc6n_MtSgjU,836
66
67
  cognite/neat/_data_model/models/entities/_base.py,sha256=PaNrD29iwxuqTpRWbmESMTxRhhKXmRyDF_cLZEC69dg,3927
67
68
  cognite/neat/_data_model/models/entities/_constants.py,sha256=EK9Bus8UgFgxK5cVFMTAqWSl6aWkDe7d59hpUmlHlBs,517
@@ -70,14 +71,14 @@ cognite/neat/_data_model/models/entities/_identifiers.py,sha256=Ab_cMPbk5b0tKniv
70
71
  cognite/neat/_data_model/models/entities/_parser.py,sha256=zef_pSDZYMZrJl4IKreFDR577KutfhtN1xpH3Ayjt2o,7669
71
72
  cognite/neat/_data_model/validation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
73
  cognite/neat/_data_model/validation/dms/__init__.py,sha256=kKD18-Bg_G-w11Cs7Wv_TKV0C_q62Pm2RKLpOz27ar4,2642
73
- cognite/neat/_data_model/validation/dms/_ai_readiness.py,sha256=hFrnRzBBf143ejLHRk3BpylzrVpxUX537BouOlv4PFE,15552
74
- cognite/neat/_data_model/validation/dms/_base.py,sha256=207zS_aTQYZc16jLHfJSz5Idma0ZAgIuZZjVFnN0q4A,16271
75
- cognite/neat/_data_model/validation/dms/_connections.py,sha256=6ea8WZNqYT9SPluwXvg0mgDJpzZMqpPC5xonbdLrT4E,27305
76
- cognite/neat/_data_model/validation/dms/_consistency.py,sha256=uJ6coAVupD3WfeeXxoCIebM8WSnR78GXBXIBnN59aao,2477
77
- cognite/neat/_data_model/validation/dms/_containers.py,sha256=UuvzrBBw45F5f9uzCh97lW4t7m7XIIT1I9FnzzYUYv4,7533
78
- cognite/neat/_data_model/validation/dms/_limits.py,sha256=UDJ3oY2Xp96Zw2QpsGM4MQ6gZCrDuoKhhuEY2uQJLP4,16186
79
- cognite/neat/_data_model/validation/dms/_orchestrator.py,sha256=XrozA27fbzWCuCQKLx70jMaeABedKHTHs8vg-hqx3_w,11061
80
- cognite/neat/_data_model/validation/dms/_views.py,sha256=M4egIa7UAMGtZlqzIxx6ZzL4e_qo8GbDGh7vs9wywD8,4266
74
+ cognite/neat/_data_model/validation/dms/_ai_readiness.py,sha256=oepbGYVE36ImYRFuhuMLXH5l5laWBC8Wy_b7dgZpAiE,15717
75
+ cognite/neat/_data_model/validation/dms/_base.py,sha256=6MfdpLIh9sdCSCihxxhxJQkPc2-v81SCop57SR5z_ms,786
76
+ cognite/neat/_data_model/validation/dms/_connections.py,sha256=XNk6ixzLKh4w06GXBzSt1h0NJnpfJYbpbmcletzABnM,28968
77
+ cognite/neat/_data_model/validation/dms/_consistency.py,sha256=IKSUoRQfQQcsymviESW9VuTFX7jsZMXfsObeZHPdov4,2435
78
+ cognite/neat/_data_model/validation/dms/_containers.py,sha256=RhDvi6oYTzTTIII8hTh3TMV4aBW7webxXnDNtI98kIM,8289
79
+ cognite/neat/_data_model/validation/dms/_limits.py,sha256=MDJ6EDvyQ__TFY7si7uygSMF9_tKfbTTpQU0YE_7jjU,13693
80
+ cognite/neat/_data_model/validation/dms/_orchestrator.py,sha256=iNFPgp0KTx2Nvq-XeJ12qO0s7oJKj4kHrZ16dDWe-HQ,2758
81
+ cognite/neat/_data_model/validation/dms/_views.py,sha256=KoCnf4x1uvWbyLIOqqELJEJrsqRgU7zF4_0x75c7r7c,5139
81
82
  cognite/neat/_exceptions.py,sha256=ox-5hXpee4UJlPE7HpuEHV2C96aLbLKo-BhPDoOAzhA,1650
82
83
  cognite/neat/_issues.py,sha256=wH1mnkrpBsHUkQMGUHFLUIQWQlfJ_qMfdF7q0d9wNhY,1871
83
84
  cognite/neat/_session/__init__.py,sha256=owqW5Mml2DSZx1AvPvwNRTBngfhBNrQ6EH-7CKL7Jp0,61
@@ -90,10 +91,10 @@ cognite/neat/_session/_html/static/issues.css,sha256=Egvqo2cnY8FKTtZp_v3rTWcIgb1
90
91
  cognite/neat/_session/_html/static/issues.js,sha256=NHx_iAsZTvpZjOoFsxFU_sxqjF4-F4EdHRmoc2DjpIE,6348
91
92
  cognite/neat/_session/_html/static/shared.css,sha256=uUm5fqK1zrMBWCuAWdUoBRaAj9AO611hUxuGvxMzbzc,4190
92
93
  cognite/neat/_session/_html/templates/__init__.py,sha256=hgufJuBxUZ2nLCMTCxGixmk5ztZF38HzPcvtBkWJwxw,128
93
- cognite/neat/_session/_html/templates/deployment.html,sha256=_bKcVsQMBn-tIaYgUzldxHLdviFCQiUb94Wj9LfzXKM,3714
94
- cognite/neat/_session/_html/templates/issues.html,sha256=k9Ml3LLeWGhpMfqSoCl6QuNRRy__E6Sa5S_I1Kc33NU,1659
94
+ cognite/neat/_session/_html/templates/deployment.html,sha256=aLDXMbF3pcSqnCpUYVGmIWfqU2jyYUUTaGfpSHRLzdU,3715
95
+ cognite/neat/_session/_html/templates/issues.html,sha256=zjhkJcPK0hMp_ZKJ9RCf88tuZxQyTYRPxzpqx33Nkt0,1661
95
96
  cognite/neat/_session/_issues.py,sha256=E8UQeSJURg2dm4MF1pfD9dp-heSRT7pgQZgKlD1-FGs,2723
96
- cognite/neat/_session/_physical.py,sha256=plYgj4D6e8iOA0AP4Pw-yC_WZFxip74rnXo4iFatWT0,11378
97
+ cognite/neat/_session/_physical.py,sha256=RpQx9uwKZ3wY7PDDfbL3Z979nLs1U3Ebw21BWF26BoI,12085
97
98
  cognite/neat/_session/_result/__init__.py,sha256=8A0BKgsqnjxkiHUlCpHBNl3mrFWtyjaWYnh0jssE6QU,50
98
99
  cognite/neat/_session/_result/_deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
100
  cognite/neat/_session/_result/_deployment/_physical/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -101,18 +102,18 @@ cognite/neat/_session/_result/_deployment/_physical/_changes.py,sha256=ZMmwH4fGV
101
102
  cognite/neat/_session/_result/_deployment/_physical/_statistics.py,sha256=aOXZTSOGmVggERB4mKaqQEUx40vrxiN9ZkwjKU1555A,6324
102
103
  cognite/neat/_session/_result/_deployment/_physical/serializer.py,sha256=BbCUb7_C75enMimGgTPg-ZW1QGcRhPDf5dNwpWdM790,1272
103
104
  cognite/neat/_session/_result/_result.py,sha256=OnjIJQSnIzYr-IE50rq7z3CVO0LpVE8tAaZN7XPjlKw,1188
104
- cognite/neat/_session/_session.py,sha256=STrX0Q7dXw9W7y9LFgLV_3XoYJk1fGSyBalSblLEj5w,3264
105
+ cognite/neat/_session/_session.py,sha256=5wgXxcgsoQ3YaI8vDbMSJ3ZJu_O0El4z5fk3ZjH0-5I,3304
105
106
  cognite/neat/_session/_usage_analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
107
  cognite/neat/_session/_usage_analytics/_collector.py,sha256=8yVfzt8KFfZ-ldkVjDWazuQbs45Q3r6vWKcZEwU8i18,4734
107
108
  cognite/neat/_session/_usage_analytics/_constants.py,sha256=-tVdYrCTMKfuMlbO7AlzC29Nug41ug6uuX9DFuihpJg,561
108
109
  cognite/neat/_session/_usage_analytics/_storage.py,sha256=w3mUvmPysww6vM3PZBjg6jzNEsDISl7FJ1j19LNs26E,7779
109
- cognite/neat/_session/_wrappers.py,sha256=9t_MnJ0Sw_v-f6oTIh8dtAT-3oEbqumGuND97aPCC3M,3581
110
+ cognite/neat/_session/_wrappers.py,sha256=lpmqQM1OueXvgzUYZDsA_w1ZvshBr4K-BHQmtC_xfsk,4280
110
111
  cognite/neat/_state_machine/__init__.py,sha256=wrtQUHETiLzYM0pFo7JC6pJCiXetHADQbyMu8pU8rQU,195
111
112
  cognite/neat/_state_machine/_base.py,sha256=-ZpeAhM6l6N6W70dET25tAzOxaaK5aa474eabwZVzjA,1112
112
113
  cognite/neat/_state_machine/_states.py,sha256=nmj4SmunpDYcBsNx8A284xnXGS43wuUuWpMMORha2DE,1170
113
114
  cognite/neat/_store/__init__.py,sha256=TvM9CcFbtOSrxydPAuJi6Bv_iiGard1Mxfx42ZFoTl0,55
114
115
  cognite/neat/_store/_provenance.py,sha256=tWQGa2QNPyW7FfHQBRto9eHXCxeOTzlz7DvYjAwHfuY,3102
115
- cognite/neat/_store/_store.py,sha256=Ql1nZvq2UtNoI-L1OmIUFQGXQ4i5-Zche28-YHnBkyg,6775
116
+ cognite/neat/_store/_store.py,sha256=79D3aczHRJiPIdivusxulaMig516hFagM7o5P5tCnDs,7773
116
117
  cognite/neat/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
118
  cognite/neat/_utils/_reader.py,sha256=9dXrODNNqWU0Gx1zXjRTOiiByFuDZlpQkQEzx3HAxYQ,5390
118
119
  cognite/neat/_utils/auxiliary.py,sha256=Cx-LP8dfN782R3iUcm--q26zdzQ0k_RFnVbJ0bwVZMI,1345
@@ -315,9 +316,9 @@ cognite/neat/_v0/session/_template.py,sha256=BNcvrW5y7LWzRM1XFxZkfR1Nc7e8UgjBClH
315
316
  cognite/neat/_v0/session/_to.py,sha256=AnsRSDDdfFyYwSgi0Z-904X7WdLtPfLlR0x1xsu_jAo,19447
316
317
  cognite/neat/_v0/session/_wizard.py,sha256=baPJgXAAF3d1bn4nbIzon1gWfJOeS5T43UXRDJEnD3c,1490
317
318
  cognite/neat/_v0/session/exceptions.py,sha256=jv52D-SjxGfgqaHR8vnpzo0SOJETIuwbyffSWAxSDJw,3495
318
- cognite/neat/_version.py,sha256=xkV7Ynbzd3nMdRtl2ZfVZQqTsYCuXajW-2kq0kFsnHI,44
319
+ cognite/neat/_version.py,sha256=ue6YezD-6jKrILvDo3-vr0hXn8IOAp8i6yrUUpdRWOE,45
319
320
  cognite/neat/legacy.py,sha256=eI2ecxOV8ilGHyLZlN54ve_abtoK34oXognkFv3yvF0,219
320
321
  cognite/neat/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
321
- cognite_neat-1.0.9.dist-info/WHEEL,sha256=93kfTGt3a0Dykt_T-gsjtyS5_p8F_d6CE1NwmBOirzo,79
322
- cognite_neat-1.0.9.dist-info/METADATA,sha256=A0qrxdua5CQ2020BXufsTZgZmveQULmVtfqqBCrMV64,6090
323
- cognite_neat-1.0.9.dist-info/RECORD,,
322
+ cognite_neat-1.0.11.dist-info/WHEEL,sha256=xDCZ-UyfvkGuEHPeI7BcJzYKIZzdqN8A8o1M5Om8IyA,79
323
+ cognite_neat-1.0.11.dist-info/METADATA,sha256=A40oKJA28qCqliWNIZr1yAm-OTjkLdUTGXCtV3GErCs,6091
324
+ cognite_neat-1.0.11.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.16
2
+ Generator: uv 0.9.17
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any