diff --git a/pyproject.toml b/pyproject.toml index 585d3a2..046f7fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -72,7 +72,7 @@ serving-web = [ "uvicorn==0.44.0", ] server = [ - "av==17.0.0", + "av==16.0.0", "chex==0.1.90", "dash==4.1.0", "fastapi==0.135.3", @@ -87,7 +87,7 @@ groot = [ "albumentations==2.0.8", "diffusers==0.33.1", "dm-tree==0.1.8", - "huggingface-hub==0.34.0", + "huggingface-hub==0.36.2", "opencv-python-headless==4.11.0.86", "pillow==12.2.0", "scipy==1.17.1", @@ -96,6 +96,7 @@ groot = [ "transformers==4.57.0", ] dev = [ + "httpx==0.28.1", "modal==1.5.2", "pre-commit==4.6.0", "pytest==9.0.3", @@ -104,6 +105,7 @@ dev = [ [dependency-groups] dev = [ + "httpx==0.28.1", "modal==1.5.2", "pre-commit==4.6.0", "pytest==9.0.3", @@ -130,7 +132,7 @@ known-first-party = ["armory", "armory_client", "evaluation", "openpi_adapter", [tool.uv.sources] armory-client = { path = "armory-client", editable = true } gr00t = { path = "third_party/Isaac-GR00T", editable = true } -lerobot = { git = "https://github.com/huggingface/lerobot", rev = "0cf864870cf29f4738d3ade893e6fd13fbd7cdb5" } +lerobot = { git = "https://github.com/huggingface/lerobot", rev = "33cad37054c2b594ceba57463e8f11ee374fa93c" } libero = { path = "third_party/libero", editable = true } openpi = { path = "third_party/openpi", editable = true } openpi-client = { path = "third_party/openpi/packages/openpi-client", editable = true } diff --git a/src/armory/backends/mock.py b/src/armory/backends/mock.py index f486fd0..7e35582 100644 --- a/src/armory/backends/mock.py +++ b/src/armory/backends/mock.py @@ -10,6 +10,7 @@ import numpy as np from armory.backends.types import PolicyResult, warmup_request +from armory.serving.rtc import InferType from armory.serving.schemas import SlotData with Path(__file__).with_name("inference_profiles.json").open() as f: @@ -36,8 +37,8 @@ def make_infer_request(self) -> SlotData: # Only ever fed to infer_batch, which ignores every field but the count. return warmup_request({}) - def warmup(self, max_batch_size: int) -> None: - del max_batch_size + def warmup(self, max_batch_size: int, infer_type: InferType) -> None: + del max_batch_size, infer_type def infer_batch(self, requests: Sequence[SlotData]) -> list[PolicyResult]: inference_latency = self._inference_latency[len(requests)] diff --git a/src/armory/backends/types.py b/src/armory/backends/types.py index 80cec1e..4d7083b 100644 --- a/src/armory/backends/types.py +++ b/src/armory/backends/types.py @@ -84,7 +84,7 @@ class PolicyResult(TypedDict): class ServingPolicy(Protocol): """Synchronous batched-policy interface consumed by ``GpuWorker``.""" - def warmup(self, max_batch_size: int) -> None: ... + def warmup(self, max_batch_size: int, infer_type: InferType) -> None: ... def make_infer_request(self) -> SlotData: ... diff --git a/src/armory/serving/config.py b/src/armory/serving/config.py index 193d28f..ea94f04 100644 --- a/src/armory/serving/config.py +++ b/src/armory/serving/config.py @@ -3,10 +3,12 @@ from pydantic import BaseModel from armory.serving.protocol import SchedulerConfig +from armory.serving.rtc import InferType class EngineConfig(BaseModel): num_steps: int = 10 + infer_type: InferType = InferType.SYNC class ServerConfig(BaseModel): diff --git a/src/armory/serving/engine.py b/src/armory/serving/engine.py index 534e885..bb6b22e 100644 --- a/src/armory/serving/engine.py +++ b/src/armory/serving/engine.py @@ -2,6 +2,7 @@ import json import logging +import math import multiprocessing as mp import pathlib import signal @@ -79,7 +80,7 @@ def run(self) -> None: logger.info("GPU worker starting") policy = self.policy_factory() - policy.warmup(self.config.max_batch_size) + policy.warmup(self.config.max_batch_size, self.config.engine.infer_type) ctx = zmq.Context() @@ -290,17 +291,19 @@ def _process_server_messages(self, req_sock: zmq.Socket) -> None: def _make_params(self, slot_data: SlotData, batch_size: int) -> RTCParams | None: if ( - slot_data.infer_type == InferType.INFERENCE_TIME_RTC + slot_data.infer_type in (InferType.INFERENCE_TIME_RTC, InferType.TRAIN_TIME_RTC) and slot_data.robot_id in self._last_served_action_index ): + prev_action = self._prev_actions[slot_data.robot_id] s = slot_data.action_index_start - self._last_served_action_index[slot_data.robot_id] - d = ( + if s >= len(prev_action): + return None + d = math.ceil( self._latency_tracker.total_latency(slot_data.robot_id, batch_size) * slot_data.control_hz ) - return RTCParams( - prev_action=self._prev_actions[slot_data.robot_id], s_param=s, d_param=d - ) + d = min(d, len(prev_action) - s) + return RTCParams(prev_action=prev_action, s_param=s, d_param=d) return None def _update_state( diff --git a/src/armory/serving/rtc.py b/src/armory/serving/rtc.py index e6fc178..c079171 100644 --- a/src/armory/serving/rtc.py +++ b/src/armory/serving/rtc.py @@ -1,9 +1,3 @@ -"""Dormant server-side RTC protocol types. - -Clients no longer select an inference mode. These stay server-local so the -engine and policy RTC implementation can be retained without a wire feature. -""" - from dataclasses import dataclass from enum import Enum @@ -14,7 +8,6 @@ class InferType(Enum): SYNC = "sync" INFERENCE_TIME_RTC = "inference_time_rtc" TRAIN_TIME_RTC = "train_time_rtc" - VLASH = "vlash" @dataclass diff --git a/src/armory/serving/session.py b/src/armory/serving/session.py index 5ea0b75..282cd7d 100644 --- a/src/armory/serving/session.py +++ b/src/armory/serving/session.py @@ -15,7 +15,6 @@ from fastapi import WebSocket from starlette.websockets import WebSocketDisconnect -from armory.serving.rtc import InferType from armory.serving.schemas import AckNotification, RobotID, SlotData, WarmupSeed from armory.serving.server_runtime import ServerState from armory_client import msgpack_numpy @@ -176,7 +175,7 @@ async def _receive_loop( deadline=req.deadline, min_execution_horizon=req.min_execution_horizon, max_execution_horizon=req.max_execution_horizon, - infer_type=InferType.SYNC, + infer_type=state.config.engine.infer_type, params=None, noise=req.noise, control_hz=state.robot_metadata[robot_id].control_hz, diff --git a/src/backends/gr00t_adapter/policy_adapter.py b/src/backends/gr00t_adapter/policy_adapter.py index 43d8f0a..4f8b9f0 100644 --- a/src/backends/gr00t_adapter/policy_adapter.py +++ b/src/backends/gr00t_adapter/policy_adapter.py @@ -27,6 +27,7 @@ import numpy as np from armory.backends.types import PolicyResult, warmup_request +from armory.serving.rtc import InferType from armory.serving.schemas import SlotData logger = logging.getLogger(__name__) @@ -146,7 +147,8 @@ def infer_batch(self, requests: Sequence[SlotData]) -> list[PolicyResult]: def make_infer_request(self) -> SlotData: return warmup_request(_make_example_obs()) - def warmup(self, max_batch_size: int) -> None: + def warmup(self, max_batch_size: int, infer_type: InferType) -> None: + del infer_type request = self.make_infer_request() for batch_size in range(1, max_batch_size + 1): logger.info("Warming up GR00T batch_size=%d", batch_size) diff --git a/src/backends/openpi_adapter/policy_adapter.py b/src/backends/openpi_adapter/policy_adapter.py index 0eb7551..98026d4 100644 --- a/src/backends/openpi_adapter/policy_adapter.py +++ b/src/backends/openpi_adapter/policy_adapter.py @@ -140,7 +140,7 @@ def create_batch_obs(self, observations: list[dict]): [obs["observation/wrist_image"] for obs in observations] ), "prompt": np.stack([obs["prompt"] for obs in observations]), - } + }, None # Apply transform to each observation independently (tokenization, image parsing etc.) transformed = [ @@ -166,10 +166,11 @@ def create_batch_obs(self, observations: list[dict]): batched, ) - return _model.Observation.from_dict(batched) + prev_actions = batched.pop("actions", None) + return _model.Observation.from_dict(batched), prev_actions def _infer_batch_group( - self, requests: Sequence[SlotData], *, use_rtc: bool + self, requests: Sequence[SlotData], *, infer_type: InferType ) -> list[PolicyResult]: """Run a homogeneous sub-batch (all RTC or all non-RTC) in a single GPU call.""" batch_size = len(requests) @@ -190,7 +191,13 @@ def _infer_batch_group( if req.noise is not None: noise_to_use = noise_to_use.at[i].set(req.noise) - observation = self.create_batch_obs([_rename_keys(req.observation) for req in requests]) + obs_dicts = [_rename_keys(req.observation) for req in requests] + if infer_type != InferType.SYNC: + obs_dicts = [ + {**obs, "actions": np.array(req.params.prev_action)} + for obs, req in zip(obs_dicts, requests, strict=True) + ] + observation, prev_actions = self.create_batch_obs(obs_dicts) if self._is_triton_optimized: sample_kwargs = dict(self._sample_kwargs) @@ -206,7 +213,7 @@ def _infer_batch_group( result["noise"] = ( noise_np[i] if (noise_np is not None and noise_np.ndim == 3) else noise_np ) - result["rtc_prev_actions"] = raw_actions[i] + result["rtc_prev_actions"] = result["actions"] results.append(result) return results @@ -214,9 +221,8 @@ def _infer_batch_group( if noise_to_use is not None: sample_kwargs["noise"] = noise_to_use - if use_rtc: + if infer_type != InferType.SYNC: rtc_params = [req.params for req in requests] - prev_actions = np.stack([np.asarray(p.prev_action) for p in rtc_params], axis=0) s_values = np.asarray([p.s_param for p in rtc_params], dtype=np.int32) d_values = np.asarray([p.d_param for p in rtc_params], dtype=np.int32) eh_values = np.asarray([req.max_execution_horizon for req in requests], dtype=np.int32) @@ -227,8 +233,11 @@ def _infer_batch_group( d_values.tolist(), eh_values.tolist(), ) - sample_kwargs["use_rtc"] = True - sample_kwargs["prev_action"] = jnp.asarray(prev_actions) + if infer_type == InferType.TRAIN_TIME_RTC: + sample_kwargs["use_train_rtc"] = True + else: + sample_kwargs["use_rtc"] = True + sample_kwargs["prev_action"] = prev_actions sample_kwargs["s"] = jnp.asarray(s_values) sample_kwargs["d"] = jnp.asarray(d_values) sample_kwargs["execution_horizon"] = jnp.asarray(eh_values) @@ -251,7 +260,7 @@ def _infer_batch_group( result["noise"] = ( noise_np[i] if (noise_np is not None and noise_np.ndim == 3) else noise_np ) - result["rtc_prev_actions"] = raw_actions[i] + result["rtc_prev_actions"] = result["actions"] results.append(result) return results @@ -266,25 +275,23 @@ def infer_batch(self, requests: Sequence[SlotData]) -> list[PolicyResult]: return [] results: list[PolicyResult | None] = [None] * len(requests) - grouped: dict[bool, list[int]] = {False: [], True: []} + grouped: dict[InferType, list[int]] = {} for i, req in enumerate(requests): can_rtc = ( not self._is_pytorch_model and not self._is_triton_optimized - and req.infer_type == InferType.INFERENCE_TIME_RTC + and req.infer_type in (InferType.INFERENCE_TIME_RTC, InferType.TRAIN_TIME_RTC) and isinstance(req.params, RTCParams) ) logger.debug( f"can_rtc: {can_rtc}, pytorch_model: {self._is_pytorch_model}, triton_optimized: {self._is_triton_optimized}, infer_type: {req.infer_type}, params: {req.params}" ) - grouped[can_rtc].append(i) + grouped.setdefault(req.infer_type if can_rtc else InferType.SYNC, []).append(i) - for use_rtc, indices in grouped.items(): - if not indices: - continue + for infer_type, indices in grouped.items(): sub_requests = [requests[i] for i in indices] - sub_results = self._infer_batch_group(sub_requests, use_rtc=use_rtc) + sub_results = self._infer_batch_group(sub_requests, infer_type=infer_type) for i, result in zip(indices, sub_results, strict=True): results[i] = result @@ -294,30 +301,28 @@ def infer_batch(self, requests: Sequence[SlotData]) -> list[PolicyResult]: def make_infer_request(self) -> SlotData: return warmup_request(self._make_example_fn()) - def warmup(self, max_batch_size: int) -> None: - """Warm up both SYNC and RTC paths to trigger JAX JIT compilation.""" + def warmup(self, max_batch_size: int, infer_type: InferType) -> None: example_obs = self._make_example_fn() - warmup_requests = [warmup_request(example_obs)] - - # Add RTC warmup if the model supports it - if not self._is_pytorch_model and not self._is_triton_optimized: - example_actions = ( - np.asarray(self._model.make_example_actions()) - if hasattr(self._model, "make_example_actions") - else np.zeros((8, 7), dtype=np.float32) - ) - warmup_requests.append( - warmup_request( - example_obs, - infer_type=InferType.INFERENCE_TIME_RTC, - params=RTCParams(prev_action=example_actions, s_param=5, d_param=3), - ) + for batch_size in range(1, max_batch_size + 1): + logger.info("Warming up %s batch_size=%d", InferType.SYNC, batch_size) + result = self.infer_batch([warmup_request(example_obs)] * batch_size) + + if ( + infer_type != InferType.SYNC + and not self._is_pytorch_model + and not self._is_triton_optimized + ): + req = warmup_request( + example_obs, + infer_type=infer_type, + params=RTCParams( + prev_action=np.zeros_like(result[0]["actions"]), s_param=5, d_param=3 + ), ) - - for req in warmup_requests: for batch_size in range(1, max_batch_size + 1): - logger.info("Warming up %s batch_size=%d", req.infer_type, batch_size) + logger.info("Warming up %s batch_size=%d", infer_type, batch_size) result = self.infer_batch([req] * batch_size) + logger.info("Warmup complete; output shape: %s", result[0]["actions"].shape) @property diff --git a/tests/backends/openpi_adapter_test.py b/tests/backends/openpi_adapter_test.py index 1b7e1db..ba9c46e 100644 --- a/tests/backends/openpi_adapter_test.py +++ b/tests/backends/openpi_adapter_test.py @@ -96,28 +96,34 @@ def test_infer_batch_splits_rtc_requests_and_restores_original_order( # Existing behavior: RTC mode without RTCParams follows the non-RTC path. _request("rtc-without-params-2", InferType.INFERENCE_TIME_RTC), _request("rtc-3", InferType.INFERENCE_TIME_RTC, rtc_params), + _request("train-rtc-4", InferType.TRAIN_TIME_RTC, rtc_params), ] - calls: list[tuple[bool, list[str]]] = [] + calls: list[tuple[InferType, list[str]]] = [] def fake_infer_batch_group( grouped_requests: list[SlotData], *, - use_rtc: bool, + infer_type: InferType, ) -> list[dict]: - calls.append((use_rtc, [request.robot_id for request in grouped_requests])) - return [{"robot_id": request.robot_id, "used_rtc": use_rtc} for request in grouped_requests] + calls.append((infer_type, [request.robot_id for request in grouped_requests])) + return [ + {"robot_id": request.robot_id, "infer_type": infer_type} + for request in grouped_requests + ] monkeypatch.setattr(adapter, "_infer_batch_group", fake_infer_batch_group) results = adapter.infer_batch(requests) - assert calls == [ - (False, ["sync-1", "rtc-without-params-2"]), - (True, ["rtc-0", "rtc-3"]), + assert sorted(calls, key=lambda c: c[0].value) == [ + (InferType.INFERENCE_TIME_RTC, ["rtc-0", "rtc-3"]), + (InferType.SYNC, ["sync-1", "rtc-without-params-2"]), + (InferType.TRAIN_TIME_RTC, ["train-rtc-4"]), ] assert results == [ - {"robot_id": "rtc-0", "used_rtc": True}, - {"robot_id": "sync-1", "used_rtc": False}, - {"robot_id": "rtc-without-params-2", "used_rtc": False}, - {"robot_id": "rtc-3", "used_rtc": True}, + {"robot_id": "rtc-0", "infer_type": InferType.INFERENCE_TIME_RTC}, + {"robot_id": "sync-1", "infer_type": InferType.SYNC}, + {"robot_id": "rtc-without-params-2", "infer_type": InferType.SYNC}, + {"robot_id": "rtc-3", "infer_type": InferType.INFERENCE_TIME_RTC}, + {"robot_id": "train-rtc-4", "infer_type": InferType.TRAIN_TIME_RTC}, ] diff --git a/tests/serving/server_smoke_test.py b/tests/serving/server_smoke_test.py index f111423..35a4783 100644 --- a/tests/serving/server_smoke_test.py +++ b/tests/serving/server_smoke_test.py @@ -52,8 +52,8 @@ def get_next_batches( class _SmokePolicy: """Small CPU policy exercising the real engine process and shared slots.""" - def warmup(self, max_batch_size: int) -> None: - del max_batch_size + def warmup(self, max_batch_size: int, infer_type: object) -> None: + del max_batch_size, infer_type def make_infer_request(self) -> object: return object() diff --git a/third_party/openpi b/third_party/openpi index fc5860f..b66bd6f 160000 --- a/third_party/openpi +++ b/third_party/openpi @@ -1 +1 @@ -Subproject commit fc5860f709d3c6acc98240600488d2558e09101a +Subproject commit b66bd6f2bea9b5fd486ba6e411cc8c51d24fc0f8 diff --git a/uv.lock b/uv.lock index 35b6919..fbe9bd4 100644 --- a/uv.lock +++ b/uv.lock @@ -127,12 +127,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] -[[package]] -name = "antlr4-python3-runtime" -version = "4.9.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3e/38/7859ff46355f76f8d19459005ca000b6e7012f2f1ca597746cbcd1fbfe5e/antlr4-python3-runtime-4.9.3.tar.gz", hash = "sha256:f224469b4168294902bb1efa80a8bf7855f24c99aef99cbefc1bcd3cce77881b", size = 117034, upload-time = "2021-11-06T17:52:23.524Z" } - [[package]] name = "anyio" version = "4.13.0" @@ -162,6 +156,7 @@ dependencies = [ [package.optional-dependencies] dev = [ + { name = "httpx" }, { name = "modal" }, { name = "pre-commit" }, { name = "pytest" }, @@ -226,6 +221,7 @@ serving-web = [ [package.dev-dependencies] dev = [ + { name = "httpx" }, { name = "modal" }, { name = "pre-commit" }, { name = "pytest" }, @@ -236,7 +232,7 @@ dev = [ requires-dist = [ { name = "albumentations", marker = "extra == 'groot'", specifier = "==2.0.8" }, { name = "armory-client", editable = "armory-client" }, - { name = "av", marker = "extra == 'server'", specifier = "==17.0.0" }, + { name = "av", marker = "extra == 'server'", specifier = "==16.0.0" }, { name = "bddl", marker = "extra == 'libero'", specifier = "==1.0.1" }, { name = "chex", marker = "extra == 'server'", specifier = "==0.1.90" }, { name = "cloudpickle", marker = "extra == 'libero'", specifier = "==2.1.0" }, @@ -251,7 +247,8 @@ requires-dist = [ { name = "gr00t", marker = "extra == 'server'", editable = "third_party/Isaac-GR00T" }, { name = "gym", marker = "extra == 'libero'", specifier = "==0.26.2" }, { name = "gymnasium", marker = "extra == 'libero'", specifier = "==0.29.1" }, - { name = "huggingface-hub", marker = "extra == 'groot'", specifier = "==0.34.0" }, + { name = "httpx", marker = "extra == 'dev'", specifier = "==0.28.1" }, + { name = "huggingface-hub", marker = "extra == 'groot'", specifier = "==0.36.2" }, { name = "imageio", marker = "extra == 'evaluation'", specifier = "==2.37.3" }, { name = "jax", marker = "sys_platform == 'darwin' and extra == 'server'", specifier = "==0.5.3" }, { name = "jax", extras = ["cuda12"], marker = "sys_platform == 'linux' and extra == 'server'", specifier = "==0.5.3" }, @@ -296,6 +293,7 @@ provides-extras = ["evaluation", "libero", "serving-web", "server", "groot", "de [package.metadata.requires-dev] dev = [ + { name = "httpx", specifier = "==0.28.1" }, { name = "modal", specifier = "==1.5.2" }, { name = "pre-commit", specifier = "==4.6.0" }, { name = "pytest", specifier = "==9.0.3" }, @@ -344,18 +342,17 @@ wheels = [ [[package]] name = "av" -version = "17.0.0" +version = "16.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/eb/abca886df3a091bc406feb5ff71b4c4f426beaae6b71b9697264ce8c7211/av-17.0.0.tar.gz", hash = "sha256:c53685df73775a8763c375c7b2d62a6cb149d992a26a4b098204da42ade8c3df", size = 4410769, upload-time = "2026-03-14T14:38:45.868Z" } +sdist = { url = "https://files.pythonhosted.org/packages/85/49/717a1e4c6de4fa32d8218c42af65131d19ab1db12e9811f20ef43256ff20/av-16.0.0.tar.gz", hash = "sha256:c275830f9ad575a2da941177b81d11b442271d205ddb5cd27fa82930aa69b38e", size = 3903612, upload-time = "2025-10-13T11:22:01.247Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/fb/55e3b5b5d1fc61466292f26fbcbabafa2642f378dc48875f8f554591e1a4/av-17.0.0-cp311-abi3-macosx_11_0_x86_64.whl", hash = "sha256:ed4013fac77c309a4a68141dcf6148f1821bb1073a36d4289379762a6372f711", size = 23238424, upload-time = "2026-03-14T14:38:05.856Z" }, - { url = "https://files.pythonhosted.org/packages/52/03/9ace1acc08bc9ae38c14bf3a4b1360e995e4d999d1d33c2cbd7c9e77582a/av-17.0.0-cp311-abi3-macosx_14_0_arm64.whl", hash = "sha256:e44b6c83e9f3be9f79ee87d0b77a27cea9a9cd67bd630362c86b7e56a748dfbb", size = 18709043, upload-time = "2026-03-14T14:38:08.288Z" }, - { url = "https://files.pythonhosted.org/packages/00/c0/637721f3cd5bb8bd16105a1a08efd781fc12f449931bdb3a4d0cfd63fa55/av-17.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:b440da6ac47da0629d509316f24bcd858f33158dbdd0f1b7293d71e99beb26de", size = 34018780, upload-time = "2026-03-14T14:38:10.45Z" }, - { url = "https://files.pythonhosted.org/packages/d2/59/d19bc3257dd985d55337d7f0414c019414b97e16cd3690ebf9941a847543/av-17.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1060cba85f97f4a337311169d92c0b5e143452cfa5ca0e65fa499d7955e8592e", size = 36358757, upload-time = "2026-03-14T14:38:13.092Z" }, - { url = "https://files.pythonhosted.org/packages/52/6c/a1f4f2677bae6f2ade7a8a18e90ebdcf70690c9b1c4e40e118aa30fa313f/av-17.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:deda202e6021cfc7ba3e816897760ec5431309d59a4da1f75df3c0e9413d71e7", size = 35195281, upload-time = "2026-03-14T14:38:15.789Z" }, - { url = "https://files.pythonhosted.org/packages/90/ea/52b0fc6f69432c7bf3f5fbe6f707113650aa40a1a05b9096ffc2bba4f77d/av-17.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ffaf266a1a9c2148072de0a4b5ae98061465178d2cfaa69ee089761149342974", size = 37444817, upload-time = "2026-03-14T14:38:18.563Z" }, - { url = "https://files.pythonhosted.org/packages/34/ad/d2172966282cb8f146c13b6be7416efefde74186460c5e1708ddfc13dba6/av-17.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:45a35a40b2875bf2f98de7c952d74d960f92f319734e6d28e03b4c62a49e6f49", size = 28888553, upload-time = "2026-03-14T14:38:21.223Z" }, - { url = "https://files.pythonhosted.org/packages/b0/bb/c5a4c4172c514d631fb506e6366b503576b8c7f29809cf42aca73e28ff01/av-17.0.0-cp311-abi3-win_arm64.whl", hash = "sha256:3d32e9b5c5bbcb872a0b6917b352a1db8a42142237826c9b49a36d5dbd9e9c26", size = 21916910, upload-time = "2026-03-14T14:38:23.706Z" }, + { url = "https://files.pythonhosted.org/packages/ca/c6/b6a6676cc73262d54b3f41bec3818a4dd09aae48187b06ad75017e69e603/av-16.0.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:8fa6539642777631dfcedf1df3bec08fbb61850df3f8abdbd5fda2a19c3a5fb9", size = 27191836, upload-time = "2025-10-13T11:20:10.037Z" }, + { url = "https://files.pythonhosted.org/packages/cf/53/947576fa9d21aef7a3829645854c2e13cc16a6edc21f79a2b516765f1749/av-16.0.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:ecf207dfccae8da08dfbe286a6f0265cfcf11b4547a41d56795f1c071cf2da50", size = 21760095, upload-time = "2025-10-13T11:20:12.509Z" }, + { url = "https://files.pythonhosted.org/packages/29/01/69c6b443a44da6561266e737e4c5a0822064c69d7cc4b196c171dcc1bc9c/av-16.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:6954d8d9fd21f9a9f38f5376cf622223b8cd9c883520e2fdf7cde95a58bcc652", size = 38691143, upload-time = "2025-10-13T11:20:14.909Z" }, + { url = "https://files.pythonhosted.org/packages/62/c1/ab6d9022a081c712558292047ebe4cecb7769266cb3c1d8f8d88d5137970/av-16.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a2683a755eb6a41a7847aea316c03f652b9b68560302f375b692d716c9c2860e", size = 40216067, upload-time = "2025-10-13T11:20:17.814Z" }, + { url = "https://files.pythonhosted.org/packages/71/77/34b9be3eb73633f27b22b6988b2b55d74510ff0555c221b969d28d4382a7/av-16.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:51e450b143b36b2935a5dc315d6c05c8cf9e16efe010dcb31e79d70b562c7735", size = 40093483, upload-time = "2025-10-13T11:20:20.572Z" }, + { url = "https://files.pythonhosted.org/packages/44/5f/dc958ddde4f506a0bec3f70016dbd23cee4b97dde525d5f35729e0167643/av-16.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:78ba78f37ba87c8d3748679a1eb76fe3d052696440f6f9b1a587b0a9dff1f9c0", size = 41279429, upload-time = "2025-10-13T11:20:23.547Z" }, + { url = "https://files.pythonhosted.org/packages/b9/25/1616b8f1eda26caec9c9f0c88a24234c09960abf27e097d7d10b88b1d2bb/av-16.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ec85a19663ddc165ff86f2405db2be2f1b77f830ee25e9a4280f11b1be8753ea", size = 32297422, upload-time = "2025-10-13T11:20:26.305Z" }, ] [[package]] @@ -379,19 +376,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/64/69/f6db6e4cb2fe2f887dead40b76caa91af4844cb647dd2c7223bb010aa416/beartype-0.19.0-py3-none-any.whl", hash = "sha256:33b2694eda0daf052eb2aff623ed9a8a586703bbf0a90bbc475a83bbf427f699", size = 1039760, upload-time = "2024-09-26T07:06:13.546Z" }, ] -[[package]] -name = "beautifulsoup4" -version = "4.14.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "soupsieve" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" }, -] - [[package]] name = "blinker" version = "1.9.0" @@ -658,13 +642,12 @@ wheels = [ [[package]] name = "datasets" -version = "4.8.4" +version = "3.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dill" }, { name = "filelock" }, { name = "fsspec", extra = ["http"] }, - { name = "httpx" }, { name = "huggingface-hub" }, { name = "multiprocess" }, { name = "numpy" }, @@ -676,9 +659,9 @@ dependencies = [ { name = "tqdm" }, { name = "xxhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/22/22/73e46ac7a8c25e7ef0b3bd6f10da3465021d90219a32eb0b4d2afea4c56e/datasets-4.8.4.tar.gz", hash = "sha256:a1429ed853275ce7943a01c6d2e25475b4501eb758934362106a280470df3a52", size = 604382, upload-time = "2026-03-23T14:21:17.987Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/89/d3d6fef58a488f8569c82fd293ab7cbd4250244d67f425dcae64c63800ea/datasets-3.6.0.tar.gz", hash = "sha256:1b2bf43b19776e2787e181cfd329cb0ca1a358ea014780c3581e0f276375e041", size = 569336, upload-time = "2025-05-07T15:15:02.659Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/e5/247d094108e42ac26363ab8dc57f168840cf7c05774b40ffeb0d78868fcc/datasets-4.8.4-py3-none-any.whl", hash = "sha256:cdc8bee4698e549d78bf1fed6aea2eebc760b22b084f07e6fc020c6577a6ce6d", size = 526991, upload-time = "2026-03-23T14:21:15.89Z" }, + { url = "https://files.pythonhosted.org/packages/20/34/a08b0ee99715eaba118cbe19a71f7b5e2425c2718ef96007c325944a1152/datasets-3.6.0-py3-none-any.whl", hash = "sha256:25000c4a2c0873a710df127d08a202a06eab7bf42441a6bc278b499c2f72cd1b", size = 491546, upload-time = "2025-05-07T15:14:59.742Z" }, ] [[package]] @@ -692,14 +675,14 @@ wheels = [ [[package]] name = "deepdiff" -version = "9.0.0" +version = "8.6.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "orderly-set" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/24/20/63dd34163ed07393968128dc8c7ab948c96e47c4ce76976ea533de64909d/deepdiff-9.0.0.tar.gz", hash = "sha256:4872005306237b5b50829803feff58a1dfd20b2b357a55de22e7ded65b2008a7", size = 151952, upload-time = "2026-03-30T05:52:23.769Z" } +sdist = { url = "https://files.pythonhosted.org/packages/89/50/767448e792d41bfb6094ee317a355c1cb221dca24b2e178e2203bbea2a77/deepdiff-8.6.2.tar.gz", hash = "sha256:186dcbd181e4d76cef11ab05f802d0056c5d6083c5a6748c1473e9d7481e183e", size = 634860, upload-time = "2026-03-18T17:16:33.785Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/c4/da7089cd7aa4ab554f56e18a7fb08dcfed8fd2ae91fa528f5b1be207a148/deepdiff-9.0.0-py3-none-any.whl", hash = "sha256:b1ae0dd86290d86a03de5fbee728fde43095c1472ae4974bdab23ab4656305bd", size = 170540, upload-time = "2026-03-30T05:52:22.008Z" }, + { url = "https://files.pythonhosted.org/packages/2b/5f/c52bd1255db763d0cdcb7084d2e90c42119cb229302c56bdf1d0aa78abd2/deepdiff-8.6.2-py3-none-any.whl", hash = "sha256:4d22034a866c3928303a9332c279362f714192d9305bac17c498720d095fd1b4", size = 91979, upload-time = "2026-03-18T17:16:32.171Z" }, ] [[package]] @@ -723,11 +706,11 @@ wheels = [ [[package]] name = "dill" -version = "0.4.1" +version = "0.3.8" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz", hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa", size = 187315, upload-time = "2026-01-19T02:36:56.85Z" } +sdist = { url = "https://files.pythonhosted.org/packages/17/4d/ac7ffa80c69ea1df30a8aa11b3578692a5118e7cd1aa157e3ef73b092d15/dill-0.3.8.tar.gz", hash = "sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca", size = 184847, upload-time = "2024-01-27T23:42:16.145Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl", hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", size = 120019, upload-time = "2026-01-19T02:36:55.663Z" }, + { url = "https://files.pythonhosted.org/packages/c9/7a/cef76fd8438a42f96db64ddaa85280485a9c395e7df3db8158cfec1eee34/dill-0.3.8-py3-none-any.whl", hash = "sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7", size = 116252, upload-time = "2024-01-27T23:42:14.239Z" }, ] [[package]] @@ -804,18 +787,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d5/7c/e9fcff7623954d86bdc17782036cbf715ecab1bec4847c008557affe1ca8/docstring_parser-0.16-py3-none-any.whl", hash = "sha256:bf0a1387354d3691d102edef7ec124f219ef639982d096e26e3b60aeffa90637", size = 36533, upload-time = "2024-03-15T10:39:41.527Z" }, ] -[[package]] -name = "donfig" -version = "0.8.1.post1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyyaml" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/25/71/80cc718ff6d7abfbabacb1f57aaa42e9c1552bfdd01e64ddd704e4a03638/donfig-0.8.1.post1.tar.gz", hash = "sha256:3bef3413a4c1c601b585e8d297256d0c1470ea012afa6e8461dc28bfb7c23f52", size = 19506, upload-time = "2024-05-23T14:14:31.513Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/d5/c5db1ea3394c6e1732fb3286b3bd878b59507a8f77d32a2cebda7d7b7cd4/donfig-0.8.1.post1-py3-none-any.whl", hash = "sha256:2a3175ce74a06109ff9307d90a230f81215cbac9a751f4d1c6194644b8204f9d", size = 21592, upload-time = "2024-05-23T14:13:55.283Z" }, -] - [[package]] name = "draccus" version = "0.10.0" @@ -1025,11 +996,11 @@ wheels = [ [[package]] name = "fsspec" -version = "2026.2.0" +version = "2025.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/7c/f60c259dcbf4f0c47cc4ddb8f7720d2dcdc8888c8e5ad84c73ea4531cc5b/fsspec-2026.2.0.tar.gz", hash = "sha256:6544e34b16869f5aacd5b90bdf1a71acb37792ea3ddf6125ee69a22a53fb8bff", size = 313441, upload-time = "2026-02-05T21:50:53.743Z" } +sdist = { url = "https://files.pythonhosted.org/packages/34/f4/5721faf47b8c499e776bc34c6a8fc17efdf7fdef0b00f398128bc5dcb4ac/fsspec-2025.3.0.tar.gz", hash = "sha256:a935fd1ea872591f2b5148907d103488fc523295e6c64b835cfad8c3eca44972", size = 298491, upload-time = "2025-03-07T21:47:56.461Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl", hash = "sha256:98de475b5cb3bd66bedd5c4679e87b4fdfe1a3bf4d707b151b3c07e58c9a2437", size = 202505, upload-time = "2026-02-05T21:50:51.819Z" }, + { url = "https://files.pythonhosted.org/packages/56/53/eb690efa8513166adef3e0669afd31e95ffde69fb3c52ec2ac7223ed6018/fsspec-2025.3.0-py3-none-any.whl", hash = "sha256:efb87af3efa9103f94ca91a7f8cb7a4df91af9f74fc106c9c7ea0efd7277c1b3", size = 193615, upload-time = "2025-03-07T21:47:54.809Z" }, ] [package.optional-dependencies] @@ -1051,7 +1022,7 @@ wheels = [ [[package]] name = "gcsfs" -version = "2026.2.0" +version = "2025.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -1060,28 +1031,11 @@ dependencies = [ { name = "google-auth" }, { name = "google-auth-oauthlib" }, { name = "google-cloud-storage" }, - { name = "google-cloud-storage-control" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8c/91/e7a2f237d51436a4fc947f30f039d2c277bb4f4ce02f86628ba0a094a3ce/gcsfs-2026.2.0.tar.gz", hash = "sha256:d58a885d9e9c6227742b86da419c7a458e1f33c1de016e826ea2909f6338ed84", size = 163376, upload-time = "2026-02-06T18:35:52.217Z" } +sdist = { url = "https://files.pythonhosted.org/packages/59/81/441e9f7f8b9b4cabb89ff19cd58da12cebb5e6ea2864920ae8862061fac0/gcsfs-2025.3.0.tar.gz", hash = "sha256:f68d7bc24bd4b944cd55a6963b9fd722c7bd5791f46c6aebacc380e648292c04", size = 81174, upload-time = "2025-03-08T18:33:54.69Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9c/6b/c2f68ac51229fc94f094c7f802648fc1de3d19af36434def5e64c0caa32b/gcsfs-2026.2.0-py3-none-any.whl", hash = "sha256:407feaa2af0de81ebce44ea7e6f68598a3753e5e42257b61d6a9f8c0d6d4754e", size = 57557, upload-time = "2026-02-06T18:35:51.09Z" }, -] - -[[package]] -name = "gdown" -version = "6.0.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "beautifulsoup4" }, - { name = "filelock" }, - { name = "requests", extra = ["socks"] }, - { name = "tqdm" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/72/01/9e0280ba321f73295374765dc3c0b1e03058188a592a48a321376f9eb092/gdown-6.0.0.tar.gz", hash = "sha256:1f1f735a174ef3599fca95786aafac1219b9d85d4c729ccb95e674996c47fd44", size = 262729, upload-time = "2026-04-12T06:37:40.182Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/91/fd/a382bb6684b1fdbe5cd19aa980a04a67f6c91efd0e1e627f93614fe2d24e/gdown-6.0.0-py3-none-any.whl", hash = "sha256:c82d39a6b09ed7778012515c2fa4ab4dc36d7789300cd0b16b87d3a3e4a09955", size = 18243, upload-time = "2026-04-12T06:37:38.209Z" }, + { url = "https://files.pythonhosted.org/packages/44/dd/874223310565a336820a70727b61e7dd23f7be6cb91006f2cbb634670142/gcsfs-2025.3.0-py2.py3-none-any.whl", hash = "sha256:afbc2b26a481de66519e9cce7762340ef4781ce01c6663af0d63eda10f6d2c9c", size = 36133, upload-time = "2025-03-08T18:33:53.21Z" }, ] [[package]] @@ -1138,12 +1092,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/03/15/e56f351cf6ef1cfea58e6ac226a7318ed1deb2218c4b3cc9bd9e4b786c5a/google_api_core-2.30.3-py3-none-any.whl", hash = "sha256:a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8", size = 173274, upload-time = "2026-04-09T22:57:16.198Z" }, ] -[package.optional-dependencies] -grpc = [ - { name = "grpcio" }, - { name = "grpcio-status" }, -] - [[package]] name = "google-auth" version = "2.49.2" @@ -1200,23 +1148,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ad/ff/ca9ab2417fa913d75aae38bf40bf856bb2749a604b2e0f701b37cfcd23cc/google_cloud_storage-3.10.1-py3-none-any.whl", hash = "sha256:a72f656759b7b99bda700f901adcb3425a828d4a29f911bc26b3ea79c5b1217f", size = 324453, upload-time = "2026-03-23T09:35:21.368Z" }, ] -[[package]] -name = "google-cloud-storage-control" -version = "1.11.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "google-api-core", extra = ["grpc"] }, - { name = "google-auth" }, - { name = "grpc-google-iam-v1" }, - { name = "grpcio" }, - { name = "proto-plus" }, - { name = "protobuf" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/da/4d/f36795a1cb37562caaf7fa9367ed34af29a09fd28ccda36f2f62c686de8f/google_cloud_storage_control-1.11.0.tar.gz", hash = "sha256:e97a0f3c99bc5ec5a2a770298ca9e8d5feeaa41bb55f2f2d7b36df2b817ee950", size = 117255, upload-time = "2026-03-26T22:18:32.645Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/aa/4df4066f4883afdae530ad95362f769cd9379fd2fb2d91f819aa7c9bdcc0/google_cloud_storage_control-1.11.0-py3-none-any.whl", hash = "sha256:98d2a3be8ab124ae09c33c1b8e4aadc68597c171c60c33e62666bcc74493f8ee", size = 89728, upload-time = "2026-03-26T22:16:17.2Z" }, -] - [[package]] name = "google-crc32c" version = "1.8.0" @@ -1256,30 +1187,11 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b6/b0/be5d3329badb9230b765de6eea66b73abd5944bdeb5afb3562ddcd80ae84/googleapis_common_protos-1.74.0-py3-none-any.whl", hash = "sha256:702216f78610bb510e3f12ac3cafd281b7ac45cc5d86e90ad87e4d301a3426b5", size = 300743, upload-time = "2026-04-02T21:22:49.108Z" }, ] -[package.optional-dependencies] -grpc = [ - { name = "grpcio" }, -] - [[package]] name = "gr00t" version = "0.1.0" source = { editable = "third_party/Isaac-GR00T" } -[[package]] -name = "grpc-google-iam-v1" -version = "0.14.4" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "googleapis-common-protos", extra = ["grpc"] }, - { name = "grpcio" }, - { name = "protobuf" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/44/4f/d098419ad0bfc06c9ce440575f05aa22d8973b6c276e86ac7890093d3c37/grpc_google_iam_v1-0.14.4.tar.gz", hash = "sha256:392b3796947ed6334e61171d9ab06bf7eb357f554e5fc7556ad7aab6d0e17038", size = 23706, upload-time = "2026-04-01T01:57:49.813Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/89/22/c2dd50c09bf679bd38173656cd4402d2511e563b33bc88f90009cf50613c/grpc_google_iam_v1-0.14.4-py3-none-any.whl", hash = "sha256:412facc320fcbd94034b4df3d557662051d4d8adfa86e0ddb4dca70a3f739964", size = 32675, upload-time = "2026-04-01T01:57:47.69Z" }, -] - [[package]] name = "grpcio" version = "1.80.0" @@ -1301,20 +1213,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/d4/ae92206d01183b08613e846076115f5ac5991bae358d2a749fa864da5699/grpcio-1.80.0-cp311-cp311-win_amd64.whl", hash = "sha256:02e64bb0bb2da14d947a49e6f120a75e947250aebe65f9629b62bb1f5c14e6e9", size = 4894235, upload-time = "2026-03-30T08:47:10.839Z" }, ] -[[package]] -name = "grpcio-status" -version = "1.80.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "googleapis-common-protos" }, - { name = "grpcio" }, - { name = "protobuf" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/ed/105f619bdd00cb47a49aa2feea6232ea2bbb04199d52a22cc6a7d603b5cb/grpcio_status-1.80.0.tar.gz", hash = "sha256:df73802a4c89a3ea88aa2aff971e886fccce162bc2e6511408b3d67a144381cd", size = 13901, upload-time = "2026-03-30T08:54:34.784Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/80/58cd2dfc19a07d022abe44bde7c365627f6c7cb6f692ada6c65ca437d09a/grpcio_status-1.80.0-py3-none-any.whl", hash = "sha256:4b56990363af50dbf2c2ebb80f1967185c07d87aa25aa2bea45ddb75fc181dbe", size = 14638, upload-time = "2026-03-30T08:54:01.569Z" }, -] - [[package]] name = "grpclib" version = "0.4.9" @@ -1495,7 +1393,7 @@ wheels = [ [[package]] name = "huggingface-hub" -version = "0.34.0" +version = "0.36.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "filelock" }, @@ -1507,9 +1405,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/15/77/a9e27cdb6a2f8387c7b8f7e6a107458b7b96f156a5a78fab922d0d563df8/huggingface_hub-0.34.0.tar.gz", hash = "sha256:2c6f373fac66b1afc2fe47efd8e603a876935dbd669f966231f265da5c353e25", size = 456749, upload-time = "2025-07-25T08:52:20.745Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/b7/8cb61d2eece5fb05a83271da168186721c450eb74e3c31f7ef3169fa475b/huggingface_hub-0.36.2.tar.gz", hash = "sha256:1934304d2fb224f8afa3b87007d58501acfda9215b334eed53072dd5e815ff7a", size = 649782, upload-time = "2026-02-06T09:24:13.098Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/ac/2f910d2572360ff2f3c4faf41b6c3e170b8934704be8bab2c7f80ff801e9/huggingface_hub-0.34.0-py3-none-any.whl", hash = "sha256:29737225f21dcc5c6b41bc9ab1073e65f9a2f84ecf9ad0a0c2fb92ae8cee173f", size = 558651, upload-time = "2025-07-25T08:52:18.787Z" }, + { url = "https://files.pythonhosted.org/packages/a8/af/48ac8483240de756d2438c380746e7130d1c6f75802ef22f3c6d49982787/huggingface_hub-0.36.2-py3-none-any.whl", hash = "sha256:48f0c8eac16145dfce371e9d2d7772854a4f591bcb56c9cf548accf531d54270", size = 566395, upload-time = "2026-02-06T09:24:11.133Z" }, ] [package.optional-dependencies] @@ -1849,8 +1747,8 @@ wheels = [ [[package]] name = "lerobot" -version = "0.1.0" -source = { git = "https://github.com/huggingface/lerobot?rev=0cf864870cf29f4738d3ade893e6fd13fbd7cdb5#0cf864870cf29f4738d3ade893e6fd13fbd7cdb5" } +version = "0.3.4" +source = { git = "https://github.com/huggingface/lerobot?rev=33cad37054c2b594ceba57463e8f11ee374fa93c#33cad37054c2b594ceba57463e8f11ee374fa93c" } dependencies = [ { name = "av" }, { name = "cmake" }, @@ -1859,27 +1757,20 @@ dependencies = [ { name = "diffusers" }, { name = "draccus" }, { name = "einops" }, - { name = "flask" }, - { name = "gdown" }, { name = "gymnasium" }, - { name = "h5py" }, { name = "huggingface-hub", extra = ["cli", "hf-transfer"] }, { name = "imageio", extra = ["ffmpeg"] }, { name = "jsonlines" }, - { name = "numba" }, - { name = "omegaconf" }, { name = "opencv-python-headless" }, { name = "packaging" }, - { name = "pymunk" }, { name = "pynput" }, - { name = "pyzmq" }, + { name = "pyserial" }, { name = "rerun-sdk" }, { name = "termcolor" }, { name = "torch" }, { name = "torchcodec", marker = "(platform_machine != 'aarch64' and platform_machine != 'arm64' and platform_machine != 'armv7l' and sys_platform == 'linux') or (platform_machine != 'x86_64' and sys_platform == 'darwin') or (sys_platform != 'darwin' and sys_platform != 'linux' and sys_platform != 'win32')" }, { name = "torchvision" }, { name = "wandb" }, - { name = "zarr" }, ] [[package]] @@ -2153,19 +2044,17 @@ wheels = [ [[package]] name = "multiprocess" -version = "0.70.19" +version = "0.70.16" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dill" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a2/f2/e783ac7f2aeeed14e9e12801f22529cc7e6b7ab80928d6dcce4e9f00922d/multiprocess-0.70.19.tar.gz", hash = "sha256:952021e0e6c55a4a9fe4cd787895b86e239a40e76802a789d6305398d3975897", size = 2079989, upload-time = "2026-01-19T06:47:39.744Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/ae/04f39c5d0d0def03247c2893d6f2b83c136bf3320a2154d7b8858f2ba72d/multiprocess-0.70.16.tar.gz", hash = "sha256:161af703d4652a0e1410be6abccecde4a7ddffd19341be0a7011b94aeb171ac1", size = 1772603, upload-time = "2024-01-28T18:52:34.85Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/aa/714635c727dbfc251139226fa4eaf1b07f00dc12d9cd2eb25f931adaf873/multiprocess-0.70.19-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1bbf1b69af1cf64cd05f65337d9215b88079ec819cd0ea7bac4dab84e162efe7", size = 144743, upload-time = "2026-01-19T06:47:24.562Z" }, - { url = "https://files.pythonhosted.org/packages/0f/e1/155f6abf5e6b5d9cef29b6d0167c180846157a4aca9b9bee1a217f67c959/multiprocess-0.70.19-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:5be9ec7f0c1c49a4f4a6fd20d5dda4aeabc2d39a50f4ad53720f1cd02b3a7c2e", size = 144738, upload-time = "2026-01-19T06:47:26.636Z" }, - { url = "https://files.pythonhosted.org/packages/af/cb/f421c2869d75750a4f32301cc20c4b63fab6376e9a75c8e5e655bdeb3d9b/multiprocess-0.70.19-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1c3dce098845a0db43b32a0b76a228ca059a668071cfeaa0f40c36c0b1585d45", size = 144741, upload-time = "2026-01-19T06:47:27.985Z" }, - { url = "https://files.pythonhosted.org/packages/e3/45/8004d1e6b9185c1a444d6b55ac5682acf9d98035e54386d967366035a03a/multiprocess-0.70.19-py310-none-any.whl", hash = "sha256:97404393419dcb2a8385910864eedf47a3cadf82c66345b44f036420eb0b5d87", size = 134948, upload-time = "2026-01-19T06:47:32.325Z" }, - { url = "https://files.pythonhosted.org/packages/86/c2/dec9722dc3474c164a0b6bcd9a7ed7da542c98af8cabce05374abab35edd/multiprocess-0.70.19-py311-none-any.whl", hash = "sha256:928851ae7973aea4ce0eaf330bbdafb2e01398a91518d5c8818802845564f45c", size = 144457, upload-time = "2026-01-19T06:47:33.711Z" }, - { url = "https://files.pythonhosted.org/packages/7e/82/69e539c4c2027f1e1697e09aaa2449243085a0edf81ae2c6341e84d769b6/multiprocess-0.70.19-py39-none-any.whl", hash = "sha256:0d4b4397ed669d371c81dcd1ef33fd384a44d6c3de1bd0ca7ac06d837720d3c5", size = 133477, upload-time = "2026-01-19T06:47:38.619Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f7/7ec7fddc92e50714ea3745631f79bd9c96424cb2702632521028e57d3a36/multiprocess-0.70.16-py310-none-any.whl", hash = "sha256:c4a9944c67bd49f823687463660a2d6daae94c289adff97e0f9d696ba6371d02", size = 134824, upload-time = "2024-01-28T18:52:26.062Z" }, + { url = "https://files.pythonhosted.org/packages/50/15/b56e50e8debaf439f44befec5b2af11db85f6e0f344c3113ae0be0593a91/multiprocess-0.70.16-py311-none-any.whl", hash = "sha256:af4cabb0dac72abfb1e794fa7855c325fd2b55a10a44628a3c1ad3311c04127a", size = 143519, upload-time = "2024-01-28T18:52:28.115Z" }, + { url = "https://files.pythonhosted.org/packages/ea/89/38df130f2c799090c978b366cfdf5b96d08de5b29a4a293df7f7429fa50b/multiprocess-0.70.16-py38-none-any.whl", hash = "sha256:a71d82033454891091a226dfc319d0cfa8019a4e888ef9ca910372a446de4435", size = 132628, upload-time = "2024-01-28T18:52:30.853Z" }, + { url = "https://files.pythonhosted.org/packages/da/d9/f7f9379981e39b8c2511c9e0326d212accacb82f12fbfdc1aa2ce2a7b2b6/multiprocess-0.70.16-py39-none-any.whl", hash = "sha256:a0bafd3ae1b732eac64be2e72038231c1ba97724b60b09400d68f229fcc2fbf3", size = 133351, upload-time = "2024-01-28T18:52:31.981Z" }, ] [[package]] @@ -2244,23 +2133,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/53/ff/1371cbbe955be340a46093a10b61462437e0fadc7a63290473a0e584cb03/numba-0.65.0-cp311-cp311-win_amd64.whl", hash = "sha256:15d159578e59a39df246b83480f78d7794b0fca40153b5684d3849a99c48a0fb", size = 2747081, upload-time = "2026-04-01T03:51:30.785Z" }, ] -[[package]] -name = "numcodecs" -version = "0.16.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/44/bd/8a391e7c356366224734efd24da929cc4796fff468bfb179fe1af6548535/numcodecs-0.16.5.tar.gz", hash = "sha256:0d0fb60852f84c0bd9543cc4d2ab9eefd37fc8efcc410acd4777e62a1d300318", size = 6276387, upload-time = "2025-11-21T02:49:48.986Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/af/85/1ac101a40ead81eaa1c7dc49a8827a30e2e436211b43ebdc63c590eb1347/numcodecs-0.16.5-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:78382dcea50622f2ef1e6e7a71dbe7f861d8fe376b27b7c297c26907304fef1e", size = 1621795, upload-time = "2025-11-21T02:49:17.418Z" }, - { url = "https://files.pythonhosted.org/packages/0e/cc/0d97ef55dda48cb0f93d7b92d761208e7a99bd2eea6b0e859426e6a99a21/numcodecs-0.16.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2d04a19cb57a3c519b4127ac377cca6471aee1990d7c18f5b1e3a4fe1306689", size = 1153030, upload-time = "2025-11-21T02:49:19.089Z" }, - { url = "https://files.pythonhosted.org/packages/5e/41/e120ee1b390730ac5987cde2afd82e2b8442cec315ab40b94b0373e93e73/numcodecs-0.16.5-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c043af648eb280cd61785c99c22ff5c3c3460f906eb51a8511327c4f5111b283", size = 8510503, upload-time = "2025-11-21T02:49:20.324Z" }, - { url = "https://files.pythonhosted.org/packages/54/4b/195ac84cc8f6077b4f0f421e8daee21b7f1bd88cb7716414234379fe68ec/numcodecs-0.16.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c398919ef2eb0e56b8e97456f622640bfd3deed06de3acc976989cbcb22628a3", size = 9123428, upload-time = "2025-11-21T02:49:22.328Z" }, - { url = "https://files.pythonhosted.org/packages/0f/5b/af02c417954f46e5c7bd5163ac251f535877d909fce54861c99ae197f6f6/numcodecs-0.16.5-cp311-cp311-win_amd64.whl", hash = "sha256:3820860ed302d4d84a1c66e70981ff959d5eb712555be4e7d8ced49888594773", size = 801542, upload-time = "2025-11-21T02:49:24.265Z" }, -] - [[package]] name = "numpy" version = "2.4.4" @@ -2465,19 +2337,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/be/9c/92789c596b8df838baa98fa71844d84283302f7604ed565dafe5a6b5041a/oauthlib-3.3.1-py3-none-any.whl", hash = "sha256:88119c938d2b8fb88561af5f6ee0eec8cc8d552b7bb1f712743136eb7523b7a1", size = 160065, upload-time = "2025-06-19T22:48:06.508Z" }, ] -[[package]] -name = "omegaconf" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "antlr4-python3-runtime" }, - { name = "pyyaml" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/09/48/6388f1bb9da707110532cb70ec4d2822858ddfb44f1cdf1233c20a80ea4b/omegaconf-2.3.0.tar.gz", hash = "sha256:d5d4b6d29955cc50ad50c46dc269bcd92c6e00f5f90d23ab5fee7bfca4ba4cc7", size = 3298120, upload-time = "2022-12-08T20:59:22.753Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/94/1843518e420fa3ed6919835845df698c7e27e183cb997394e4a670973a65/omegaconf-2.3.0-py3-none-any.whl", hash = "sha256:7b4df175cdb08ba400f45cae3bdcae7ba8365db4d165fc65fd04b050ab63b46b", size = 79500, upload-time = "2022-12-08T20:59:19.686Z" }, -] - [[package]] name = "opencv-python" version = "4.11.0.86" @@ -2518,6 +2377,7 @@ version = "0.1.0" source = { editable = "third_party/openpi" } dependencies = [ { name = "augmax" }, + { name = "av" }, { name = "beartype" }, { name = "dm-tree" }, { name = "einops" }, @@ -2554,6 +2414,7 @@ dependencies = [ [package.metadata] requires-dist = [ { name = "augmax", specifier = ">=0.3.4" }, + { name = "av", specifier = "==16.0.0" }, { name = "beartype", specifier = "==0.19.0" }, { name = "dm-tree", specifier = ">=0.1.8" }, { name = "einops", specifier = ">=0.8.0" }, @@ -2567,7 +2428,7 @@ requires-dist = [ { name = "jax", marker = "sys_platform == 'darwin'", specifier = "==0.5.3" }, { name = "jax", extras = ["cuda12"], marker = "sys_platform == 'linux'", specifier = "==0.5.3" }, { name = "jaxtyping", specifier = "==0.2.36" }, - { name = "lerobot", git = "https://github.com/huggingface/lerobot?rev=0cf864870cf29f4738d3ade893e6fd13fbd7cdb5" }, + { name = "lerobot", git = "https://github.com/huggingface/lerobot?rev=33cad37054c2b594ceba57463e8f11ee374fa93c" }, { name = "ml-collections", specifier = "==1.0.0" }, { name = "numpy", specifier = ">=1.22.4" }, { name = "numpydantic", specifier = ">=1.6.6" }, @@ -3006,29 +2867,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] -[[package]] -name = "pymunk" -version = "7.2.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "cffi" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/46/fea11148ce482e4b11d1c59ffe1e0cfc380d87700d5c7526d025af9ffbb6/pymunk-7.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c66098615d50f240f6fa82801743cbc73d11e5ad96da3d9162343773b0ea1d99", size = 368004, upload-time = "2025-11-02T18:44:49.49Z" }, - { url = "https://files.pythonhosted.org/packages/24/e9/5f8727480e224fd849b08418f071788af456e17218d70f86e9a36addbef5/pymunk-7.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94b162cca5fdbae219bab3be2ed28a426a6bc436a81bec1692a93d4422b87341", size = 350279, upload-time = "2025-11-02T18:45:02.603Z" }, - { url = "https://files.pythonhosted.org/packages/21/73/ce2fcf0290766cee3410dd5558b2c0e7046d28652448770ea24c3f83f38b/pymunk-7.2.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6f0f8e5e76e6214510ef63e8860b7c791f08510d2a38cace7ad7fd144534d8be", size = 990312, upload-time = "2025-11-02T18:46:17.589Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0e/9ddd9f7b5b5a88a5f0eb71d4b903a6e5c464ca734dc71c91ec84a3e9b826/pymunk-7.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51bd7fbd553473f7503d7a84bec58386c1e299ee25587c72f1dd2f945d7984c3", size = 1011065, upload-time = "2025-11-02T18:46:50.897Z" }, - { url = "https://files.pythonhosted.org/packages/d4/f1/2047cff86e2f9fb9571a5534f2390b333f088b17a60946b8075607491576/pymunk-7.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:638034408715848e51b083a8eaa0a66aa870ee401345ccbe8072ebde02ecb408", size = 987183, upload-time = "2025-11-02T18:46:20.017Z" }, - { url = "https://files.pythonhosted.org/packages/1d/51/368b2288606ba2177b4d43545231508171cc4ef6df916f2829d235ff8d24/pymunk-7.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:65b132c0ecc0d8d9949ae78baeb54f03f59e2a21b729a4de59f25065bb410d7c", size = 1010850, upload-time = "2025-11-02T18:46:53.715Z" }, - { url = "https://files.pythonhosted.org/packages/bc/85/93a89e5243c6fe75b3aace8182eb9ff7f462669866f174b4ffe1c5cd26be/pymunk-7.2.0-cp311-cp311-win32.whl", hash = "sha256:2b577642fa48628e0a48ef945975c9e57ac2ff066c88d74ce6b6be82b3a5a5d5", size = 318089, upload-time = "2025-11-02T18:47:22.5Z" }, - { url = "https://files.pythonhosted.org/packages/cb/48/aa55c44c12dac76d407b9d30ba2df7c00369afb66422f611503640af7fd4/pymunk-7.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:8fff409b7394a0ceaf4258119b4a182255837e29c477af28dbdeab72e0d74fb2", size = 368021, upload-time = "2025-11-02T18:47:24.384Z" }, - { url = "https://files.pythonhosted.org/packages/a5/06/4f1b6e9fc3abc58d6aa4e88fe69f7db294987df5df7eab5bb41416f68791/pymunk-7.2.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f9b54efda50e5f15b38f2557152db4bd87c2fd3f8fe1abe21f355647a84ddbcd", size = 293212, upload-time = "2025-11-02T18:44:57.231Z" }, - { url = "https://files.pythonhosted.org/packages/09/8c/1c7c9f9d71923bd76c67291ae096f16e0a519192edc4ac3416d55d0cd8c2/pymunk-7.2.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:a98b3d367386659bb9742601c0eac19e099282a9814cd3ee6f5addab82885a7e", size = 284956, upload-time = "2025-11-02T18:45:10.274Z" }, - { url = "https://files.pythonhosted.org/packages/20/ad/4cb37116e26cff53aee48abf7f848253277a3fff0cdd7e0305b86b6975ad/pymunk-7.2.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d4a2b32f82b9461dd410d1261c9f0b088d68f9ba7f3a8318060ad205b56e00a", size = 319078, upload-time = "2025-11-02T18:46:37.892Z" }, - { url = "https://files.pythonhosted.org/packages/98/e0/1d364942a0c5c17960de080af77bc947f94748799435ad56ecdefa2e3a50/pymunk-7.2.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0266770a4c0984c87974a02e4a5663bc8416f0061f7997c73c97c4a3f0f9c3f", size = 324039, upload-time = "2025-11-02T18:47:12.739Z" }, - { url = "https://files.pythonhosted.org/packages/de/b3/7e3db479d72d2db216126599bcda95fe0ce82d60a1e26bad315b7d68d0b2/pymunk-7.2.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:e17408dfe98cedd279c964be655fee0ac5692fe4b4f767c34d861a49c7561dc1", size = 309575, upload-time = "2025-11-02T18:47:36.445Z" }, -] - [[package]] name = "pynput" version = "1.7.7" @@ -3139,12 +2977,12 @@ wheels = [ ] [[package]] -name = "pysocks" -version = "1.7.1" +name = "pyserial" +version = "3.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bd/11/293dd436aea955d45fc4e8a35b6ae7270f5b8e00b53cf6c024c83b657a11/PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0", size = 284429, upload-time = "2019-09-20T02:07:35.714Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/7d/ae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082/pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb", size = 159125, upload-time = "2020-11-23T03:59:15.045Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl", hash = "sha256:2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5", size = 16725, upload-time = "2019-09-20T02:06:22.938Z" }, + { url = "https://files.pythonhosted.org/packages/07/bc/587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558/pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0", size = 90585, upload-time = "2020-11-23T03:59:13.41Z" }, ] [[package]] @@ -3318,11 +3156,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d7/8e/7540e8a2036f79a125c1d2ebadf69ed7901608859186c856fa0388ef4197/requests-2.33.1-py3-none-any.whl", hash = "sha256:4e6d1ef462f3626a1f0a0a9c42dd93c63bad33f9f1c1937509b8c5c8718ab56a", size = 64947, upload-time = "2026-03-30T16:09:13.83Z" }, ] -[package.optional-dependencies] -socks = [ - { name = "pysocks" }, -] - [[package]] name = "requests-oauthlib" version = "2.0.0" @@ -3338,7 +3171,7 @@ wheels = [ [[package]] name = "rerun-sdk" -version = "0.23.1" +version = "0.22.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "attrs" }, @@ -3348,11 +3181,11 @@ dependencies = [ { name = "typing-extensions" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/6e/a125f4fe2de3269f443b7cb65d465ffd37a836a2dac7e4318e21239d78c8/rerun_sdk-0.23.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:fe06d21cfcf4d84a9396f421d4779efabec7e9674d232a2c552c8a91d871c375", size = 66094053, upload-time = "2025-04-25T13:15:48.669Z" }, - { url = "https://files.pythonhosted.org/packages/55/f6/b6d13322b05dc77bd9a0127e98155c2b7ee987a236fd4d331eed2e547a90/rerun_sdk-0.23.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:823ae87bfa644e06fb70bada08a83690dd23d9824a013947f80a22c6731bdc0d", size = 62047843, upload-time = "2025-04-25T13:15:54.48Z" }, - { url = "https://files.pythonhosted.org/packages/a5/7f/6a7422cb727e14a65b55b0089988eeea8d0532c429397a863e6ba395554a/rerun_sdk-0.23.1-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:dc5129f8744f71249bf45558c853422c51ef39b6b5eea0ea1f602c6049ce732f", size = 68214509, upload-time = "2025-04-25T13:15:59.339Z" }, - { url = "https://files.pythonhosted.org/packages/4f/86/3aee9eadbfe55188a2c7d739378545b4319772a4d3b165e8d3fc598fa630/rerun_sdk-0.23.1-cp39-abi3-manylinux_2_31_x86_64.whl", hash = "sha256:ee0d0e17df0e08be13b77cc74884c5d8ba8edb39b6f5a60dc2429d39033d90f6", size = 71442196, upload-time = "2025-04-25T13:16:04.405Z" }, - { url = "https://files.pythonhosted.org/packages/a7/ba/028bd382e2ae21e6643cec25f423285dbc6b328ce56d55727b4101ef9443/rerun_sdk-0.23.1-cp39-abi3-win_amd64.whl", hash = "sha256:d4273db55b56310b053a2de6bf5927a8692cf65f4d234c6e6928fb24ed8a960d", size = 57583198, upload-time = "2025-04-25T13:16:08.905Z" }, + { url = "https://files.pythonhosted.org/packages/a9/41/f9724c6ee4b4d45f9ae433f41fc8b4f2827d5b3f9459b9e9a9c55fdda5ab/rerun_sdk-0.22.1-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:176853d14bcac0b3cab8b240fe6760e32a577b1edd9ecb2fd0656e83f046a2c4", size = 46819325, upload-time = "2025-02-20T10:43:26.168Z" }, + { url = "https://files.pythonhosted.org/packages/01/8e/db9fd7e7d9d9ec6e3f0781ce6f3b71c06952f9b0c40e9720822fd83f711e/rerun_sdk-0.22.1-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:dea4a50c916bc82bd97a8f9dc44c71f9a9fccec7e73f37edfaa0de800caf5dce", size = 44566672, upload-time = "2025-02-20T10:43:33.456Z" }, + { url = "https://files.pythonhosted.org/packages/ad/41/87079d0a897e4fc2dd54a356be9556626f40ec1ff1c3393178e7ac9feb9d/rerun_sdk-0.22.1-cp38-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:29d807909f5e484aa6427d9fb25706d0a154de392a4ca47eb303fbd135c0e382", size = 49830061, upload-time = "2025-02-20T10:43:40.68Z" }, + { url = "https://files.pythonhosted.org/packages/1e/db/3ce2be017d7d4ac0948fb064bf7417b36c96bc07d1b8a922017606ba03c6/rerun_sdk-0.22.1-cp38-abi3-manylinux_2_31_x86_64.whl", hash = "sha256:b9672412d0cdf57c79c10ca683e59716399da3358df78b985b25093d022ebbaf", size = 51423327, upload-time = "2025-02-20T10:43:48.471Z" }, + { url = "https://files.pythonhosted.org/packages/43/eb/edafdcba1619955c2c9b66c7a1bcbbce4ad62a1a36db984b46aa793fe366/rerun_sdk-0.22.1-cp38-abi3-win_amd64.whl", hash = "sha256:d3d0afe1b8e749a1088a0bb75f372ad7fe70eb3728bd32e07bf78300436a053d", size = 42085149, upload-time = "2025-02-20T10:43:56.563Z" }, ] [[package]] @@ -3622,15 +3455,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c1/d4/59e74daffcb57a07668852eeeb6035af9f32cbfd7a1d2511f17d2fe6a738/smmap-5.0.3-py3-none-any.whl", hash = "sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f", size = 24390, upload-time = "2026-03-09T03:43:24.361Z" }, ] -[[package]] -name = "soupsieve" -version = "2.8.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7b/ae/2d9c981590ed9999a0d91755b47fc74f74de286b0f5cee14c9269041e6c4/soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349", size = 118627, upload-time = "2026-01-20T04:27:02.457Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/46/2c/1462b1d0a634697ae9e55b3cecdcb64788e8b7d63f54d923fcd0bb140aed/soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95", size = 37016, upload-time = "2026-01-20T04:27:01.012Z" }, -] - [[package]] name = "starlette" version = "1.0.0" @@ -3864,12 +3688,11 @@ wheels = [ [[package]] name = "torchcodec" -version = "0.11.1" +version = "0.5" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/cc/471eb0ce4120a535d263c48a665f27a85706f976b5fe0aa3bab7694868f3/torchcodec-0.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:47db9696c694c74186c5a861dbf4e5390788355f2586a1fa6af68ad56e6f1ed4", size = 4202726, upload-time = "2026-04-14T18:24:42.776Z" }, - { url = "https://files.pythonhosted.org/packages/ba/d9/cff76c42a13dd4f920785b9ef15315ea037eabf0d9900b24386a44b3b689/torchcodec-0.11.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:60fbd745235ea8899ad056d0d5433cb43b17a80ab7672ea85747cdd22d7c6dff", size = 2385516, upload-time = "2026-04-14T18:24:44.648Z" }, - { url = "https://files.pythonhosted.org/packages/f6/50/bd8e96424e2ae403b4ef3e2cb839a0be8a685fa9f6f27482acdaad075845/torchcodec-0.11.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:dd17e1cb3b8c6cdd2f6a522d8822031b169fb10b7ff465d0de748df9af4ea930", size = 2310372, upload-time = "2026-04-14T18:24:47.75Z" }, + { url = "https://files.pythonhosted.org/packages/84/9f/8e0ae96b2560050eb1a8780dabbe3d192cf99e62a5ce2a128684bfd6f5d6/torchcodec-0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d582981f251979d4432a1606d2bfbc8d56b98a701957afbaf4cafe7569b19c68", size = 3307718, upload-time = "2025-07-23T17:43:52.805Z" }, + { url = "https://files.pythonhosted.org/packages/d3/a1/cc2b7f72104cbb5f60f5f277f470e9d0172bffb354f74b0e13a02a241165/torchcodec-0.5-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:00252c2a138c655851cc7aa6e7ad6455c6513c9b2f93cec74563cba83196be8a", size = 1374385, upload-time = "2025-07-23T17:42:43.219Z" }, ] [[package]] @@ -4272,23 +4095,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/69/68/c8739671f5699c7dc470580a4f821ef37c32c4cb0b047ce223a7f115757f/yarl-1.23.0-py3-none-any.whl", hash = "sha256:a2df6afe50dea8ae15fa34c9f824a3ee958d785fd5d089063d960bae1daa0a3f", size = 48288, upload-time = "2026-03-01T22:07:51.388Z" }, ] -[[package]] -name = "zarr" -version = "3.1.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "donfig" }, - { name = "google-crc32c" }, - { name = "numcodecs" }, - { name = "numpy" }, - { name = "packaging" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/fc/76/7fa87f57c112c7b9c82f0a730f8b6f333e792574812872e2cd45ab604199/zarr-3.1.5.tar.gz", hash = "sha256:fbe0c79675a40c996de7ca08e80a1c0a20537bd4a9f43418b6d101395c0bba2b", size = 366825, upload-time = "2025-11-21T14:06:01.492Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/15/bb13b4913ef95ad5448490821eee4671d0e67673342e4d4070854e5fe081/zarr-3.1.5-py3-none-any.whl", hash = "sha256:29cd905afb6235b94c09decda4258c888fcb79bb6c862ef7c0b8fe009b5c8563", size = 284067, upload-time = "2025-11-21T14:05:59.235Z" }, -] - [[package]] name = "zipp" version = "3.20.2"