nominal 1.111.2__tar.gz → 1.112.0__tar.gz

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.
Files changed (118) hide show
  1. {nominal-1.111.2 → nominal-1.112.0}/CHANGELOG.md +7 -0
  2. {nominal-1.111.2 → nominal-1.112.0}/PKG-INFO +1 -1
  3. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/migration/migration_resources.py +3 -2
  4. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/migration/migration_utils.py +10 -4
  5. {nominal-1.111.2 → nominal-1.112.0}/pyproject.toml +1 -1
  6. {nominal-1.111.2 → nominal-1.112.0}/.gitignore +0 -0
  7. {nominal-1.111.2 → nominal-1.112.0}/LICENSE +0 -0
  8. {nominal-1.111.2 → nominal-1.112.0}/README.md +0 -0
  9. {nominal-1.111.2 → nominal-1.112.0}/nominal/__init__.py +0 -0
  10. {nominal-1.111.2 → nominal-1.112.0}/nominal/__main__.py +0 -0
  11. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/README.md +0 -0
  12. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/__init__.py +0 -0
  13. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/dataclass_tools.py +0 -0
  14. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/deprecation_tools.py +0 -0
  15. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/iterator_tools.py +0 -0
  16. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/streaming_tools.py +0 -0
  17. {nominal-1.111.2 → nominal-1.112.0}/nominal/_utils/timing_tools.py +0 -0
  18. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/__init__.py +0 -0
  19. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/__main__.py +0 -0
  20. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/attachment.py +0 -0
  21. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/auth.py +0 -0
  22. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/config.py +0 -0
  23. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/dataset.py +0 -0
  24. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/download.py +0 -0
  25. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/mis.py +0 -0
  26. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/run.py +0 -0
  27. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/util/__init__.py +0 -0
  28. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/util/click_log_handler.py +0 -0
  29. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/util/global_decorators.py +0 -0
  30. {nominal-1.111.2 → nominal-1.112.0}/nominal/cli/util/verify_connection.py +0 -0
  31. {nominal-1.111.2 → nominal-1.112.0}/nominal/config/__init__.py +0 -0
  32. {nominal-1.111.2 → nominal-1.112.0}/nominal/config/_config.py +0 -0
  33. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/__init__.py +0 -0
  34. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_checklist_types.py +0 -0
  35. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_clientsbunch.py +0 -0
  36. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_constants.py +0 -0
  37. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_event_types.py +0 -0
  38. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_stream/__init__.py +0 -0
  39. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_stream/batch_processor.py +0 -0
  40. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_stream/batch_processor_proto.py +0 -0
  41. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_stream/write_stream.py +0 -0
  42. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_stream/write_stream_base.py +0 -0
  43. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_types.py +0 -0
  44. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/README.md +0 -0
  45. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/__init__.py +0 -0
  46. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/api_tools.py +0 -0
  47. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/multipart.py +0 -0
  48. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/multipart_downloader.py +0 -0
  49. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/networking.py +0 -0
  50. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/pagination_tools.py +0 -0
  51. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/query_tools.py +0 -0
  52. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_utils/queueing.py +0 -0
  53. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/_video_types.py +0 -0
  54. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/asset.py +0 -0
  55. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/attachment.py +0 -0
  56. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/bounds.py +0 -0
  57. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/channel.py +0 -0
  58. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/checklist.py +0 -0
  59. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/client.py +0 -0
  60. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/connection.py +0 -0
  61. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/containerized_extractors.py +0 -0
  62. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/data_review.py +0 -0
  63. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/dataset.py +0 -0
  64. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/dataset_file.py +0 -0
  65. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/datasource.py +0 -0
  66. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/event.py +0 -0
  67. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/exceptions.py +0 -0
  68. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/filetype.py +0 -0
  69. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/log.py +0 -0
  70. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/run.py +0 -0
  71. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/secret.py +0 -0
  72. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/streaming_checklist.py +0 -0
  73. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/unit.py +0 -0
  74. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/user.py +0 -0
  75. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/video.py +0 -0
  76. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/video_file.py +0 -0
  77. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/workbook.py +0 -0
  78. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/workbook_template.py +0 -0
  79. {nominal-1.111.2 → nominal-1.112.0}/nominal/core/workspace.py +0 -0
  80. {nominal-1.111.2 → nominal-1.112.0}/nominal/exceptions/__init__.py +0 -0
  81. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/__init__.py +0 -0
  82. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/README.md +0 -0
  83. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/__init__.py +0 -0
  84. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/_buckets.py +0 -0
  85. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/dsl/__init__.py +0 -0
  86. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/dsl/_enum_expr_impls.py +0 -0
  87. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/dsl/_numeric_expr_impls.py +0 -0
  88. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/dsl/_range_expr_impls.py +0 -0
  89. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/dsl/exprs.py +0 -0
  90. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/compute/dsl/params.py +0 -0
  91. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/dataset_utils/__init__.py +0 -0
  92. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/dataset_utils/_dataset_utils.py +0 -0
  93. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/logging/__init__.py +0 -0
  94. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/logging/click_log_handler.py +0 -0
  95. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/logging/nominal_log_handler.py +0 -0
  96. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/logging/rich_log_handler.py +0 -0
  97. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/migration/__init__.py +0 -0
  98. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/migration/migration_data_config.py +0 -0
  99. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/rust_streaming/__init__.py +0 -0
  100. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/rust_streaming/rust_write_stream.py +0 -0
  101. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/stream_v2/__init__.py +0 -0
  102. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/stream_v2/_serializer.py +0 -0
  103. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/stream_v2/_write_stream.py +0 -0
  104. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/video_processing/__init__.py +0 -0
  105. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/video_processing/resolution.py +0 -0
  106. {nominal-1.111.2 → nominal-1.112.0}/nominal/experimental/video_processing/video_conversion.py +0 -0
  107. {nominal-1.111.2 → nominal-1.112.0}/nominal/nominal.py +0 -0
  108. {nominal-1.111.2 → nominal-1.112.0}/nominal/py.typed +0 -0
  109. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/__init__.py +0 -0
  110. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/matlab/__init__.py +0 -0
  111. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/matlab/_matlab.py +0 -0
  112. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/pandas/__init__.py +0 -0
  113. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/pandas/_pandas.py +0 -0
  114. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/polars/__init__.py +0 -0
  115. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/polars/polars_export_handler.py +0 -0
  116. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/tdms/__init__.py +0 -0
  117. {nominal-1.111.2 → nominal-1.112.0}/nominal/thirdparty/tdms/_tdms.py +0 -0
  118. {nominal-1.111.2 → nominal-1.112.0}/nominal/ts/__init__.py +0 -0
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.112.0](https://github.com/nominal-io/nominal-client/compare/v1.111.2...v1.112.0) (2026-02-04)
4
+
5
+
6
+ ### Features
7
+
8
+ * add option for standalone template cloning in migration_utils ([#605](https://github.com/nominal-io/nominal-client/issues/605)) ([d12a290](https://github.com/nominal-io/nominal-client/commit/d12a2908559f1f3f655981c247b67e9b07c4ce4c))
9
+
3
10
  ## [1.111.2](https://github.com/nominal-io/nominal-client/compare/v1.111.1...v1.111.2) (2026-02-04)
4
11
 
5
12
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal
3
- Version: 1.111.2
3
+ Version: 1.112.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,7 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass
4
- from typing import Sequence
4
+ from typing import Mapping, Sequence
5
5
 
6
6
  from nominal.core.asset import Asset
7
7
  from nominal.core.workbook_template import WorkbookTemplate
@@ -15,4 +15,5 @@ class AssetResources:
15
15
 
16
16
  @dataclass(frozen=True)
17
17
  class MigrationResources:
18
- source_assets: Sequence[AssetResources]
18
+ source_assets: Mapping[str, AssetResources]
19
+ source_standalone_templates: Sequence[WorkbookTemplate]
@@ -1027,7 +1027,8 @@ def copy_resources_to_destination_client(
1027
1027
  dataset_config: MigrationDatasetConfig | None = None,
1028
1028
  ) -> tuple[Sequence[tuple[str, Dataset]], Sequence[Asset], Sequence[WorkbookTemplate], Sequence[Workbook]]:
1029
1029
  """Based on a list of assets and workbook templates, copy resources to destination client, creating
1030
- new datasets, datafiles, and workbooks along the way.
1030
+ new datasets, datafiles, and workbooks along the way. Standalone templates are cloned without
1031
+ creating workbooks.
1031
1032
 
1032
1033
  Args:
1033
1034
  destination_client (NominalClient): client of the tenant/workspace to copy resources to.
@@ -1050,9 +1051,10 @@ def copy_resources_to_destination_client(
1050
1051
  new_workbooks = []
1051
1052
 
1052
1053
  new_data_scopes_and_datasets: list[tuple[str, Dataset]] = []
1053
- for source_asset in migration_resources.source_assets:
1054
+ for asset_resources in migration_resources.source_assets.values():
1055
+ source_asset = asset_resources.asset
1054
1056
  new_asset = copy_asset_from(
1055
- source_asset.asset,
1057
+ source_asset,
1056
1058
  destination_client,
1057
1059
  dataset_config=dataset_config,
1058
1060
  include_events=True,
@@ -1062,7 +1064,7 @@ def copy_resources_to_destination_client(
1062
1064
  new_assets.append(new_asset)
1063
1065
  new_data_scopes_and_datasets.extend(new_asset.list_datasets())
1064
1066
 
1065
- for source_workbook_template in source_asset.source_workbook_templates:
1067
+ for source_workbook_template in asset_resources.source_workbook_templates:
1066
1068
  new_template = clone_workbook_template(source_workbook_template, destination_client)
1067
1069
  new_templates.append(new_template)
1068
1070
  new_workbook = new_template.create_workbook(
@@ -1077,6 +1079,10 @@ def copy_resources_to_destination_client(
1077
1079
  extra=log_extras,
1078
1080
  )
1079
1081
  new_workbooks.append(new_workbook)
1082
+
1083
+ for source_template in migration_resources.source_standalone_templates:
1084
+ new_template = clone_workbook_template(source_template, destination_client)
1085
+ new_templates.append(new_template)
1080
1086
  finally:
1081
1087
  file_handler.close()
1082
1088
  logger.removeHandler(file_handler)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "nominal"
3
- version = "1.111.2"
3
+ version = "1.112.0"
4
4
  description = "Automate Nominal workflows in Python"
5
5
  authors = [
6
6
  { name = "Alexander Reynolds", email = "alex.reynolds@nominal.io" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes