scale-nucleus 0.14.7__py3-none-any.whl → 0.14.14b0__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.
- cli/slices.py +14 -28
- nucleus/__init__.py +12 -14
- nucleus/annotation.py +5 -4
- nucleus/connection.py +9 -1
- nucleus/constants.py +1 -0
- nucleus/dataset.py +139 -55
- nucleus/dataset_item.py +11 -1
- nucleus/job.py +1 -1
- nucleus/metrics/categorization_metrics.py +6 -2
- nucleus/metrics/segmentation_loader.py +11 -15
- nucleus/metrics/segmentation_metrics.py +8 -20
- nucleus/metrics/segmentation_to_poly_metrics.py +12 -16
- nucleus/metrics/segmentation_utils.py +1 -1
- nucleus/model.py +16 -14
- nucleus/model_run.py +1 -1
- nucleus/prediction.py +3 -3
- nucleus/slice.py +100 -19
- nucleus/validate/client.py +11 -6
- nucleus/validate/data_transfer_objects/scenario_test_evaluations.py +0 -8
- nucleus/validate/scenario_test.py +22 -14
- nucleus/validate/scenario_test_evaluation.py +21 -21
- nucleus/validate/utils.py +1 -1
- {scale_nucleus-0.14.7.dist-info → scale_nucleus-0.14.14b0.dist-info}/LICENSE +0 -0
- {scale_nucleus-0.14.7.dist-info → scale_nucleus-0.14.14b0.dist-info}/METADATA +2 -2
- {scale_nucleus-0.14.7.dist-info → scale_nucleus-0.14.14b0.dist-info}/RECORD +27 -27
- {scale_nucleus-0.14.7.dist-info → scale_nucleus-0.14.14b0.dist-info}/WHEEL +1 -1
- {scale_nucleus-0.14.7.dist-info → scale_nucleus-0.14.14b0.dist-info}/entry_points.txt +0 -0
@@ -18,10 +18,7 @@ from .constants import (
|
|
18
18
|
THRESHOLD_KEY,
|
19
19
|
ThresholdComparison,
|
20
20
|
)
|
21
|
-
from .data_transfer_objects.scenario_test_evaluations import
|
22
|
-
EvaluationResult,
|
23
|
-
GetEvalHistory,
|
24
|
-
)
|
21
|
+
from .data_transfer_objects.scenario_test_evaluations import EvaluationResult
|
25
22
|
from .data_transfer_objects.scenario_test_metric import AddScenarioTestFunction
|
26
23
|
from .eval_functions.available_eval_functions import (
|
27
24
|
EvalFunction,
|
@@ -52,13 +49,24 @@ class ScenarioTest:
|
|
52
49
|
slice_id: str = field(init=False)
|
53
50
|
baseline_model_id: Optional[str] = None
|
54
51
|
|
55
|
-
|
52
|
+
@classmethod
|
53
|
+
def from_id(cls, unit_test_id: str, connection: Connection):
|
56
54
|
# TODO(gunnar): Remove this pattern. It's too slow. We should get all the info required in one call
|
57
|
-
response =
|
58
|
-
f"validate/scenario_test/{
|
55
|
+
response = connection.get(
|
56
|
+
f"validate/scenario_test/{unit_test_id}/info",
|
59
57
|
)
|
60
|
-
|
61
|
-
|
58
|
+
instance = cls(unit_test_id, connection)
|
59
|
+
instance.name = response[NAME_KEY]
|
60
|
+
instance.slice_id = response[SLICE_ID_KEY]
|
61
|
+
return instance
|
62
|
+
|
63
|
+
@classmethod
|
64
|
+
def from_response(cls, response, connection: Connection):
|
65
|
+
instance = cls(response["id"], connection)
|
66
|
+
instance.name = response[NAME_KEY]
|
67
|
+
instance.slice_id = response[SLICE_ID_KEY]
|
68
|
+
instance.baseline_model_id = response.get("baseline_model_id", None)
|
69
|
+
return instance
|
62
70
|
|
63
71
|
def add_eval_function(
|
64
72
|
self, eval_function: EvalFunction
|
@@ -148,13 +156,13 @@ class ScenarioTest:
|
|
148
156
|
A list of :class:`ScenarioTestEvaluation` objects.
|
149
157
|
"""
|
150
158
|
response = self.connection.get(
|
151
|
-
f"validate/scenario_test/{self.id}/eval_history",
|
159
|
+
f"validate/scenario_test/{self.id}/eval_history/details",
|
152
160
|
)
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
for evaluation in eval_history.evaluations
|
161
|
+
evaluations = [
|
162
|
+
ScenarioTestEvaluation.from_request(eval_payload, self.connection)
|
163
|
+
for eval_payload in response
|
157
164
|
]
|
165
|
+
return evaluations
|
158
166
|
|
159
167
|
def get_items(self) -> List[DatasetItem]:
|
160
168
|
response = self.connection.get(
|
@@ -1,5 +1,5 @@
|
|
1
1
|
"""Data types for Scenario Test Evaluation results."""
|
2
|
-
from dataclasses import
|
2
|
+
from dataclasses import dataclass, field
|
3
3
|
from enum import Enum
|
4
4
|
from typing import List, Optional
|
5
5
|
|
@@ -77,31 +77,30 @@ class ScenarioTestEvaluation:
|
|
77
77
|
status: ScenarioTestEvaluationStatus = field(init=False)
|
78
78
|
result: Optional[float] = field(init=False)
|
79
79
|
passed: bool = field(init=False)
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
def
|
84
|
-
|
85
|
-
|
86
|
-
|
80
|
+
connection: Connection = field(init=False, repr=False)
|
81
|
+
|
82
|
+
@classmethod
|
83
|
+
def from_request(cls, response, connection):
|
84
|
+
instance = cls(response["id"])
|
85
|
+
instance.connection = connection
|
86
|
+
|
87
|
+
instance.scenario_test_id = response[SCENARIO_TEST_ID_KEY]
|
88
|
+
instance.eval_function_id = response[EVAL_FUNCTION_ID_KEY]
|
89
|
+
instance.model_id = response[MODEL_ID_KEY]
|
90
|
+
instance.status = ScenarioTestEvaluationStatus(response[STATUS_KEY])
|
91
|
+
instance.result = try_convert_float(response[RESULT_KEY])
|
92
|
+
instance.passed = bool(response[PASS_KEY])
|
93
|
+
return instance
|
94
|
+
|
95
|
+
@property
|
96
|
+
def item_evals(self) -> List[ScenarioTestItemEvaluation]:
|
97
|
+
response = self.connection.make_request(
|
87
98
|
{},
|
88
99
|
f"validate/eval/{self.id}/info",
|
89
100
|
requests_command=requests.get,
|
90
101
|
)
|
91
|
-
eval_response = response[SCENARIO_TEST_EVAL_KEY]
|
92
102
|
items_response = response[ITEM_EVAL_KEY]
|
93
|
-
|
94
|
-
self.scenario_test_id: str = eval_response[SCENARIO_TEST_ID_KEY]
|
95
|
-
self.eval_function_id: str = eval_response[EVAL_FUNCTION_ID_KEY]
|
96
|
-
self.model_id: str = eval_response[MODEL_ID_KEY]
|
97
|
-
self.status: ScenarioTestEvaluationStatus = (
|
98
|
-
ScenarioTestEvaluationStatus(eval_response[STATUS_KEY])
|
99
|
-
)
|
100
|
-
self.result: Optional[float] = try_convert_float(
|
101
|
-
eval_response[RESULT_KEY]
|
102
|
-
)
|
103
|
-
self.passed: bool = bool(eval_response[PASS_KEY])
|
104
|
-
self.item_evals: List[ScenarioTestItemEvaluation] = [
|
103
|
+
items = [
|
105
104
|
ScenarioTestItemEvaluation(
|
106
105
|
evaluation_id=res[EVALUATION_ID_KEY],
|
107
106
|
scenario_test_id=res[SCENARIO_TEST_ID_KEY],
|
@@ -112,3 +111,4 @@ class ScenarioTestEvaluation:
|
|
112
111
|
)
|
113
112
|
for res in items_response
|
114
113
|
]
|
114
|
+
return items
|
nucleus/validate/utils.py
CHANGED
File without changes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: scale-nucleus
|
3
|
-
Version: 0.14.
|
3
|
+
Version: 0.14.14b0
|
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
|
@@ -9,6 +9,7 @@ Author-email: nucleusapi@scaleapi.com
|
|
9
9
|
Requires-Python: >=3.6.2,<4.0
|
10
10
|
Classifier: License :: OSI Approved :: MIT License
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
12
13
|
Classifier: Programming Language :: Python :: 3.7
|
13
14
|
Classifier: Programming Language :: Python :: 3.8
|
14
15
|
Classifier: Programming Language :: Python :: 3.9
|
@@ -26,7 +27,6 @@ Requires-Dist: pydantic (>=1.8.2,<2.0.0)
|
|
26
27
|
Requires-Dist: rasterio (>=1.2.0); extra == "metrics"
|
27
28
|
Requires-Dist: requests (>=2.23.0,<3.0.0)
|
28
29
|
Requires-Dist: rich (>=10.15.2)
|
29
|
-
Requires-Dist: s3fs (>=2021.9.0); extra == "metrics"
|
30
30
|
Requires-Dist: scale-launch (>=0.1.0); (python_version >= "3.7" and python_version < "4.0") and (extra == "launch")
|
31
31
|
Requires-Dist: scikit-learn (>=0.24.0)
|
32
32
|
Requires-Dist: scipy (>=1.4.1)
|
@@ -8,32 +8,32 @@ cli/jobs.py,sha256=v-ArlqUyK3iPose2ihlzk7rq2W3uf5gOKmN0npNULKU,1176
|
|
8
8
|
cli/models.py,sha256=IWJyL9EJZXlpul0aW2qRgZG9rhFO59M8Ux-u-yMofzI,1039
|
9
9
|
cli/nu.py,sha256=0f71zPq4fe3I1ghhiSRQi39ENhAzoLPdhz_vh8vxSI8,2074
|
10
10
|
cli/reference.py,sha256=RuHVhmGTZNe0MfwpL96YjJdaH0OJzg98rz4xeIu4hJU,256
|
11
|
-
cli/slices.py,sha256=
|
11
|
+
cli/slices.py,sha256=1qAeX3-50-aBEDQxz0M8REwlTg9taLExS0a4PA3r3-U,1520
|
12
12
|
cli/tests.py,sha256=q90eo3l8yn0VxRwjWB821E709y_9xWqvFdEgPwV8vTY,4508
|
13
|
-
nucleus/__init__.py,sha256=
|
14
|
-
nucleus/annotation.py,sha256=
|
13
|
+
nucleus/__init__.py,sha256=P9mw2bqIjffa8Ys7RlB-KznxsouPDwrRcKcrdvku5jQ,39897
|
14
|
+
nucleus/annotation.py,sha256=yAmK734BhhuJitdKvoV8FGILKCUjc72d_fEtwjjyCV4,36189
|
15
15
|
nucleus/annotation_uploader.py,sha256=v9mlvKs1nV3LzZC5rL_gu8O366SSbvKzn9fvpkpRdpc,9477
|
16
16
|
nucleus/async_utils.py,sha256=RhHymn-GvP9cEs-nerbjrUmGxwqvWES4yWmf_9nr-qs,6709
|
17
17
|
nucleus/autocurate.py,sha256=Juw8V5CYKp3T-15u1QZOWaT6_fhXqGITf80eqtBNIqY,1074
|
18
18
|
nucleus/camera_params.py,sha256=fl17aaSAZDAJIWo6F2HFvM6HKGcQh9fXvo4t3RzGMc4,3726
|
19
|
-
nucleus/connection.py,sha256=
|
20
|
-
nucleus/constants.py,sha256=
|
19
|
+
nucleus/connection.py,sha256=xl6Dz8io57GOn02Fbg5btnlMslEgNbijpht7JekZoD4,2862
|
20
|
+
nucleus/constants.py,sha256=ohLj4T9EjWYoh9zeVs9MmNmuKGjVrPkNJuNMUf1fH6g,4245
|
21
21
|
nucleus/data_transfer_object/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
22
|
nucleus/data_transfer_object/dataset_details.py,sha256=1YGvfKkPSqDrXK_y5mBXyRThY07tU-nwOCYTkYCSl6k,214
|
23
23
|
nucleus/data_transfer_object/dataset_info.py,sha256=5P_gpvAyaqXxj2ZQuzLkGN2XROaN9Me56OLybCmO3R4,940
|
24
24
|
nucleus/data_transfer_object/dataset_size.py,sha256=oe-dXaMLpsQRDcJQRZ9Ja8JTagYz4dviZuTognEylp0,111
|
25
25
|
nucleus/data_transfer_object/scenes_list.py,sha256=iTHE6vA47bRB6ciyEU4LArUXEXco4ArnGvZTGTeK8xs,432
|
26
|
-
nucleus/dataset.py,sha256=
|
27
|
-
nucleus/dataset_item.py,sha256
|
26
|
+
nucleus/dataset.py,sha256=w1BF3Qwg7jA_ymEU3QLx37dzXP2AZYVsneXdfh8ezHw,70455
|
27
|
+
nucleus/dataset_item.py,sha256=NbJMHjaLIjsdF6IfsYgJgYibvNWn7BiV9dWmDX7QWeI,9148
|
28
28
|
nucleus/dataset_item_uploader.py,sha256=oH4Ly6sIQYrkdaOqrcbU_l-n5wQnspMefpJvgdBYAUM,6938
|
29
29
|
nucleus/deprecation_warning.py,sha256=5C9dVusR5UkUQnW2MrRkIXCfbc8ULc7xOaB134agNKk,976
|
30
30
|
nucleus/errors.py,sha256=IAONLQq-vsFVZSCY3zWzEOyRjkiOpJ3hUquS7_jNAz8,2870
|
31
|
-
nucleus/job.py,sha256=
|
31
|
+
nucleus/job.py,sha256=juxzn3xB8HwGDxolANX8Ryo4xM5QCOCaOembCdxyFaQ,4745
|
32
32
|
nucleus/logger.py,sha256=acoFtszu4T-fj_Op4rwlXNNaLPrQ8Kw2ofaYusBHO8I,208
|
33
33
|
nucleus/metadata_manager.py,sha256=gO1jChfP7sAokr-llYv3D86eV_VPumMWfOtn6GMw-Ew,1890
|
34
34
|
nucleus/metrics/__init__.py,sha256=bve48T1quN_vh3zhpW1nbv8ZfFBBiT9k6d8cipu-1k0,894
|
35
35
|
nucleus/metrics/base.py,sha256=cwBE1xm-2SN6ULfRwajLwNrC8oaLU4cGxP686EP4KE8,7757
|
36
|
-
nucleus/metrics/categorization_metrics.py,sha256=
|
36
|
+
nucleus/metrics/categorization_metrics.py,sha256=sGM7Zyz1DLSUEFbaqBFEf4oNXlWvc465dMCFVI5LhcI,11934
|
37
37
|
nucleus/metrics/cuboid_metrics.py,sha256=ZjlFNa8kknx2mJzEiJ8ZvTlvOSW0BjZzzfJiv3WHm-g,12461
|
38
38
|
nucleus/metrics/cuboid_utils.py,sha256=J_HOd5c9m77naHhiS0xhbUbRwTOicN9RpGrf97ODtAY,11190
|
39
39
|
nucleus/metrics/custom_types.py,sha256=6oWmlajz229crwEm2ImvC5vOhBXjt-HhVqj41D5uSwk,485
|
@@ -43,30 +43,30 @@ nucleus/metrics/filters.py,sha256=SegJ2UdYSSnRJpoiqguVpGrDSGfyCK7OiREziunZw54,11
|
|
43
43
|
nucleus/metrics/metric_utils.py,sha256=1EJf3ezTQAzh4mgECrxWyiUHzUjDqA_5hV9eqZISxRU,971
|
44
44
|
nucleus/metrics/polygon_metrics.py,sha256=mrsGc7714B944NDhLZ6pa0FbyWltuJEkd6ZVccLibdU,29277
|
45
45
|
nucleus/metrics/polygon_utils.py,sha256=z1ERZepMwrmEgUz1tSBfCy9z07uqsoLZFNJ41Bl-sX4,12371
|
46
|
-
nucleus/metrics/segmentation_loader.py,sha256=
|
47
|
-
nucleus/metrics/segmentation_metrics.py,sha256=
|
48
|
-
nucleus/metrics/segmentation_to_poly_metrics.py,sha256=
|
49
|
-
nucleus/metrics/segmentation_utils.py,sha256=
|
50
|
-
nucleus/model.py,sha256=
|
51
|
-
nucleus/model_run.py,sha256=
|
46
|
+
nucleus/metrics/segmentation_loader.py,sha256=GEKbdp71hIiyBwrZm7qkLJ1fFH_FOsDGYTSuZ_9GPYA,790
|
47
|
+
nucleus/metrics/segmentation_metrics.py,sha256=6PFp4ESPx3gUWqxF7HOtDm44_j_Sdp2lTi1P0bkEFas,29522
|
48
|
+
nucleus/metrics/segmentation_to_poly_metrics.py,sha256=1C1In5Kz2CAgVy39GCF3zBBT_OBybHnbL-jlCsQYrZc,29087
|
49
|
+
nucleus/metrics/segmentation_utils.py,sha256=uvypa95DX66sDIHHdE5xUjsuePTFJWePiq2OceolW3I,10075
|
50
|
+
nucleus/model.py,sha256=vbBgq0ZJEWL-1-w_rWMZiYmH5N3rDX_pY2Gvlg_QwmQ,8738
|
51
|
+
nucleus/model_run.py,sha256=Epbr-M2m0qOZY2AR9r-tzX6Au9i9bbk2Vwb5mw27i0Q,9541
|
52
52
|
nucleus/package_not_installed.py,sha256=1ae0aqKAM3KrB0C-5MuPPXoz9tLWJUKtP1UZ-vw9Zik,1117
|
53
53
|
nucleus/payload_constructor.py,sha256=-x4UYu_NHTaWfbrhEx9USUKH2q6wZzelh1gGG_-2nQM,4442
|
54
|
-
nucleus/prediction.py,sha256=
|
54
|
+
nucleus/prediction.py,sha256=D91YVjHvtGFmVuJjUS1LfxeJiJcMORJUtfhQP3FFxaY,25921
|
55
55
|
nucleus/pydantic_base.py,sha256=EQER8_XqG4B-RC4aggUfukJa6f5OZ7ej92AsDWWIWPc,682
|
56
56
|
nucleus/quaternion.py,sha256=TAnwj4arQXoTeofFgZMdZsCyxAMnu23N6to0F1WFNwk,1111
|
57
57
|
nucleus/retry_strategy.py,sha256=daKZqjZYCh87WtXoVUuR9BZu2TTE-CtOFEYZ-d6xVMY,312
|
58
58
|
nucleus/scene.py,sha256=4mQLstDi9GNRP7EGr4nLcHN9ALIldgR6Yw4hrBaULVk,26149
|
59
|
-
nucleus/slice.py,sha256=
|
59
|
+
nucleus/slice.py,sha256=2MR6dbFjEHc7vji45KdFI-4BKWgTWBoCN4TssvKnXgE,18767
|
60
60
|
nucleus/upload_response.py,sha256=wR_pfZCBju1vGiGqbVgk8zhM6GhD3ebYxyGBm8y0GvY,3287
|
61
61
|
nucleus/url_utils.py,sha256=EZ3vy1FYTGvXRVNyq43Wif-ypS8LFoDrYMYJre_DVuQ,790
|
62
62
|
nucleus/utils.py,sha256=fxISxhIPbAeBBRs25YG_kRnRfHKxpisXv-AF9uHZGCA,12653
|
63
63
|
nucleus/validate/__init__.py,sha256=de4m8RfJXSMBD8lF_mR0NAedP4Y5F03jHqNU0-XHSjI,773
|
64
|
-
nucleus/validate/client.py,sha256=
|
64
|
+
nucleus/validate/client.py,sha256=0QcF2u1g513NjvR_CID0M6zM0jqRthSqBY9zla6LBZg,7786
|
65
65
|
nucleus/validate/constants.py,sha256=aHCX56E-yqsbIzeLbstaOhPqZOEXQptn4-zr74NDgzw,663
|
66
66
|
nucleus/validate/data_transfer_objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
67
|
nucleus/validate/data_transfer_objects/eval_function.py,sha256=5scyeLfQhTWdNWrdybUEf5MIJJ0r9xdyfUO-aeYq7cQ,3828
|
68
68
|
nucleus/validate/data_transfer_objects/scenario_test.py,sha256=6gFGzBkl9y0Z5yNI_QtAC_TDPbLWqG0_pPAteDF0vnw,574
|
69
|
-
nucleus/validate/data_transfer_objects/scenario_test_evaluations.py,sha256=
|
69
|
+
nucleus/validate/data_transfer_objects/scenario_test_evaluations.py,sha256=MsQQp8ls5g91MzsyD6-n9KdBqV_rKrjOe3wfCbfSDoA,491
|
70
70
|
nucleus/validate/data_transfer_objects/scenario_test_metric.py,sha256=jXGwPx0Y99ga0RfzwGMCG3_06NkiFsp0yHxUuGFJ2EI,208
|
71
71
|
nucleus/validate/errors.py,sha256=UOI4oPeVzNLEmibWayfMdCMFNZvgsq-VRG42vC1cT_w,110
|
72
72
|
nucleus/validate/eval_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -74,12 +74,12 @@ nucleus/validate/eval_functions/available_eval_functions.py,sha256=Uv3SeXLocbvAv
|
|
74
74
|
nucleus/validate/eval_functions/base_eval_function.py,sha256=bMwK1oTiVmQOJZ07S6p7cr5ZHaHlt6idMZY7yV-9fjw,2207
|
75
75
|
nucleus/validate/eval_functions/config_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
76
76
|
nucleus/validate/eval_functions/config_classes/segmentation.py,sha256=Hk6yDYDwdKgjamfQJEOpyzQLP4zMqcz_I2cLnDBXtz0,13409
|
77
|
-
nucleus/validate/scenario_test.py,sha256=
|
78
|
-
nucleus/validate/scenario_test_evaluation.py,sha256=
|
77
|
+
nucleus/validate/scenario_test.py,sha256=1FQanSrvh72TPiJwSAdNRkb6gfNPyauVo-1s8apiZRo,8597
|
78
|
+
nucleus/validate/scenario_test_evaluation.py,sha256=Q0WzaEE9uUbPVc4EHlCoKjhJcqMNt4QbyiiJx12VOR0,4075
|
79
79
|
nucleus/validate/scenario_test_metric.py,sha256=AhVFOB1ULwBqlZ2X_Au1TXy4iQELljtzR4ZpeLB35So,1209
|
80
|
-
nucleus/validate/utils.py,sha256=
|
81
|
-
scale_nucleus-0.14.
|
82
|
-
scale_nucleus-0.14.
|
83
|
-
scale_nucleus-0.14.
|
84
|
-
scale_nucleus-0.14.
|
85
|
-
scale_nucleus-0.14.
|
80
|
+
nucleus/validate/utils.py,sha256=VjdIJj9Pii4z4L6xbvClAc7ra_J7cX0vWB_J2X6yrGE,185
|
81
|
+
scale_nucleus-0.14.14b0.dist-info/entry_points.txt,sha256=fmqEzh6NZQyg9eFMILnWabKT8OWQTMSCdDzMiVq2zYs,32
|
82
|
+
scale_nucleus-0.14.14b0.dist-info/LICENSE,sha256=jaTGyQSQIZeWMo5iyYqgbAYHR9Bdy7nOzgE-Up3m_-g,1075
|
83
|
+
scale_nucleus-0.14.14b0.dist-info/WHEEL,sha256=DA86_h4QwwzGeRoz62o1svYt5kGEXpoUTuTtwzoTb30,83
|
84
|
+
scale_nucleus-0.14.14b0.dist-info/METADATA,sha256=KYRHazVKZ2BXxUYGGCpTbpKrpIOtJtZ8xT4hmXpkIGE,7735
|
85
|
+
scale_nucleus-0.14.14b0.dist-info/RECORD,,
|
File without changes
|