cognite-toolkit 0.6.77__py3-none-any.whl → 0.6.78__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.
Potentially problematic release.
This version of cognite-toolkit might be problematic. Click here for more details.
- cognite_toolkit/_builtin_modules/cdf.toml +1 -1
- cognite_toolkit/_cdf_tk/apps/_migrate_app.py +135 -66
- cognite_toolkit/_cdf_tk/commands/_migrate/adapter.py +77 -13
- cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -0
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
- cognite_toolkit/_version.py +1 -1
- {cognite_toolkit-0.6.77.dist-info → cognite_toolkit-0.6.78.dist-info}/METADATA +1 -1
- {cognite_toolkit-0.6.77.dist-info → cognite_toolkit-0.6.78.dist-info}/RECORD +12 -12
- {cognite_toolkit-0.6.77.dist-info → cognite_toolkit-0.6.78.dist-info}/WHEEL +0 -0
- {cognite_toolkit-0.6.77.dist-info → cognite_toolkit-0.6.78.dist-info}/entry_points.txt +0 -0
- {cognite_toolkit-0.6.77.dist-info → cognite_toolkit-0.6.78.dist-info}/licenses/LICENSE +0 -0
|
@@ -6,9 +6,9 @@ import questionary
|
|
|
6
6
|
import typer
|
|
7
7
|
from cognite.client.data_classes.data_modeling import ContainerId
|
|
8
8
|
|
|
9
|
+
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
9
10
|
from cognite_toolkit._cdf_tk.commands import (
|
|
10
11
|
MigrateFilesCommand,
|
|
11
|
-
MigrateTimeseriesCommand,
|
|
12
12
|
MigrationCanvasCommand,
|
|
13
13
|
MigrationPrepareCommand,
|
|
14
14
|
)
|
|
@@ -18,6 +18,7 @@ from cognite_toolkit._cdf_tk.commands._migrate.adapter import (
|
|
|
18
18
|
MigrateDataSetSelector,
|
|
19
19
|
MigrationCSVFileSelector,
|
|
20
20
|
MigrationSelector,
|
|
21
|
+
TimeSeriesIOAdapter,
|
|
21
22
|
)
|
|
22
23
|
from cognite_toolkit._cdf_tk.commands._migrate.creators import InstanceSpaceCreator, SourceSystemCreator
|
|
23
24
|
from cognite_toolkit._cdf_tk.commands._migrate.data_mapper import AssetCentricMapper
|
|
@@ -29,6 +30,7 @@ from cognite_toolkit._cdf_tk.utils.interactive_select import (
|
|
|
29
30
|
DataModelingSelect,
|
|
30
31
|
ResourceViewMappingInteractiveSelect,
|
|
31
32
|
)
|
|
33
|
+
from cognite_toolkit._cdf_tk.utils.useful_types import AssetCentricKind
|
|
32
34
|
|
|
33
35
|
TODAY = date.today()
|
|
34
36
|
|
|
@@ -229,8 +231,9 @@ class MigrateApp(typer.Typer):
|
|
|
229
231
|
)
|
|
230
232
|
)
|
|
231
233
|
|
|
232
|
-
@
|
|
234
|
+
@classmethod
|
|
233
235
|
def assets(
|
|
236
|
+
cls,
|
|
234
237
|
ctx: typer.Context,
|
|
235
238
|
mapping_file: Annotated[
|
|
236
239
|
Path | None,
|
|
@@ -297,16 +300,53 @@ class MigrateApp(typer.Typer):
|
|
|
297
300
|
) -> None:
|
|
298
301
|
"""Migrate Assets to CogniteAssets."""
|
|
299
302
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
303
|
+
selected, dry_run, verbose = cls._prepare_asset_centric_arguments(
|
|
304
|
+
client=client,
|
|
305
|
+
mapping_file=mapping_file,
|
|
306
|
+
data_set_id=data_set_id,
|
|
307
|
+
consumption_view=consumption_view,
|
|
308
|
+
ingestion_mapping=ingestion_mapping,
|
|
309
|
+
dry_run=dry_run,
|
|
310
|
+
verbose=verbose,
|
|
311
|
+
kind="Assets",
|
|
312
|
+
resource_type="asset",
|
|
313
|
+
container_id=ContainerId("cdf_cdm", "CogniteAsset"),
|
|
314
|
+
)
|
|
315
|
+
|
|
300
316
|
cmd = MigrationCommand()
|
|
317
|
+
cmd.run(
|
|
318
|
+
lambda: cmd.migrate(
|
|
319
|
+
selected=selected,
|
|
320
|
+
data=AssetCentricMigrationIOAdapter(client, AssetIO(client)),
|
|
321
|
+
mapper=AssetCentricMapper(client),
|
|
322
|
+
log_dir=log_dir,
|
|
323
|
+
dry_run=dry_run,
|
|
324
|
+
verbose=verbose,
|
|
325
|
+
)
|
|
326
|
+
)
|
|
327
|
+
|
|
328
|
+
@staticmethod
|
|
329
|
+
def _prepare_asset_centric_arguments(
|
|
330
|
+
client: ToolkitClient,
|
|
331
|
+
mapping_file: Path | None,
|
|
332
|
+
data_set_id: str | None,
|
|
333
|
+
consumption_view: str | None,
|
|
334
|
+
ingestion_mapping: str | None,
|
|
335
|
+
dry_run: bool,
|
|
336
|
+
verbose: bool,
|
|
337
|
+
kind: AssetCentricKind,
|
|
338
|
+
resource_type: str,
|
|
339
|
+
container_id: ContainerId,
|
|
340
|
+
) -> tuple[MigrationSelector, bool, bool]:
|
|
301
341
|
if data_set_id is not None and mapping_file is not None:
|
|
302
342
|
raise typer.BadParameter("Cannot specify both data_set_id and mapping_file")
|
|
303
343
|
elif mapping_file is not None:
|
|
304
|
-
selected: MigrationSelector = MigrationCSVFileSelector(datafile=mapping_file, kind=
|
|
344
|
+
selected: MigrationSelector = MigrationCSVFileSelector(datafile=mapping_file, kind=kind)
|
|
305
345
|
elif data_set_id is not None:
|
|
306
346
|
parsed_view = parse_view_str(consumption_view) if consumption_view is not None else None
|
|
307
347
|
selected = MigrateDataSetSelector(
|
|
308
348
|
data_set_external_id=data_set_id,
|
|
309
|
-
kind=
|
|
349
|
+
kind=kind,
|
|
310
350
|
ingestion_mapping=ingestion_mapping,
|
|
311
351
|
preferred_consumer_view=parsed_view,
|
|
312
352
|
)
|
|
@@ -315,7 +355,7 @@ class MigrateApp(typer.Typer):
|
|
|
315
355
|
selector = AssetInteractiveSelect(client, "migrate")
|
|
316
356
|
selected_data_set_id = selector.select_data_set(allow_empty=False)
|
|
317
357
|
asset_mapping = ResourceViewMappingInteractiveSelect(client, "migrate").select_resource_view_mapping(
|
|
318
|
-
|
|
358
|
+
resource_type,
|
|
319
359
|
)
|
|
320
360
|
preferred_consumer_view = (
|
|
321
361
|
DataModelingSelect(client, "migrate")
|
|
@@ -323,13 +363,13 @@ class MigrateApp(typer.Typer):
|
|
|
323
363
|
multiselect=False,
|
|
324
364
|
include_global=True,
|
|
325
365
|
instance_type="node",
|
|
326
|
-
mapped_container=
|
|
366
|
+
mapped_container=container_id,
|
|
327
367
|
)
|
|
328
368
|
.as_id()
|
|
329
369
|
)
|
|
330
370
|
selected = MigrateDataSetSelector(
|
|
331
371
|
data_set_external_id=selected_data_set_id,
|
|
332
|
-
kind=
|
|
372
|
+
kind=kind,
|
|
333
373
|
ingestion_mapping=asset_mapping.external_id,
|
|
334
374
|
preferred_consumer_view=preferred_consumer_view,
|
|
335
375
|
)
|
|
@@ -337,20 +377,11 @@ class MigrateApp(typer.Typer):
|
|
|
337
377
|
verbose = questionary.confirm("Do you want verbose output?", default=verbose).ask()
|
|
338
378
|
if any(res is None for res in [dry_run, verbose]):
|
|
339
379
|
raise typer.Abort()
|
|
380
|
+
return selected, dry_run, verbose
|
|
340
381
|
|
|
341
|
-
|
|
342
|
-
lambda: cmd.migrate(
|
|
343
|
-
selected=selected,
|
|
344
|
-
data=AssetCentricMigrationIOAdapter(client, AssetIO(client)),
|
|
345
|
-
mapper=AssetCentricMapper(client),
|
|
346
|
-
log_dir=log_dir,
|
|
347
|
-
dry_run=dry_run,
|
|
348
|
-
verbose=verbose,
|
|
349
|
-
)
|
|
350
|
-
)
|
|
351
|
-
|
|
352
|
-
@staticmethod
|
|
382
|
+
@classmethod
|
|
353
383
|
def events(
|
|
384
|
+
cls,
|
|
354
385
|
ctx: typer.Context,
|
|
355
386
|
mapping_file: Annotated[
|
|
356
387
|
Path | None,
|
|
@@ -417,46 +448,20 @@ class MigrateApp(typer.Typer):
|
|
|
417
448
|
) -> None:
|
|
418
449
|
"""Migrate Events to CogniteActivity."""
|
|
419
450
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
451
|
+
selected, dry_run, verbose = cls._prepare_asset_centric_arguments(
|
|
452
|
+
client=client,
|
|
453
|
+
mapping_file=mapping_file,
|
|
454
|
+
data_set_id=data_set_id,
|
|
455
|
+
consumption_view=consumption_view,
|
|
456
|
+
ingestion_mapping=ingestion_mapping,
|
|
457
|
+
dry_run=dry_run,
|
|
458
|
+
verbose=verbose,
|
|
459
|
+
kind="Events",
|
|
460
|
+
resource_type="event",
|
|
461
|
+
container_id=ContainerId("cdf_cdm", "CogniteActivity"),
|
|
462
|
+
)
|
|
463
|
+
|
|
420
464
|
cmd = MigrationCommand()
|
|
421
|
-
if data_set_id is not None and mapping_file is not None:
|
|
422
|
-
raise typer.BadParameter("Cannot specify both data_set_id and mapping_file")
|
|
423
|
-
elif mapping_file is not None:
|
|
424
|
-
selected: MigrationSelector = MigrationCSVFileSelector(datafile=mapping_file, kind="Events")
|
|
425
|
-
elif data_set_id is not None:
|
|
426
|
-
parsed_view = parse_view_str(consumption_view) if consumption_view is not None else None
|
|
427
|
-
selected = MigrateDataSetSelector(
|
|
428
|
-
data_set_external_id=data_set_id,
|
|
429
|
-
kind="Events",
|
|
430
|
-
ingestion_mapping=ingestion_mapping,
|
|
431
|
-
preferred_consumer_view=parsed_view,
|
|
432
|
-
)
|
|
433
|
-
else:
|
|
434
|
-
# Interactive selection of data set.
|
|
435
|
-
selector = AssetInteractiveSelect(client, "migrate events")
|
|
436
|
-
selected_data_set_id = selector.select_data_set(allow_empty=False)
|
|
437
|
-
event_mapping = ResourceViewMappingInteractiveSelect(client, "migrate events").select_resource_view_mapping(
|
|
438
|
-
"event"
|
|
439
|
-
)
|
|
440
|
-
preferred_consumer_view = (
|
|
441
|
-
DataModelingSelect(client, "migrate")
|
|
442
|
-
.select_view(
|
|
443
|
-
multiselect=False,
|
|
444
|
-
include_global=True,
|
|
445
|
-
instance_type="node",
|
|
446
|
-
mapped_container=ContainerId("cdf_cdm", "CogniteActivity"),
|
|
447
|
-
)
|
|
448
|
-
.as_id()
|
|
449
|
-
)
|
|
450
|
-
selected = MigrateDataSetSelector(
|
|
451
|
-
data_set_external_id=selected_data_set_id,
|
|
452
|
-
kind="Events",
|
|
453
|
-
ingestion_mapping=event_mapping.external_id,
|
|
454
|
-
preferred_consumer_view=preferred_consumer_view,
|
|
455
|
-
)
|
|
456
|
-
dry_run = questionary.confirm("Do you want to perform a dry run?", default=dry_run).ask()
|
|
457
|
-
verbose = questionary.confirm("Do you want verbose output?", default=verbose).ask()
|
|
458
|
-
if any(res is None for res in [dry_run, verbose]):
|
|
459
|
-
raise typer.Abort()
|
|
460
465
|
|
|
461
466
|
cmd.run(
|
|
462
467
|
lambda: cmd.migrate(
|
|
@@ -469,11 +474,12 @@ class MigrateApp(typer.Typer):
|
|
|
469
474
|
)
|
|
470
475
|
)
|
|
471
476
|
|
|
472
|
-
@
|
|
477
|
+
@classmethod
|
|
473
478
|
def timeseries(
|
|
479
|
+
cls,
|
|
474
480
|
ctx: typer.Context,
|
|
475
481
|
mapping_file: Annotated[
|
|
476
|
-
Path,
|
|
482
|
+
Path | None,
|
|
477
483
|
typer.Option(
|
|
478
484
|
"--mapping-file",
|
|
479
485
|
"-m",
|
|
@@ -481,7 +487,51 @@ class MigrateApp(typer.Typer):
|
|
|
481
487
|
"This file is expected to have the following columns: [id, dataSetId, space, externalId]."
|
|
482
488
|
"The dataSetId is optional, and can be skipped. If it is set, it is used to check the access to the dataset.",
|
|
483
489
|
),
|
|
484
|
-
],
|
|
490
|
+
] = None,
|
|
491
|
+
data_set_id: Annotated[
|
|
492
|
+
str | None,
|
|
493
|
+
typer.Option(
|
|
494
|
+
"--data-set-id",
|
|
495
|
+
"-s",
|
|
496
|
+
help="The data set ID to select for the timeseries to migrate. If not provided and the mapping file is not provided"
|
|
497
|
+
"an interactive selection will be performed to select the data set to migrate timeseries from.",
|
|
498
|
+
),
|
|
499
|
+
] = None,
|
|
500
|
+
ingestion_mapping: Annotated[
|
|
501
|
+
str | None,
|
|
502
|
+
typer.Option(
|
|
503
|
+
"--ingestion-mapping",
|
|
504
|
+
"-i",
|
|
505
|
+
help="The ingestion mapping to use for the migrated timeseries. If not provided, "
|
|
506
|
+
"the default mapping to CogniteTimeSeries in CogniteCore will be used.",
|
|
507
|
+
),
|
|
508
|
+
] = None,
|
|
509
|
+
consumption_view: Annotated[
|
|
510
|
+
str | None,
|
|
511
|
+
typer.Option(
|
|
512
|
+
"--consumption-view",
|
|
513
|
+
"-c",
|
|
514
|
+
help="The consumption view to assign to the migrated timeseries Given as space:externalId/version. "
|
|
515
|
+
"This will be used in Canvas to select which view to use when migrating timeseries. If not provided, "
|
|
516
|
+
"CogniteTimeSeries in CogniteCore will be used.",
|
|
517
|
+
),
|
|
518
|
+
] = None,
|
|
519
|
+
log_dir: Annotated[
|
|
520
|
+
Path,
|
|
521
|
+
typer.Option(
|
|
522
|
+
"--log-dir",
|
|
523
|
+
"-l",
|
|
524
|
+
help="Path to the directory where logs will be stored. If the directory does not exist, it will be created.",
|
|
525
|
+
),
|
|
526
|
+
] = Path(f"migration_logs_{TODAY!s}"),
|
|
527
|
+
skip_linking: Annotated[
|
|
528
|
+
bool,
|
|
529
|
+
typer.Option(
|
|
530
|
+
"--skip-linking",
|
|
531
|
+
"-x",
|
|
532
|
+
help="If set, the migration will not create links between the old TimeSeries and the new CogniteTimeSeries.",
|
|
533
|
+
),
|
|
534
|
+
] = False,
|
|
485
535
|
dry_run: Annotated[
|
|
486
536
|
bool,
|
|
487
537
|
typer.Option(
|
|
@@ -500,13 +550,32 @@ class MigrateApp(typer.Typer):
|
|
|
500
550
|
] = False,
|
|
501
551
|
) -> None:
|
|
502
552
|
"""Migrate TimeSeries to CogniteTimeSeries."""
|
|
503
|
-
|
|
504
553
|
client = EnvironmentVariables.create_from_environment().get_client(enable_set_pending_ids=True)
|
|
505
|
-
|
|
554
|
+
|
|
555
|
+
selected, dry_run, verbose = cls._prepare_asset_centric_arguments(
|
|
556
|
+
client=client,
|
|
557
|
+
mapping_file=mapping_file,
|
|
558
|
+
data_set_id=data_set_id,
|
|
559
|
+
consumption_view=consumption_view,
|
|
560
|
+
ingestion_mapping=ingestion_mapping,
|
|
561
|
+
dry_run=dry_run,
|
|
562
|
+
verbose=verbose,
|
|
563
|
+
kind="TimeSeries",
|
|
564
|
+
resource_type="timeseries",
|
|
565
|
+
container_id=ContainerId("cdf_cdm", "CogniteTimeSeries"),
|
|
566
|
+
)
|
|
567
|
+
if data_set_id is None and mapping_file is None:
|
|
568
|
+
skip_linking = not questionary.confirm(
|
|
569
|
+
"Do you want to link old and new TimeSeries?", default=not skip_linking
|
|
570
|
+
).ask()
|
|
571
|
+
|
|
572
|
+
cmd = MigrationCommand()
|
|
506
573
|
cmd.run(
|
|
507
|
-
lambda: cmd.
|
|
508
|
-
|
|
509
|
-
|
|
574
|
+
lambda: cmd.migrate(
|
|
575
|
+
selected=selected,
|
|
576
|
+
data=TimeSeriesIOAdapter(client, skip_linking=skip_linking),
|
|
577
|
+
mapper=AssetCentricMapper(client),
|
|
578
|
+
log_dir=log_dir,
|
|
510
579
|
dry_run=dry_run,
|
|
511
580
|
verbose=verbose,
|
|
512
581
|
)
|
|
@@ -3,13 +3,17 @@ from collections.abc import Iterator, Sequence
|
|
|
3
3
|
from dataclasses import dataclass
|
|
4
4
|
from functools import cached_property
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import Generic, Literal
|
|
6
|
+
from typing import ClassVar, Generic, Literal
|
|
7
7
|
|
|
8
8
|
from cognite.client.data_classes import (
|
|
9
9
|
FileMetadata,
|
|
10
10
|
FileMetadataList,
|
|
11
11
|
FileMetadataWrite,
|
|
12
12
|
FileMetadataWriteList,
|
|
13
|
+
TimeSeries,
|
|
14
|
+
TimeSeriesList,
|
|
15
|
+
TimeSeriesWrite,
|
|
16
|
+
TimeSeriesWriteList,
|
|
13
17
|
)
|
|
14
18
|
from cognite.client.data_classes._base import (
|
|
15
19
|
T_CogniteResourceList,
|
|
@@ -30,6 +34,7 @@ from cognite_toolkit._cdf_tk.storageio import (
|
|
|
30
34
|
BaseAssetCentricIO,
|
|
31
35
|
FileMetadataIO,
|
|
32
36
|
InstanceIO,
|
|
37
|
+
TimeSeriesIO,
|
|
33
38
|
UploadableStorageIO,
|
|
34
39
|
)
|
|
35
40
|
from cognite_toolkit._cdf_tk.storageio._base import Page, UploadItem
|
|
@@ -240,23 +245,38 @@ class AssetCentricMigrationIOAdapter(
|
|
|
240
245
|
raise NotImplementedError()
|
|
241
246
|
|
|
242
247
|
|
|
243
|
-
class
|
|
248
|
+
class LinkingAdapter(
|
|
244
249
|
AssetCentricMigrationIOAdapter[
|
|
245
|
-
|
|
246
|
-
FileMetadataWrite,
|
|
247
|
-
FileMetadata,
|
|
248
|
-
FileMetadataWriteList,
|
|
249
|
-
FileMetadataList,
|
|
250
|
+
T_ID, T_WriteClass, T_WritableCogniteResource, T_CogniteResourceList, T_WritableCogniteResourceList
|
|
250
251
|
]
|
|
251
252
|
):
|
|
252
|
-
"""Adapter
|
|
253
|
+
"""Adapter that links asset-centric resources to data model instances before uploading them.
|
|
254
|
+
|
|
255
|
+
This is necessary to link asset-centric resources to their new CogniteDataModel instances using the
|
|
256
|
+
appropriate set-pending-instance-ids endpoint.
|
|
257
|
+
|
|
258
|
+
Args:
|
|
259
|
+
client: ToolkitClient
|
|
260
|
+
The toolkit client to use for communication with CDF.
|
|
261
|
+
base: BaseAssetCentricIO
|
|
262
|
+
The base asset-centric IO to use for retrieving asset-centric resources.
|
|
263
|
+
skip_linking: bool
|
|
264
|
+
Whether to skip the linking step and only upload the resources. Essentially creating a copy.
|
|
253
265
|
|
|
254
|
-
This is necessary to link asset-centric FileMetadata to their new CogniteFile instances using the
|
|
255
|
-
files/set-pending-instance-ids.
|
|
256
266
|
"""
|
|
257
267
|
|
|
258
|
-
|
|
259
|
-
|
|
268
|
+
PENDING_INSTANCE_ID_ENDPOINT: ClassVar[str]
|
|
269
|
+
|
|
270
|
+
def __init__(
|
|
271
|
+
self,
|
|
272
|
+
client: ToolkitClient,
|
|
273
|
+
base: BaseAssetCentricIO[
|
|
274
|
+
T_ID, T_WriteClass, T_WritableCogniteResource, T_CogniteResourceList, T_WritableCogniteResourceList
|
|
275
|
+
],
|
|
276
|
+
skip_linking: bool = False,
|
|
277
|
+
) -> None:
|
|
278
|
+
super().__init__(client, base)
|
|
279
|
+
self.skip_linking = skip_linking
|
|
260
280
|
|
|
261
281
|
@staticmethod
|
|
262
282
|
def as_pending_instance_id(item: InstanceApply) -> PendingInstanceId:
|
|
@@ -279,13 +299,15 @@ class FileMetaAdapter(
|
|
|
279
299
|
selector: MigrationSelector | None = None,
|
|
280
300
|
) -> Sequence[HTTPMessage]:
|
|
281
301
|
"""Upload items by first linking them using files/set-pending-instance-ids and then uploading the instances."""
|
|
302
|
+
if self.skip_linking:
|
|
303
|
+
return list(super().upload_items(data_chunk, http_client, selector))
|
|
282
304
|
config = http_client.config
|
|
283
305
|
results: list[HTTPMessage] = []
|
|
284
306
|
successful_linked: set[str] = set()
|
|
285
307
|
for batch in chunker_sequence(data_chunk, self.CHUNK_SIZE):
|
|
286
308
|
batch_results = http_client.request_with_retries(
|
|
287
309
|
message=ItemsRequest(
|
|
288
|
-
endpoint_url=config.create_api_url(
|
|
310
|
+
endpoint_url=config.create_api_url(self.PENDING_INSTANCE_ID_ENDPOINT),
|
|
289
311
|
method="POST",
|
|
290
312
|
api_version="alpha",
|
|
291
313
|
items=[
|
|
@@ -302,3 +324,45 @@ class FileMetaAdapter(
|
|
|
302
324
|
if to_upload:
|
|
303
325
|
results.extend(list(super().upload_items(to_upload, http_client, selector)))
|
|
304
326
|
return results
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
class FileMetaAdapter(
|
|
330
|
+
LinkingAdapter[
|
|
331
|
+
str,
|
|
332
|
+
FileMetadataWrite,
|
|
333
|
+
FileMetadata,
|
|
334
|
+
FileMetadataWriteList,
|
|
335
|
+
FileMetadataList,
|
|
336
|
+
]
|
|
337
|
+
):
|
|
338
|
+
"""Adapter for migrating file metadata to data model instances.
|
|
339
|
+
|
|
340
|
+
This is necessary to link asset-centric FileMetadata to their new CogniteFile instances using the
|
|
341
|
+
files/set-pending-instance-ids.
|
|
342
|
+
"""
|
|
343
|
+
|
|
344
|
+
PENDING_INSTANCE_ID_ENDPOINT: ClassVar[str] = "/files/set-pending-instance-ids"
|
|
345
|
+
|
|
346
|
+
def __init__(self, client: ToolkitClient, skip_linking: bool) -> None:
|
|
347
|
+
super().__init__(client, FileMetadataIO(client), skip_linking)
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
class TimeSeriesIOAdapter(
|
|
351
|
+
LinkingAdapter[
|
|
352
|
+
str,
|
|
353
|
+
TimeSeriesWrite,
|
|
354
|
+
TimeSeries,
|
|
355
|
+
TimeSeriesWriteList,
|
|
356
|
+
TimeSeriesList,
|
|
357
|
+
]
|
|
358
|
+
):
|
|
359
|
+
"""Adapter for migrating time series to data model instances.
|
|
360
|
+
|
|
361
|
+
This is necessary to link asset-centric TimeSeries to their new CogniteTimeSeries instances using the
|
|
362
|
+
timeseries/set-pending-instance-ids.
|
|
363
|
+
"""
|
|
364
|
+
|
|
365
|
+
PENDING_INSTANCE_ID_ENDPOINT: ClassVar[str] = "/timeseries/set-pending-instance-ids"
|
|
366
|
+
|
|
367
|
+
def __init__(self, client: ToolkitClient, skip_linking: bool) -> None:
|
|
368
|
+
super().__init__(client, TimeSeriesIO(client), skip_linking)
|
cognite_toolkit/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.6.
|
|
1
|
+
__version__ = "0.6.78"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cognite_toolkit
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.78
|
|
4
4
|
Summary: Official Cognite Data Fusion tool for project templates and configuration deployment
|
|
5
5
|
Project-URL: Homepage, https://docs.cognite.com/cdf/deploy/cdf_toolkit/
|
|
6
6
|
Project-URL: Changelog, https://github.com/cognitedata/toolkit/releases
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
cognite_toolkit/_cdf.py,sha256=Lbv1moBfndOXDazAoDao6ZtDHqiN6L7Nv8sj8w6dkTE,5941
|
|
3
|
-
cognite_toolkit/_version.py,sha256=
|
|
3
|
+
cognite_toolkit/_version.py,sha256=CsBJy00_X3h-8DAU3fkhHtVkiF8payXogeGpwkSdK3c,23
|
|
4
4
|
cognite_toolkit/_builtin_modules/README.md,sha256=roU3G05E6ogP5yhw4hdIvVDKV831zCh2pzt9BVddtBg,307
|
|
5
5
|
cognite_toolkit/_builtin_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
cognite_toolkit/_builtin_modules/cdf.toml,sha256=
|
|
6
|
+
cognite_toolkit/_builtin_modules/cdf.toml,sha256=xrW2OhstP4kDedUy5gzuPGqzgnTOYQpusWKDMrcey0E,273
|
|
7
7
|
cognite_toolkit/_builtin_modules/packages.toml,sha256=-z_dCOcZwhW86GV6SCB__XzKSQfZcAupGO7JoNB0TZQ,2735
|
|
8
8
|
cognite_toolkit/_builtin_modules/bootcamp/README.md,sha256=iTVqoy3PLpC-xPi5pbuMIAEHILBSfWTGLexwa1AltpY,211
|
|
9
9
|
cognite_toolkit/_builtin_modules/bootcamp/default.config.yaml,sha256=cBKReVJt2ZqFf5nBJl6mod_yo8iqSpXqh_7MQxi692U,94
|
|
@@ -494,7 +494,7 @@ cognite_toolkit/_cdf_tk/apps/_data_app.py,sha256=rFnTcUBAuoFcTQCjxwqZGG0HjUMGdYT
|
|
|
494
494
|
cognite_toolkit/_cdf_tk/apps/_download_app.py,sha256=faAuhFYn7eQ_uzP3BNmnXeaeeoyZR1JvRZx2ATKrsao,16691
|
|
495
495
|
cognite_toolkit/_cdf_tk/apps/_dump_app.py,sha256=Ec0aEqbKwCkxni09i06rfY31qZUyOVwbbvo7MHh4cf8,39056
|
|
496
496
|
cognite_toolkit/_cdf_tk/apps/_landing_app.py,sha256=tV8hpqxLm2YgqB-TWieheK7ucN-JhQVtN13V3Zth6Os,386
|
|
497
|
-
cognite_toolkit/_cdf_tk/apps/_migrate_app.py,sha256=
|
|
497
|
+
cognite_toolkit/_cdf_tk/apps/_migrate_app.py,sha256=BakIZ54DPdQQ7Cj0lp9mdqwGBhijaivs54kAr6CwIQ0,26399
|
|
498
498
|
cognite_toolkit/_cdf_tk/apps/_modules_app.py,sha256=Ydjho3z89YCT7Jeq1sOg2rRkLffWH81KTYeWp8SW__Y,6623
|
|
499
499
|
cognite_toolkit/_cdf_tk/apps/_populate_app.py,sha256=CDQup8xVGbTUR_G9O0phLVhz8GyRPM3quyFesdhnxY4,2783
|
|
500
500
|
cognite_toolkit/_cdf_tk/apps/_profile_app.py,sha256=vSRJW54bEvIul8_4rOqyOYA7ztXx7TFOvZRZWZTxMbg,7007
|
|
@@ -594,7 +594,7 @@ cognite_toolkit/_cdf_tk/commands/pull.py,sha256=2Zf6IOXxSxZ-5XkNE80FlrXBuNejAWrA
|
|
|
594
594
|
cognite_toolkit/_cdf_tk/commands/repo.py,sha256=MNy8MWphTklIZHvQOROCweq8_SYxGv6BaqnLpkFFnuk,3845
|
|
595
595
|
cognite_toolkit/_cdf_tk/commands/run.py,sha256=JyX9jLEQej9eRrHVCCNlw4GuF80qETSol3-T5CCofgw,37331
|
|
596
596
|
cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py,sha256=ODut2BHBKAMSQMane2S7v-3Z8EjJ67ab2k99zRASpvY,373
|
|
597
|
-
cognite_toolkit/_cdf_tk/commands/_migrate/adapter.py,sha256=
|
|
597
|
+
cognite_toolkit/_cdf_tk/commands/_migrate/adapter.py,sha256=XravqmR0Dp_QgaeHCvczEzTnVFCpXo1DvR27ejnJG3I,14356
|
|
598
598
|
cognite_toolkit/_cdf_tk/commands/_migrate/assets.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
599
599
|
cognite_toolkit/_cdf_tk/commands/_migrate/base.py,sha256=aS32Wa-gd7vFNOdCTKEIpSSdjQKZ8jblzD6c3YcOmzA,4942
|
|
600
600
|
cognite_toolkit/_cdf_tk/commands/_migrate/canvas.py,sha256=Tv4OG9V6tDsQbSH13YW8M0n8Ury5gU16oJB-OISVR0w,6398
|
|
@@ -604,7 +604,7 @@ cognite_toolkit/_cdf_tk/commands/_migrate/creators.py,sha256=PlDypLBxRDDwCNk9baL
|
|
|
604
604
|
cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py,sha256=fQy-N1Jc3wjxj84mxRbQHSVGkefJGlyw1_Ll9NCuPSM,7237
|
|
605
605
|
cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py,sha256=TXqXgT_XcWwCB8yViEHNFOWjIdXr-EDHuJKOOf2smWs,5915
|
|
606
606
|
cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py,sha256=i1eUsNX6Dueol9STIEwyksBnBsWUk13O8qHIjW964pM,7860
|
|
607
|
-
cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py,sha256=
|
|
607
|
+
cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py,sha256=QWR_WZE96rWmuL9us-6vga6oiMila7SPuJwkjAQY2gE,5517
|
|
608
608
|
cognite_toolkit/_cdf_tk/commands/_migrate/files.py,sha256=uDGNwTnlpc0cjwLX7P9GHcqf4IsD5Q9_4w7rUOpGWWU,6790
|
|
609
609
|
cognite_toolkit/_cdf_tk/commands/_migrate/issues.py,sha256=lWSnuS3CfRDbA7i1g12gJ2reJnQcLmZWxHDK19-Wxkk,5772
|
|
610
610
|
cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py,sha256=sTxeEgIp2xNJXW-RoOhtdAXlww5Wxe94GyzZG1RyYW4,2483
|
|
@@ -765,12 +765,12 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
|
|
|
765
765
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
|
|
766
766
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
|
|
767
767
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
|
|
768
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=
|
|
769
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=
|
|
768
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=GNCA1X5TNm6U2Uq6WqxEGotEn5r5jEUZIe3jlfbbFSY,667
|
|
769
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=7QRn6XMfRQyGE3ykBe9E1AmhcqAYxL76DDMjQp1d-5s,2430
|
|
770
770
|
cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
|
|
771
771
|
cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
|
|
772
|
-
cognite_toolkit-0.6.
|
|
773
|
-
cognite_toolkit-0.6.
|
|
774
|
-
cognite_toolkit-0.6.
|
|
775
|
-
cognite_toolkit-0.6.
|
|
776
|
-
cognite_toolkit-0.6.
|
|
772
|
+
cognite_toolkit-0.6.78.dist-info/METADATA,sha256=B-2qyoZEjPI3V15Ikfdi8MJHTw6m9jEgr4EGcEaJ7ic,4501
|
|
773
|
+
cognite_toolkit-0.6.78.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
774
|
+
cognite_toolkit-0.6.78.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
|
|
775
|
+
cognite_toolkit-0.6.78.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
|
|
776
|
+
cognite_toolkit-0.6.78.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|