nominal 1.103.0__tar.gz → 1.104.1__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.
- {nominal-1.103.0 → nominal-1.104.1}/CHANGELOG.md +14 -0
- {nominal-1.103.0 → nominal-1.104.1}/PKG-INFO +1 -1
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/data_review.py +79 -5
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/dataset.py +1 -1
- {nominal-1.103.0 → nominal-1.104.1}/pyproject.toml +1 -1
- {nominal-1.103.0 → nominal-1.104.1}/.gitignore +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/LICENSE +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/README.md +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/__main__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/README.md +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/dataclass_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/deprecation_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/iterator_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/streaming_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/_utils/timing_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/__main__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/attachment.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/auth.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/config.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/dataset.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/download.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/mis.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/run.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/util/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/util/click_log_handler.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/util/global_decorators.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/cli/util/verify_connection.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/config/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/config/_config.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_clientsbunch.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_constants.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_event_types.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_stream/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_stream/batch_processor.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_stream/batch_processor_proto.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_stream/write_stream.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_stream/write_stream_base.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_types.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/README.md +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/api_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/multipart.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/multipart_downloader.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/networking.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/pagination_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/query_tools.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/_utils/queueing.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/asset.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/attachment.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/bounds.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/channel.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/checklist.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/client.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/connection.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/containerized_extractors.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/dataset_file.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/datasource.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/event.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/exceptions.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/filetype.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/log.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/run.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/secret.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/unit.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/user.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/video.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/video_file.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/workbook.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/workbook_template.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/core/workspace.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/exceptions/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/README.md +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/_buckets.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/dsl/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/dsl/_enum_expr_impls.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/dsl/_numeric_expr_impls.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/dsl/_range_expr_impls.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/dsl/exprs.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/compute/dsl/params.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/logging/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/logging/click_log_handler.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/logging/nominal_log_handler.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/logging/rich_log_handler.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/migration/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/migration/migration_utils.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/rust_streaming/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/rust_streaming/rust_write_stream.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/stream_v2/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/stream_v2/_serializer.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/stream_v2/_write_stream.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/video_processing/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/video_processing/resolution.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/video_processing/video_conversion.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/nominal.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/py.typed +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/matlab/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/matlab/_matlab.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/pandas/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/pandas/_pandas.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/polars/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/polars/polars_export_handler.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/tdms/__init__.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/thirdparty/tdms/_tdms.py +0 -0
- {nominal-1.103.0 → nominal-1.104.1}/nominal/ts/__init__.py +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.104.1](https://github.com/nominal-io/nominal-client/compare/v1.104.0...v1.104.1) (2026-01-08)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* add asset_rid to data_review request ([#508](https://github.com/nominal-io/nominal-client/issues/508)) ([b1baf4f](https://github.com/nominal-io/nominal-client/commit/b1baf4f3745ee8a485ff0407a53ad9ee1ee9b0fc))
|
|
9
|
+
|
|
10
|
+
## [1.104.0](https://github.com/nominal-io/nominal-client/compare/v1.103.0...v1.104.0) (2026-01-08)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* properly use timestamp metadata fallback containerized ([#568](https://github.com/nominal-io/nominal-client/issues/568)) ([8aa5c8c](https://github.com/nominal-io/nominal-client/commit/8aa5c8cb39eeee54bb4b643ad087b80ac5e12f1a))
|
|
16
|
+
|
|
3
17
|
## [1.103.0](https://github.com/nominal-io/nominal-client/compare/v1.102.0...v1.103.0) (2026-01-06)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -20,8 +20,10 @@ from typing_extensions import Self, deprecated
|
|
|
20
20
|
|
|
21
21
|
from nominal.core import checklist, event
|
|
22
22
|
from nominal.core._clientsbunch import HasScoutParams
|
|
23
|
-
from nominal.core._utils.api_tools import HasRid
|
|
23
|
+
from nominal.core._utils.api_tools import HasRid, rid_from_instance_or_string
|
|
24
|
+
from nominal.core.asset import Asset
|
|
24
25
|
from nominal.core.exceptions import NominalMethodRemovedError
|
|
26
|
+
from nominal.core.run import Run
|
|
25
27
|
from nominal.ts import IntegralNanosecondsUTC, _SecondsNanos
|
|
26
28
|
|
|
27
29
|
|
|
@@ -162,8 +164,81 @@ class DataReviewBuilder:
|
|
|
162
164
|
self._integration_rids.append(integration_rid)
|
|
163
165
|
return self
|
|
164
166
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
+
@deprecated(
|
|
168
|
+
"`DataReviewBuilder.add_request` is deprecated and will be removed in a future release of the Nominal SDK. "
|
|
169
|
+
"Please use `DataReviewBuilder.execute_checklist` instead."
|
|
170
|
+
)
|
|
171
|
+
def add_request(
|
|
172
|
+
self,
|
|
173
|
+
run_rid: str,
|
|
174
|
+
checklist_rid: str,
|
|
175
|
+
commit: str | None = None,
|
|
176
|
+
*,
|
|
177
|
+
asset_rid: str | None = None,
|
|
178
|
+
) -> DataReviewBuilder:
|
|
179
|
+
"""Add a request to create a data review for the given checklist and run.
|
|
180
|
+
|
|
181
|
+
Args:
|
|
182
|
+
run_rid: RID of the Run to run the Checklist on
|
|
183
|
+
checklist_rid: RID of the checklist to execute on the Run
|
|
184
|
+
commit: Commit hash of the version of the checklist to run, or the latest version if None is provided
|
|
185
|
+
asset_rid: RID of the asset to run the checklist on within the Run (only required for multi-asset runs)
|
|
186
|
+
|
|
187
|
+
Returns:
|
|
188
|
+
DataReviewBuilder instance to continue building a data review with
|
|
189
|
+
"""
|
|
190
|
+
return self.execute_checklist(run_rid, checklist_rid, commit=commit, asset=asset_rid)
|
|
191
|
+
|
|
192
|
+
def execute_checklist(
|
|
193
|
+
self,
|
|
194
|
+
run: str | Run,
|
|
195
|
+
checklist: str | checklist.Checklist,
|
|
196
|
+
*,
|
|
197
|
+
commit: str | None = None,
|
|
198
|
+
asset: str | Asset | None = None,
|
|
199
|
+
) -> Self:
|
|
200
|
+
"""Add a request to create a data review for the given checklist and run.
|
|
201
|
+
|
|
202
|
+
Args:
|
|
203
|
+
run: Instance or rid of the Run to run the Checklist on
|
|
204
|
+
checklist: Instance or rid of the checklist to execute on the Run
|
|
205
|
+
commit: Commit hash of the version of the checklist to run, or the latest version if None is provided
|
|
206
|
+
asset: Instance or rid of the asset to run the checklist on within the Run
|
|
207
|
+
NOTE: only required for multi-asset runs
|
|
208
|
+
|
|
209
|
+
Returns:
|
|
210
|
+
DataReviewBuilder instance to continue building a data review with
|
|
211
|
+
|
|
212
|
+
Raises:
|
|
213
|
+
ValueError: If the given run has multiple associated assets and no asset was specified, or
|
|
214
|
+
if the run has an asset that differs from the provided asset.
|
|
215
|
+
"""
|
|
216
|
+
checklist_rid = rid_from_instance_or_string(checklist)
|
|
217
|
+
run_rid = rid_from_instance_or_string(run)
|
|
218
|
+
asset_rid = None if asset is None else rid_from_instance_or_string(asset)
|
|
219
|
+
|
|
220
|
+
raw_run = self._clients.run.get_run(self._clients.auth_header, run_rid)
|
|
221
|
+
if len(raw_run.assets) > 1 and asset is None:
|
|
222
|
+
raise ValueError(
|
|
223
|
+
f"Cannot run data review on checklist {checklist_rid} and {run_rid} without specifying `asset_rid`: "
|
|
224
|
+
f"run has {len(raw_run.assets)} assets!"
|
|
225
|
+
)
|
|
226
|
+
elif len(raw_run.assets) == 1 and asset_rid is not None:
|
|
227
|
+
raw_asset_rid = raw_run.assets[0]
|
|
228
|
+
if raw_asset_rid != asset_rid:
|
|
229
|
+
raise ValueError(
|
|
230
|
+
f"Cannot run data review on checklist {checklist_rid} and {run_rid} with asset {asset_rid}: "
|
|
231
|
+
f"run has a different asset {raw_asset_rid}!"
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
self._requests.append(
|
|
235
|
+
scout_datareview_api.CreateDataReviewRequest(
|
|
236
|
+
checklist_rid=checklist_rid,
|
|
237
|
+
run_rid=run_rid,
|
|
238
|
+
asset_rid=asset_rid,
|
|
239
|
+
commit=commit,
|
|
240
|
+
)
|
|
241
|
+
)
|
|
167
242
|
return self
|
|
168
243
|
|
|
169
244
|
def add_tags(self, tags: list[str]) -> DataReviewBuilder:
|
|
@@ -174,8 +249,7 @@ class DataReviewBuilder:
|
|
|
174
249
|
"""Initiates a batch data review process.
|
|
175
250
|
|
|
176
251
|
Args:
|
|
177
|
-
wait_for_completion
|
|
178
|
-
Default is True.
|
|
252
|
+
wait_for_completion: If True, waits for the data review process to complete before returning.
|
|
179
253
|
"""
|
|
180
254
|
request = scout_datareview_api.BatchInitiateDataReviewRequest(
|
|
181
255
|
notification_configurations=[
|
|
@@ -468,7 +468,7 @@ class Dataset(DataSource, RefreshableMixin[scout_catalog.EnrichedDataset]):
|
|
|
468
468
|
series_name=timestamp_column,
|
|
469
469
|
timestamp_type=_to_typed_timestamp_type(timestamp_type)._to_conjure_ingest_api(),
|
|
470
470
|
)
|
|
471
|
-
elif None
|
|
471
|
+
elif (timestamp_column is None) != (timestamp_type is None):
|
|
472
472
|
raise ValueError("Only one of `timestamp_column` and `timestamp_type` provided!")
|
|
473
473
|
|
|
474
474
|
if isinstance(extractor, str):
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/rust_streaming/rust_write_stream.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nominal-1.103.0 → nominal-1.104.1}/nominal/experimental/video_processing/video_conversion.py
RENAMED
|
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
|
|
File without changes
|