scale-nucleus 0.16.13__tar.gz → 0.16.14__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.16.13 → scale_nucleus-0.16.14}/PKG-INFO +2 -2
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/__init__.py +16 -8
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/job_status.py +12 -6
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/pydantic_base.py +12 -6
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/test_launch_integration.py +12 -8
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/utils.py +1 -1
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/data_transfer_objects/eval_function.py +10 -6
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/data_transfer_objects/scenario_test.py +10 -6
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/data_transfer_objects/scenario_test_evaluations.py +11 -7
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/pyproject.toml +2 -2
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/LICENSE +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/README.md +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/client.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/datasets.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/helpers/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/helpers/nucleus_url.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/helpers/web_helper.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/install_completion.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/jobs.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/models.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/nu.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/reference.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/slices.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/cli/tests.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/annotation.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/annotation_uploader.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/async_job.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/async_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/autocurate.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/camera_params.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/chip_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/connection.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/constants.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/dataset_details.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/dataset_info.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/dataset_size.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/scenes_list.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/dataset.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/dataset_item.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/dataset_item_uploader.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/deprecation_warning.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/embedding_index.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/errors.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/evaluation_match.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/job.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/logger.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metadata_manager.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/base.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/categorization_metrics.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/cuboid_metrics.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/cuboid_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/custom_types.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/errors.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/filtering.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/filters.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/metric_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/polygon_metrics.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/polygon_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/segmentation_loader.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/segmentation_metrics.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/segmentation_to_poly_metrics.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/metrics/segmentation_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/model.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/model_run.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/package_not_installed.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/payload_constructor.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/prediction.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/quaternion.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/retry_strategy.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/scene.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/slice.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/track.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/upload_response.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/url_utils.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/client.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/constants.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/data_transfer_objects/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/data_transfer_objects/scenario_test_metric.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/errors.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/eval_functions/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/eval_functions/available_eval_functions.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/eval_functions/base_eval_function.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/eval_functions/config_classes/__init__.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/eval_functions/config_classes/segmentation.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/scenario_test.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/scenario_test_evaluation.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/scenario_test_metric.py +0 -0
- {scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/utils.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: scale-nucleus
|
3
|
-
Version: 0.16.
|
3
|
+
Version: 0.16.14
|
4
4
|
Summary: The official Python client library for Nucleus, the Data Platform for AI
|
5
5
|
Home-page: https://scale.com/nucleus
|
6
6
|
License: MIT
|
@@ -24,7 +24,7 @@ Requires-Dist: click (>=7.1.2,<9.0)
|
|
24
24
|
Requires-Dist: nest-asyncio (>=1.5.1,<2.0.0)
|
25
25
|
Requires-Dist: numpy (>=1.19.5) ; python_version >= "3.7" and python_version < "3.10"
|
26
26
|
Requires-Dist: numpy (>=1.22.0) ; python_version >= "3.10"
|
27
|
-
Requires-Dist: pydantic (>=1.8.2
|
27
|
+
Requires-Dist: pydantic (>=1.8.2)
|
28
28
|
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
29
29
|
Requires-Dist: questionary (>=1.10.0,<2.0.0)
|
30
30
|
Requires-Dist: rasterio (>=1.2.0) ; extra == "metrics"
|
@@ -45,13 +45,17 @@ __all__ = [
|
|
45
45
|
import datetime
|
46
46
|
import os
|
47
47
|
import warnings
|
48
|
-
from typing import Any, Dict, List, Optional, Tuple, Union
|
49
|
-
|
50
|
-
|
51
|
-
#
|
52
|
-
|
53
|
-
|
54
|
-
|
48
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
|
49
|
+
|
50
|
+
if TYPE_CHECKING:
|
51
|
+
# Backwards compatibility is even uglier with mypy
|
52
|
+
from pydantic.v1 import parse_obj_as
|
53
|
+
else:
|
54
|
+
try:
|
55
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
56
|
+
from pydantic.v1 import parse_obj_as
|
57
|
+
except ImportError:
|
58
|
+
from pydantic import parse_obj_as
|
55
59
|
|
56
60
|
import requests
|
57
61
|
import tqdm
|
@@ -216,7 +220,11 @@ class NucleusClient:
|
|
216
220
|
List of all datasets accessible to user
|
217
221
|
"""
|
218
222
|
response = self.make_request({}, "dataset/details", requests.get)
|
219
|
-
dataset_details =
|
223
|
+
dataset_details = (
|
224
|
+
parse_obj_as( # pylint: disable=used-before-assignment
|
225
|
+
List[DatasetDetails], response
|
226
|
+
)
|
227
|
+
)
|
220
228
|
return [
|
221
229
|
Dataset(d.id, client=self, name=d.name) for d in dataset_details
|
222
230
|
]
|
@@ -1,15 +1,19 @@
|
|
1
1
|
# pylint: disable=E0213
|
2
2
|
|
3
3
|
from datetime import datetime
|
4
|
-
from typing import List, Optional, Union
|
4
|
+
from typing import TYPE_CHECKING, List, Optional, Union
|
5
5
|
|
6
6
|
from dateutil.parser import ParserError, parse
|
7
7
|
|
8
|
-
|
9
|
-
#
|
8
|
+
if TYPE_CHECKING:
|
9
|
+
# Backwards compatibility is even uglier with mypy
|
10
10
|
from pydantic.v1 import validator
|
11
|
-
|
12
|
-
|
11
|
+
else:
|
12
|
+
try:
|
13
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
14
|
+
from pydantic.v1 import validator
|
15
|
+
except ImportError:
|
16
|
+
from pydantic import validator
|
13
17
|
|
14
18
|
from nucleus.constants import JOB_REQ_LIMIT
|
15
19
|
from nucleus.job import CustomerJobTypes
|
@@ -24,7 +28,9 @@ class JobInfoRequestPayload(ImmutableModel):
|
|
24
28
|
limit: Optional[int]
|
25
29
|
show_completed: bool
|
26
30
|
|
27
|
-
@validator(
|
31
|
+
@validator( # pylint: disable=used-before-assignment
|
32
|
+
"from_date", "to_date"
|
33
|
+
)
|
28
34
|
def ensure_date_format(cls, date):
|
29
35
|
if date is None:
|
30
36
|
return None
|
@@ -4,14 +4,20 @@ We started using pydantic during v1 and are kind of stuck with it now unless we
|
|
4
4
|
As a library we want to support v1 and v2 such that we're not causing downstream problems for our users.
|
5
5
|
This means we have to do some import shenanigans to support both v1 and v2.
|
6
6
|
"""
|
7
|
-
|
8
|
-
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
9
|
-
from pydantic.v1 import BaseModel # pylint: disable=no-name-in-module
|
10
|
-
except ImportError:
|
11
|
-
from pydantic import BaseModel
|
7
|
+
from typing import TYPE_CHECKING
|
12
8
|
|
9
|
+
if TYPE_CHECKING:
|
10
|
+
# Backwards compatibility is even uglier with mypy
|
11
|
+
from pydantic.v1 import BaseModel, Extra, ValidationError
|
12
|
+
else:
|
13
|
+
try:
|
14
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
15
|
+
from pydantic.v1 import BaseModel # pylint: disable=no-name-in-module
|
16
|
+
except ImportError:
|
17
|
+
from pydantic import BaseModel
|
13
18
|
|
14
|
-
|
19
|
+
|
20
|
+
class ImmutableModel(BaseModel): # pylint: disable=used-before-assignment
|
15
21
|
class Config:
|
16
22
|
allow_mutation = False
|
17
23
|
|
@@ -1,24 +1,28 @@
|
|
1
1
|
import io
|
2
|
-
from typing import Any, Callable, Dict, List, Optional, Type
|
2
|
+
from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Type
|
3
3
|
|
4
4
|
from PIL import Image, ImageDraw
|
5
5
|
|
6
|
-
|
7
|
-
#
|
6
|
+
if TYPE_CHECKING:
|
7
|
+
# Backwards compatibility is even uglier with mypy
|
8
8
|
from pydantic.v1 import BaseModel, Extra, ValidationError
|
9
|
-
|
10
|
-
|
9
|
+
else:
|
10
|
+
try:
|
11
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
12
|
+
from pydantic.v1 import BaseModel, Extra, ValidationError
|
13
|
+
except ImportError:
|
14
|
+
from pydantic import BaseModel, Extra, ValidationError
|
11
15
|
|
12
16
|
# From scaleapi/server/src/lib/select/api/types.ts
|
13
17
|
# These classes specify how user models must pass output to Launch + Nucleus.
|
14
18
|
|
15
19
|
|
16
|
-
class PointModel(BaseModel):
|
20
|
+
class PointModel(BaseModel): # pylint: disable=used-before-assignment
|
17
21
|
x: float
|
18
22
|
y: float
|
19
23
|
|
20
24
|
class Config:
|
21
|
-
extra = Extra.forbid
|
25
|
+
extra = Extra.forbid # pylint: disable=used-before-assignment
|
22
26
|
|
23
27
|
|
24
28
|
class BoxGeometryModel(BaseModel):
|
@@ -106,7 +110,7 @@ def verify_output(
|
|
106
110
|
for annotation in annotation_list:
|
107
111
|
try:
|
108
112
|
model.parse_obj(annotation)
|
109
|
-
except ValidationError as e:
|
113
|
+
except ValidationError as e: # pylint: disable=used-before-assignment
|
110
114
|
raise ValueError("Failed validation") from e
|
111
115
|
if annotation["type"] != annotation_type:
|
112
116
|
raise ValueError(
|
@@ -363,7 +363,7 @@ def upload_to_presigned_url(presigned_url: str, file_pointer: IO):
|
|
363
363
|
# TODO optimize this further to deal with truly huge files and flaky internet connection.
|
364
364
|
upload_response = requests.put(presigned_url, file_pointer)
|
365
365
|
if not upload_response.ok:
|
366
|
-
raise HTTPError(
|
366
|
+
raise HTTPError( # type: ignore
|
367
367
|
f"Tried to put a file to url, but failed with status {upload_response.status_code}. The detailed error was: {upload_response.text}"
|
368
368
|
)
|
369
369
|
|
@@ -1,10 +1,14 @@
|
|
1
|
-
from typing import Any, Dict, List, Optional
|
1
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional
|
2
2
|
|
3
|
-
|
4
|
-
#
|
3
|
+
if TYPE_CHECKING:
|
4
|
+
# Backwards compatibility is even uglier with mypy
|
5
5
|
from pydantic.v1 import validator
|
6
|
-
|
7
|
-
|
6
|
+
else:
|
7
|
+
try:
|
8
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
9
|
+
from pydantic.v1 import validator
|
10
|
+
except ImportError:
|
11
|
+
from pydantic import validator
|
8
12
|
|
9
13
|
from ...pydantic_base import ImmutableModel
|
10
14
|
from ..constants import ThresholdComparison
|
@@ -63,7 +67,7 @@ class EvaluationCriterion(ImmutableModel):
|
|
63
67
|
threshold: float
|
64
68
|
eval_func_arguments: Dict[str, Any]
|
65
69
|
|
66
|
-
@validator("eval_function_id")
|
70
|
+
@validator("eval_function_id") # pylint: disable=used-before-assignment
|
67
71
|
def valid_eval_function_id(cls, v): # pylint: disable=no-self-argument
|
68
72
|
if not v.startswith("ef_"):
|
69
73
|
raise ValueError(f"Expected field to start with 'ef_', got '{v}'")
|
@@ -1,10 +1,14 @@
|
|
1
|
-
from typing import List
|
1
|
+
from typing import TYPE_CHECKING, List
|
2
2
|
|
3
|
-
|
4
|
-
#
|
3
|
+
if TYPE_CHECKING:
|
4
|
+
# Backwards compatibility is even uglier with mypy
|
5
5
|
from pydantic.v1 import validator
|
6
|
-
|
7
|
-
|
6
|
+
else:
|
7
|
+
try:
|
8
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
9
|
+
from pydantic.v1 import validator
|
10
|
+
except ImportError:
|
11
|
+
from pydantic import validator
|
8
12
|
|
9
13
|
from nucleus.pydantic_base import ImmutableModel
|
10
14
|
|
@@ -19,7 +23,7 @@ class CreateScenarioTestRequest(ImmutableModel):
|
|
19
23
|
slice_id: str
|
20
24
|
evaluation_functions: List[EvalFunctionListEntry]
|
21
25
|
|
22
|
-
@validator("slice_id")
|
26
|
+
@validator("slice_id") # pylint: disable=used-before-assignment
|
23
27
|
def startswith_slice_indicator(cls, v): # pylint: disable=no-self-argument
|
24
28
|
if not v.startswith("slc_"):
|
25
29
|
raise ValueError(f"Expected field to start with 'slc_', got '{v}'")
|
@@ -1,10 +1,14 @@
|
|
1
|
-
from typing import Optional
|
1
|
+
from typing import TYPE_CHECKING, Optional
|
2
2
|
|
3
|
-
|
4
|
-
#
|
3
|
+
if TYPE_CHECKING:
|
4
|
+
# Backwards compatibility is even uglier with mypy
|
5
5
|
from pydantic.v1 import root_validator, validator
|
6
|
-
|
7
|
-
|
6
|
+
else:
|
7
|
+
try:
|
8
|
+
# NOTE: we always use pydantic v1 but have to do these shenanigans to support both v1 and v2
|
9
|
+
from pydantic.v1 import root_validator, validator
|
10
|
+
except ImportError:
|
11
|
+
from pydantic import root_validator, validator
|
8
12
|
|
9
13
|
from nucleus.pydantic_base import ImmutableModel
|
10
14
|
|
@@ -16,7 +20,7 @@ class EvaluationResult(ImmutableModel):
|
|
16
20
|
score: float = 0
|
17
21
|
weight: float = 1
|
18
22
|
|
19
|
-
@root_validator()
|
23
|
+
@root_validator() # pylint: disable=used-before-assignment
|
20
24
|
def is_item_or_scene_provided(
|
21
25
|
cls, values
|
22
26
|
): # pylint: disable=no-self-argument
|
@@ -31,7 +35,7 @@ class EvaluationResult(ImmutableModel):
|
|
31
35
|
)
|
32
36
|
return values
|
33
37
|
|
34
|
-
@validator("weight")
|
38
|
+
@validator("weight") # pylint: disable=used-before-assignment
|
35
39
|
def is_normalized(cls, v): # pylint: disable=no-self-argument
|
36
40
|
if 0 <= v <= 1:
|
37
41
|
return v
|
@@ -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.16.
|
28
|
+
version = "0.16.14"
|
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>"]
|
@@ -41,7 +41,7 @@ requests = "^2.23.0"
|
|
41
41
|
tqdm = "^4.41.0"
|
42
42
|
aiohttp = "^3.7.4"
|
43
43
|
nest-asyncio = "^1.5.1"
|
44
|
-
pydantic = "
|
44
|
+
pydantic = ">=1.8.2"
|
45
45
|
numpy = [{ version = ">=1.19.5", python = ">=3.7,<3.10" }, { version = ">=1.22.0", python = ">=3.10"}]
|
46
46
|
scipy = { version=">=1.4.1", optional = true } # NOTE: COLAB has 1.4.1 and has problems updating
|
47
47
|
click = ">=7.1.2,<9.0" # NOTE: COLAB has 7.1.2 and has problems updating
|
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.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/dataset_details.py
RENAMED
File without changes
|
{scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/dataset_info.py
RENAMED
File without changes
|
{scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/data_transfer_object/dataset_size.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
|
{scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/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
|
{scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/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
|
File without changes
|
{scale_nucleus-0.16.13 → scale_nucleus-0.16.14}/nucleus/validate/scenario_test_evaluation.py
RENAMED
File without changes
|
File without changes
|
File without changes
|