x4d-devkit 0.43.0rc2__tar.gz → 0.43.0rc3__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.
- {x4d_devkit-0.43.0rc2/x4d_devkit.egg-info → x4d_devkit-0.43.0rc3}/PKG-INFO +1 -1
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/pyproject.toml +1 -1
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_clean_basemap.py +49 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_sdk_api.py +1 -1
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/clean_basemap.py +4 -4
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3/x4d_devkit.egg-info}/PKG-INFO +1 -1
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/LICENSE +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/README.md +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/setup.cfg +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_annotation_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_annotation_reference.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_assets_client.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_boundary.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_box.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_build_info.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_clean_basemap_client.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_cli_auth.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_client_json_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_client_projects.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_clip_archives.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_contract_validation.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_coordinate_frames.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_current_state.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_current_state_identity_consumers_example.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_dataset_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_dataset_identity.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_detection_eval.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_evaluate.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_export_bundle.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_image_review.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_inference_input.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_inference_schemas.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_inference_service.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_label_schemas.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_lidar_materialization.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_loader.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_matching.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_metrics.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_models.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_platform_pose.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_preannotation_client.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_reconstruction_client.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_release_gate.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_roadmark_preview.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_semantic_scene_authoring.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_semantic_scene_client.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_semantic_scene_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_semantic_scene_native_clip.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_time_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_token.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_tracking_eval.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_training_identity.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_transform.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_transform_chain.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_validation.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_work_session.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/__init__.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/annotation_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/annotation_reference.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/build_info.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/cli.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/__init__.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/_origin.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/annotation_reference.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/assets.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/bags.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/capabilities.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/checkpoints.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/clean_basemap.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/client.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/clip_work_sessions.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/clips.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/dataset_identity.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/image_review.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/label_schemas.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/preannotation.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/projects.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/reconstruction.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/semantic_scene.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/semantic_scene_authoring.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/services.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/client/test_sets.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/consumer_identity.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/coordinate_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/core/__init__.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/core/loader.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/core/models.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/core/token.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/core/transform.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/current_state.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/dataset_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/dataset_identity.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/__init__.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/api.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/box.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/detection.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/matching.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/metrics.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/eval/tracking.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/export_bundle.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/image_review.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/inference/__init__.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/inference/input.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/inference/models.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/inference/schemas.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/inference/service.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/inference/tasks.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/json_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/label_schema.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/lidar_materialization.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/materialize.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/roadmark_preview.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/semantic_scene_authoring.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/semantic_scene_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/time_contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/training_identity.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/validation/__init__.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/validation/contract.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/validation/platform_pose.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/validation/report.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/validation/validator.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit/work_session.py +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit.egg-info/SOURCES.txt +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit.egg-info/dependency_links.txt +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit.egg-info/entry_points.txt +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit.egg-info/requires.txt +0 -0
- {x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/x4d_devkit.egg-info/top_level.txt +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "x4d-devkit"
|
|
7
|
-
version = "0.43.
|
|
7
|
+
version = "0.43.0rc3"
|
|
8
8
|
description = "Official X-4D external SDK and CLI for datasets, platform APIs, training bridges, and automation"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -10,6 +10,7 @@ from x4d_devkit.clean_basemap import (
|
|
|
10
10
|
CLEAN_BASEMAP_CONTRACT_VERSION,
|
|
11
11
|
CLEAN_BASEMAP_INPUT_FIELDS,
|
|
12
12
|
DECISION_CODES,
|
|
13
|
+
KEEP_CODES,
|
|
13
14
|
KEEP_GROUND,
|
|
14
15
|
MAPPING_DTYPE,
|
|
15
16
|
REMOVE_MODEL_DYNAMIC,
|
|
@@ -308,6 +309,54 @@ def test_previous_contract_and_decision_bytes_are_rejected():
|
|
|
308
309
|
)
|
|
309
310
|
|
|
310
311
|
|
|
312
|
+
@pytest.mark.parametrize("family", ["decisions", "mapping"])
|
|
313
|
+
def test_every_byte_in_the_last_record_obeys_its_exact_decision_domain(family):
|
|
314
|
+
count = 4096
|
|
315
|
+
anchor = "sha256:" + "a" * 64
|
|
316
|
+
if family == "decisions":
|
|
317
|
+
carrier = encode_clean_basemap_decisions(
|
|
318
|
+
asset_sha256=anchor, decisions=np.full(count, KEEP_GROUND)
|
|
319
|
+
)
|
|
320
|
+
domain = DECISION_CODES
|
|
321
|
+
decode = decode_clean_basemap_decisions
|
|
322
|
+
arguments = dict(asset_sha256=anchor, point_count=count)
|
|
323
|
+
byte_offset = -1
|
|
324
|
+
else:
|
|
325
|
+
carrier = encode_clean_basemap_mapping(
|
|
326
|
+
geometry_raw_sha256=anchor,
|
|
327
|
+
sweep_indices=np.zeros(count, dtype=np.uint32),
|
|
328
|
+
raw_point_ordinals=np.arange(count),
|
|
329
|
+
timestamps_ns=np.full(count, 100),
|
|
330
|
+
owner_source_indices=np.zeros(count, dtype=np.uint32),
|
|
331
|
+
owner_point_ordinals=np.arange(count),
|
|
332
|
+
decisions=np.full(count, KEEP_GROUND),
|
|
333
|
+
)
|
|
334
|
+
domain = KEEP_CODES
|
|
335
|
+
decode = decode_clean_basemap_mapping
|
|
336
|
+
arguments = dict(geometry_raw_sha256=anchor, point_count=count)
|
|
337
|
+
byte_offset = -MAPPING_DTYPE.itemsize + MAPPING_DTYPE.fields["decision"][1]
|
|
338
|
+
raw = bytearray(zstandard.ZstdDecompressor().decompress(carrier.payload))
|
|
339
|
+
for code in range(256):
|
|
340
|
+
raw[byte_offset] = code
|
|
341
|
+
payload = zstandard.ZstdCompressor().compress(raw)
|
|
342
|
+
descriptor = carrier.descriptor(family)
|
|
343
|
+
descriptor.update(
|
|
344
|
+
path=f"generated/reconstruction/clean_basemap/{family}/{sha256_bytes(payload)[7:]}.zst",
|
|
345
|
+
sha256=sha256_bytes(payload),
|
|
346
|
+
raw_sha256=sha256_bytes(bytes(raw)),
|
|
347
|
+
size_bytes=len(payload),
|
|
348
|
+
)
|
|
349
|
+
if code in domain:
|
|
350
|
+
values = decode(payload, descriptor=descriptor, **arguments)
|
|
351
|
+
decisions = values if family == "decisions" else values["decision"]
|
|
352
|
+
assert decisions[-1] == code
|
|
353
|
+
assert np.all(decisions[:-1] == KEEP_GROUND)
|
|
354
|
+
else:
|
|
355
|
+
message = "decision" if family == "decisions" else "mapping records"
|
|
356
|
+
with pytest.raises(ValueError, match=message):
|
|
357
|
+
decode(payload, descriptor=descriptor, **arguments)
|
|
358
|
+
|
|
359
|
+
|
|
311
360
|
def test_pose_coverage_rejections_are_accounted_and_cannot_be_mapped():
|
|
312
361
|
manifest, assets, _ = fixture()
|
|
313
362
|
sweep = manifest["sweep_sources"][0]
|
|
@@ -11,7 +11,7 @@ from x4d_devkit.eval.matching import MetricData
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
def test_package_version_is_current_release():
|
|
14
|
-
assert x4d_devkit.__version__ == "0.43.
|
|
14
|
+
assert x4d_devkit.__version__ == "0.43.0rc3"
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
def test_loader_exposes_and_enforces_only_current_schema(tmp_path):
|
|
@@ -530,7 +530,7 @@ def encode_clean_basemap_mapping(
|
|
|
530
530
|
_integer(count, 1, SEMANTIC_SCENE_MAX_SCENE_POINTS_PER_CHUNK, "point_count")
|
|
531
531
|
if (
|
|
532
532
|
any(len(vector) != count for vector in vectors.values())
|
|
533
|
-
or
|
|
533
|
+
or np.any(~np.isin(vectors["decision"], tuple(KEEP_CODES)))
|
|
534
534
|
):
|
|
535
535
|
raise ValueError(
|
|
536
536
|
"mapping must have one retained decision and address per geometry point"
|
|
@@ -560,7 +560,7 @@ def decode_clean_basemap_mapping(
|
|
|
560
560
|
)
|
|
561
561
|
if (
|
|
562
562
|
np.any(records["reserved"] != 0)
|
|
563
|
-
or
|
|
563
|
+
or np.any(~np.isin(records["decision"], tuple(KEEP_CODES)))
|
|
564
564
|
or np.any(records["timestamp_ns"] > _MAX_I64)
|
|
565
565
|
):
|
|
566
566
|
raise ValueError(
|
|
@@ -574,7 +574,7 @@ def encode_clean_basemap_decisions(
|
|
|
574
574
|
) -> CleanBasemapPayload:
|
|
575
575
|
values = _vector(decisions, 255, "decisions")
|
|
576
576
|
_integer(len(values), 1, 1 << 24, "source_point_count")
|
|
577
|
-
if
|
|
577
|
+
if np.any(~np.isin(values, tuple(DECISION_CODES))):
|
|
578
578
|
raise ValueError("unknown clean basemap decision code")
|
|
579
579
|
return _encode(_DECISION_MAGIC, asset_sha256, values.astype(np.uint8))
|
|
580
580
|
|
|
@@ -591,7 +591,7 @@ def decode_clean_basemap_decisions(
|
|
|
591
591
|
values = _decode(
|
|
592
592
|
payload, descriptor, _DECISION_MAGIC, asset_sha256, point_count, np.dtype("u1")
|
|
593
593
|
)
|
|
594
|
-
if
|
|
594
|
+
if np.any(~np.isin(values, tuple(DECISION_CODES))):
|
|
595
595
|
raise ValueError("unknown clean basemap decision code")
|
|
596
596
|
return values
|
|
597
597
|
|
|
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
|
{x4d_devkit-0.43.0rc2 → x4d_devkit-0.43.0rc3}/tests/test_current_state_identity_consumers_example.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
|
|
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
|