nominal 1.108.0__py3-none-any.whl → 1.109.0__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.
CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.109.0](https://github.com/nominal-io/nominal-client/compare/v1.108.0...v1.109.0) (2026-01-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * clone channels when cloning datasets ([#587](https://github.com/nominal-io/nominal-client/issues/587)) ([ab6de09](https://github.com/nominal-io/nominal-client/commit/ab6de0962c55e2c0a6933d6b9f94fb36f5e91273))
9
+
3
10
  ## [1.108.0](https://github.com/nominal-io/nominal-client/compare/v1.107.0...v1.108.0) (2026-01-22)
4
11
 
5
12
 
@@ -403,7 +403,7 @@ def copy_file_to_dataset(
403
403
 
404
404
 
405
405
  def clone_dataset(source_dataset: Dataset, destination_client: NominalClient) -> Dataset:
406
- """Clones a dataset, maintaining all properties and files.
406
+ """Clones a dataset, maintaining all properties, files, and channels.
407
407
 
408
408
  Args:
409
409
  source_dataset (Dataset): The dataset to copy from.
@@ -412,7 +412,11 @@ def clone_dataset(source_dataset: Dataset, destination_client: NominalClient) ->
412
412
  Returns:
413
413
  The cloned dataset.
414
414
  """
415
- return copy_dataset_from(source_dataset=source_dataset, destination_client=destination_client, include_files=True)
415
+ return copy_dataset_from(
416
+ source_dataset=source_dataset,
417
+ destination_client=destination_client,
418
+ include_files=True,
419
+ )
416
420
 
417
421
 
418
422
  def copy_dataset_from(
@@ -482,6 +486,20 @@ def copy_dataset_from(
482
486
  labels=dataset_labels,
483
487
  )
484
488
 
489
+ if preserve_uuid:
490
+ channels_copied_count = 0
491
+ for source_channel in source_dataset.search_channels():
492
+ if source_channel.data_type is None:
493
+ logger.warning("Skipping channel %s: unknown data type", source_channel.name, extra=log_extras)
494
+ continue
495
+ new_dataset.add_channel(
496
+ name=source_channel.name,
497
+ data_type=source_channel.data_type,
498
+ description=source_channel.description,
499
+ unit=source_channel.unit,
500
+ )
501
+ channels_copied_count += 1
502
+ logger.info("Copied %d channels from dataset %s", channels_copied_count, source_dataset.name, extra=log_extras)
485
503
  if include_files:
486
504
  for source_file in source_dataset.list_files():
487
505
  copy_file_to_dataset(source_file, new_dataset)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal
3
- Version: 1.108.0
3
+ Version: 1.109.0
4
4
  Summary: Automate Nominal workflows in Python
5
5
  Project-URL: Homepage, https://nominal.io
6
6
  Project-URL: Documentation, https://docs.nominal.io
@@ -1,4 +1,4 @@
1
- CHANGELOG.md,sha256=-ls_mO5aZCjyBFUqYkMVzrqOswFIEqKJFz7r0mqSziQ,89542
1
+ CHANGELOG.md,sha256=RbQp5WusqNgEleUNSHk_b-35zYWWS7DdnucsI_2Mwvk,89870
2
2
  LICENSE,sha256=zEGHG9mjDjaIS3I79O8mweQo-yiTbqx8jJvUPppVAwk,1067
3
3
  README.md,sha256=KKe0dxh_pHXCtB7I9G4qWGQYvot_BZU8yW6MJyuyUHM,311
4
4
  nominal/__init__.py,sha256=rbraORnXUrNn1hywLXM0XwSQCd9UmQt20PDYlsBalfE,2167
@@ -91,7 +91,7 @@ nominal/experimental/logging/rich_log_handler.py,sha256=8yz_VtxNgJg2oiesnXz2iXoB
91
91
  nominal/experimental/migration/__init__.py,sha256=E2IgWJLwJ5bN6jbl8k5nHECKFx5aT11jKAzVYcyXn3o,460
92
92
  nominal/experimental/migration/migration_data_config.py,sha256=sPwZjyLmL-_pHvDZvQspxrfW6yNZhEsQjDVwKA8IaXM,522
93
93
  nominal/experimental/migration/migration_resources.py,sha256=Tf_7kNBeSaY8z2fTF7DAxk-9q3a7F8xXFVvxI8tTc9c,415
94
- nominal/experimental/migration/migration_utils.py,sha256=isvxBH7pOjvT9PuJRfoMNHGJR17TYsSapDPVSRESCys,31804
94
+ nominal/experimental/migration/migration_utils.py,sha256=aNbw_WMVZKl_e9Qt7GPt7Ac6bHrRK3DQ6H20SDKLjrM,32554
95
95
  nominal/experimental/rust_streaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
96
  nominal/experimental/rust_streaming/rust_write_stream.py,sha256=oQ6ixwm8ct8ZDc_qNB7AucDt8o5-_aBVlW2fFCQ_nmA,1541
97
97
  nominal/experimental/stream_v2/__init__.py,sha256=W39vK46pssx5sXvmsImMuJiEPs7iGtwrbYBI0bWnXCY,2313
@@ -110,8 +110,8 @@ nominal/thirdparty/polars/polars_export_handler.py,sha256=hGCSwXX9dC4MG01CmmjlTb
110
110
  nominal/thirdparty/tdms/__init__.py,sha256=6n2ImFr2Wiil6JM1P5Q7Mpr0VzLcnDkmup_ftNpPq-s,142
111
111
  nominal/thirdparty/tdms/_tdms.py,sha256=m4gxbpxB9MTLi2FuYvGlbUGSyDAZKFxbM3ia2x1wIz0,8746
112
112
  nominal/ts/__init__.py,sha256=hmd0ENvDhxRnzDKGLxIub6QG8LpcxCgcyAct029CaEs,21442
113
- nominal-1.108.0.dist-info/METADATA,sha256=BFL54ilX_SW2XErNJm9Q4kEow-SCxGdJcIVvqlJ0b5A,2307
114
- nominal-1.108.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
115
- nominal-1.108.0.dist-info/entry_points.txt,sha256=-mCLhxgg9R_lm5efT7vW9wuBH12izvY322R0a3TYxbE,66
116
- nominal-1.108.0.dist-info/licenses/LICENSE,sha256=zEGHG9mjDjaIS3I79O8mweQo-yiTbqx8jJvUPppVAwk,1067
117
- nominal-1.108.0.dist-info/RECORD,,
113
+ nominal-1.109.0.dist-info/METADATA,sha256=I-dJFMxxXEJ-c3aSNgJMfUjqovsqYFPIl7_IMfqEUnM,2307
114
+ nominal-1.109.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
115
+ nominal-1.109.0.dist-info/entry_points.txt,sha256=-mCLhxgg9R_lm5efT7vW9wuBH12izvY322R0a3TYxbE,66
116
+ nominal-1.109.0.dist-info/licenses/LICENSE,sha256=zEGHG9mjDjaIS3I79O8mweQo-yiTbqx8jJvUPppVAwk,1067
117
+ nominal-1.109.0.dist-info/RECORD,,