scale-nucleus 0.17.3__tar.gz → 0.17.5__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.
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/PKG-INFO +1 -1
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/dataset.py +39 -1
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/model.py +12 -3
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/pyproject.toml +1 -1
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/LICENSE +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/README.md +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/client.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/datasets.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/helpers/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/helpers/nucleus_url.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/helpers/web_helper.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/install_completion.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/jobs.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/models.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/nu.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/reference.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/slices.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/cli/tests.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/annotation.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/annotation_uploader.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/async_job.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/async_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/autocurate.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/camera_params.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/chip_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/connection.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/constants.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/dataset_details.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/dataset_info.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/dataset_size.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/job_status.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/scenes_list.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/dataset_item.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/dataset_item_uploader.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/deprecation_warning.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/embedding_index.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/errors.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/evaluation_match.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/job.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/logger.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metadata_manager.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/base.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/categorization_metrics.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/cuboid_metrics.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/cuboid_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/custom_types.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/errors.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/filtering.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/filters.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/metric_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/polygon_metrics.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/polygon_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/segmentation_loader.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/segmentation_metrics.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/segmentation_to_poly_metrics.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/segmentation_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/model_run.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/package_not_installed.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/payload_constructor.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/prediction.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/pydantic_base.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/quaternion.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/retry_strategy.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/scene.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/slice.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/test_launch_integration.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/track.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/upload_response.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/url_utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/utils.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/client.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/constants.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/data_transfer_objects/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/data_transfer_objects/eval_function.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/data_transfer_objects/scenario_test.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/data_transfer_objects/scenario_test_evaluations.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/data_transfer_objects/scenario_test_metric.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/errors.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/eval_functions/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/eval_functions/available_eval_functions.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/eval_functions/base_eval_function.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/eval_functions/config_classes/__init__.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/eval_functions/config_classes/segmentation.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/scenario_test.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/scenario_test_evaluation.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/scenario_test_metric.py +0 -0
- {scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/utils.py +0 -0
@@ -104,7 +104,7 @@ from .slice import (
|
|
104
104
|
from .upload_response import UploadResponse
|
105
105
|
|
106
106
|
if TYPE_CHECKING:
|
107
|
-
from . import NucleusClient
|
107
|
+
from . import Model, NucleusClient
|
108
108
|
|
109
109
|
# TODO: refactor to reduce this file to under 1000 lines.
|
110
110
|
# pylint: disable=C0302
|
@@ -2303,3 +2303,41 @@ class Dataset:
|
|
2303
2303
|
|
2304
2304
|
else:
|
2305
2305
|
print(f"Did not find any items in {dirname}.")
|
2306
|
+
|
2307
|
+
def upload_lidar_semseg_predictions(
|
2308
|
+
self,
|
2309
|
+
model: "Model",
|
2310
|
+
pointcloud_ref_id: str,
|
2311
|
+
predictions_s3_path: str,
|
2312
|
+
):
|
2313
|
+
"""Upload Lidar Semantic Segmentation predictions for a given pointcloud.
|
2314
|
+
|
2315
|
+
Assuming a pointcloud with only 4 points (three labeled as Car, one labeled as Person),
|
2316
|
+
the contents of the predictions s3 object should be formatted as such:
|
2317
|
+
|
2318
|
+
.. code-block:: json
|
2319
|
+
|
2320
|
+
{
|
2321
|
+
"objects": [
|
2322
|
+
{ "label": "Car", "index": 1},
|
2323
|
+
{ "label": "Person", "index": 2}
|
2324
|
+
],
|
2325
|
+
"point_objects": [1, 1, 1, 2],
|
2326
|
+
"point_confidence": [0.5, 0.9, 0.9, 0.3]
|
2327
|
+
}
|
2328
|
+
|
2329
|
+
The order of the points in the `"point_objects"` should be in the same order as the points that
|
2330
|
+
were originally uploaded to Scale.
|
2331
|
+
|
2332
|
+
Parameters:
|
2333
|
+
model (:class:`Model`): Nucleus model used to store these predictions
|
2334
|
+
pointcloud_ref_id (str): The reference ID of the pointcloud for which these predictions belong to
|
2335
|
+
predictions_s3_path (str): S3 path to where the predictions are stored
|
2336
|
+
|
2337
|
+
"""
|
2338
|
+
|
2339
|
+
return self._client.make_request(
|
2340
|
+
payload={"pointsSegmentationUrl": predictions_s3_path},
|
2341
|
+
route=f"dataset/{self.id}/model/{model.id}/pointcloud/{pointcloud_ref_id}/uploadLSSPrediction",
|
2342
|
+
requests_command=requests.post,
|
2343
|
+
)
|
@@ -211,7 +211,9 @@ class Model:
|
|
211
211
|
)
|
212
212
|
return AsyncJob.from_json(response, self._client)
|
213
213
|
|
214
|
-
def run(
|
214
|
+
def run(
|
215
|
+
self, dataset_id: str, model_run_name: str, slice_id: Optional[str]
|
216
|
+
) -> str:
|
215
217
|
"""Runs inference on the bundle associated with the model on the dataset. ::
|
216
218
|
|
217
219
|
import nucleus
|
@@ -222,11 +224,18 @@ class Model:
|
|
222
224
|
|
223
225
|
Args:
|
224
226
|
dataset_id: The ID of the dataset to run inference on.
|
225
|
-
|
227
|
+
model_run_name: The name of the model run.
|
226
228
|
slice_id: The ID of the slice of the dataset to run inference on.
|
229
|
+
|
230
|
+
Returns:
|
231
|
+
job_id: The ID of the :class:`AsyncJob` used to track job progress.
|
227
232
|
"""
|
228
233
|
response = self._client.make_request(
|
229
|
-
{
|
234
|
+
{
|
235
|
+
"dataset_id": dataset_id,
|
236
|
+
"slice_id": slice_id,
|
237
|
+
"model_run_name": model_run_name,
|
238
|
+
},
|
230
239
|
f"model/run/{self.id}/",
|
231
240
|
requests_command=requests.post,
|
232
241
|
)
|
@@ -25,7 +25,7 @@ ignore = ["E501", "E741", "E731", "F401"] # Easy ignore for getting it running
|
|
25
25
|
|
26
26
|
[tool.poetry]
|
27
27
|
name = "scale-nucleus"
|
28
|
-
version = "0.17.
|
28
|
+
version = "0.17.5"
|
29
29
|
description = "The official Python client library for Nucleus, the Data Platform for AI"
|
30
30
|
license = "MIT"
|
31
31
|
authors = ["Scale AI Nucleus Team <nucleusapi@scaleapi.com>"]
|
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
|
{scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/data_transfer_object/dataset_details.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
|
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
|
{scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/metrics/segmentation_to_poly_metrics.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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/data_transfer_objects/__init__.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
|
{scale_nucleus-0.17.3 → scale_nucleus-0.17.5}/nucleus/validate/eval_functions/base_eval_function.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|