Files

170 lines
4.3 KiB
Nix

{
lib,
stdenv,
buildPythonPackage,
fetchFromGitHub,
# build-system
cmake,
setuptools,
# dependencies
draccus,
einops,
gymnasium,
huggingface-hub,
numpy,
opencv-python-headless,
packaging,
pillow,
requests,
safetensors,
termcolor,
torch,
torchcodec,
torchvision,
tqdm,
# tests
av,
datasets,
pytestCheckHook,
writableTmpDirAsHomeHook,
}:
buildPythonPackage (finalAttrs: {
pname = "lerobot";
version = "0.6.0";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "lerobot";
tag = "v${finalAttrs.version}";
hash = "sha256-glTeELaebo5C6RethwYIHF4gB7CgKZlPr4wf45ih9cs=";
};
build-system = [
cmake
setuptools
];
dontUseCmakeConfigure = true;
pythonRelaxDeps = [
"draccus"
"numpy"
"packaging"
"torch"
"torchvision"
];
dependencies = [
draccus
einops
gymnasium
huggingface-hub
numpy
opencv-python-headless
packaging
pillow
requests
safetensors
termcolor
torch
torchcodec
torchvision
tqdm
];
pythonImportsCheck = [ "lerobot" ];
nativeCheckInputs = [
av
datasets
pytestCheckHook
writableTmpDirAsHomeHook
];
disabledTests = [
# Requires internet access
"test_act_backbone_lr"
"test_backward_compatibility"
"test_convert_image_to_video_dataset"
"test_convert_image_to_video_dataset_subset_episodes"
"test_factory"
"test_make_env_from_hub_async"
"test_make_env_from_hub_with_trust"
"test_policy_defaults"
"test_save_and_load_pretrained"
"test_save_pretrained_with_state_dict"
# Hang indefinitely
"test_aggregate_datasets"
"test_aggregate_with_low_threshold"
# RuntimeError: SingleStreamDecoder, /build/source/src/torchcodec/_core/SingleStreamDecoder.cpp:80,
# Failed to open input buffer: Invalid data found when processing input
"TestVideoDecoderCacheBounded"
# ValueError: pix_fmt='yuv420p' is not supported by codec 'h264_vaapi'; supported pixel formats: ['vaapi']
"test_vaapi_options"
# draccus.utils.ParsingError: Expected a dict with a 'type' key for ...
"test_reward_model_config_from_pretrained_roundtrip"
# TypeError: cannot create weak reference to 'str' object
"test_save_pretrained_round_trip_via_disk"
# [Errno 1094995529] Invalid data found when processing input: '/build/source/tests/artifacts/encoded_videos/clip_4frames.mp4'
"test_depth_encoder_config_sets_is_depth_map_true"
"test_geometry_preserved"
"test_merges_encoder_config_as_video_prefixed_entries"
"test_reencode_video"
"test_reencode_video_trim_window"
"test_returns_all_stream_fields"
"test_stream_derived_keys_take_precedence_over_config"
"test_three_clips_frame_count"
"test_two_clips_frame_count"
# RuntimeError: OpenCVCamera(/build/source/tests/artifacts/cameras/image_480x270.png) read failed
"test_async_read"
"test_fourcc_with_camer"
"test_read"
"test_rotation"
]
++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
# RuntimeError: Failed to initialize cpuinfo!
"test_complementary_data_float_dtype_conversion"
"test_float_dtype_conversion"
"test_float_dtype_with_mixed_tensors"
# AssertionError: assert 'f7566ea964d1...371ef6c23b64f' == 'c17e47af68a8...095018561ae9e'
"test_groot_n1_7_eval_image_transform_matches_oss_reference"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# gRPC fails to connect on loopback in sandbox despite __darwinAllowLocalNetworking
"test_end_to_end_interactions_flow"
"test_end_to_end_parameters_flow"
"test_end_to_end_transitions_flow"
];
disabledTestPaths = [
# Require internet access
# httpx.ConnectError: [Errno -3] Temporary failure in name resolution
"tests/policies/test_relative_actions.py"
# Sometimes hang forever
"tests/policies/rtc/test_modeling_rtc.py"
];
__darwinAllowLocalNetworking = true;
meta = {
description = "Making AI for Robotics more accessible with end-to-end learning";
homepage = "https://github.com/huggingface/lerobot";
changelog = "https://github.com/huggingface/lerobot/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ GaetanLepage ];
};
})