Bump version to 0.11.2 and update uv version to 0.11.3

- Updated version in pyproject.toml and blender_manifest.toml to 0.11.2.
- Enhanced uv executable path documentation in client.py.
- Added inference_mode parameter to reconstruct_request function in client.py.
- Implemented uv download functionality in install_env.py with improved error handling and checksum verification.
- Modified install_uv function to download and extract uv binary instead of using bundled version.
- Updated job progress handling in operators.py to track progress stages.
- Improved download progress reporting in worker.py and adjusted related tests.
- Refactored tests to accommodate changes in status reporting and model downloading.
- Removed vendor.lock.toml as part of the cleanup process.
This commit is contained in:
2026-08-14 23:43:01 +08:00
parent 102e1bfa9b
commit 0c8d3a8988
22 changed files with 497 additions and 511 deletions

View File

@@ -369,7 +369,7 @@ class WorkerTest(unittest.TestCase):
"_verify_model_complete",
return_value=None,
):
args.model_dir = str(Path(directory) / "model")
args.model_dir = str(Path(directory) / "models" / "DA3")
args.status = str(Path(directory) / "status.json")
self.worker.download_model(args)
@@ -456,7 +456,7 @@ class WorkerTest(unittest.TestCase):
"_verify_model_complete",
return_value=None,
):
args.model_dir = str(Path(directory) / "model")
args.model_dir = str(Path(directory) / "models" / "DA3")
args.status = str(Path(directory) / "status.json")
self.worker.download_model(args)
@@ -937,15 +937,21 @@ class WorkerTest(unittest.TestCase):
self.assertEqual(mesh_calls[0][2:], (35.0, True, 0.2))
def test_reconstruct_copies_frames_for_multi_frame_input(self):
inference_inputs = []
fake_da3 = ModuleType("da3_onnx")
fake_da3.create_session = lambda _model_dir, _device: object()
fake_da3.infer = lambda *_args, **_kwargs: SimpleNamespace(
depth=np.full((2, 2, 2), 2.0, dtype=np.float32),
conf=np.ones((2, 2, 2), dtype=np.float32),
extrinsics=np.repeat(np.eye(4, dtype=np.float32)[None, :3], 2, axis=0),
intrinsics=np.repeat(np.eye(3, dtype=np.float32)[None], 2, axis=0),
processed_images=np.zeros((2, 2, 2, 3), dtype=np.uint8),
)
def fake_infer(_session, images, **_options):
inference_inputs.append(images)
return SimpleNamespace(
depth=np.full((1, 2, 2), 2.0, dtype=np.float32),
conf=np.ones((1, 2, 2), dtype=np.float32),
extrinsics=np.eye(4, dtype=np.float32)[None, :3],
intrinsics=np.eye(3, dtype=np.float32)[None],
processed_images=np.zeros((1, 2, 2, 3), dtype=np.uint8),
)
fake_da3.infer = fake_infer
fake_runtime = ModuleType("onnx_runtime")
fake_runtime.provider_label = lambda _session: "CPU"
@@ -979,6 +985,7 @@ class WorkerTest(unittest.TestCase):
show_cameras=0,
gs_views_interval=1,
remove_background_model_dir="",
inference_mode="per_frame",
)
self.worker.reconstruct(args)
@@ -989,6 +996,10 @@ class WorkerTest(unittest.TestCase):
self.assertTrue(
(result_directory / "frame.0002.jpg").is_file()
)
self.assertEqual(len(inference_inputs), 2)
self.assertTrue(all(len(paths) == 1 for paths in inference_inputs))
with np.load(result_directory / "results.npz") as result:
self.assertEqual(result["depth"].shape, (2, 2, 2))
self.assertTrue(
(result_directory / "results.npz").is_file()
)