robocandywrapper 0.2.12__tar.gz → 0.2.13__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.
Files changed (35) hide show
  1. {robocandywrapper-0.2.12/robocandywrapper.egg-info → robocandywrapper-0.2.13}/PKG-INFO +2 -2
  2. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/pyproject.toml +3 -3
  3. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/__init__.py +1 -1
  4. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/wrapper.py +12 -9
  5. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13/robocandywrapper.egg-info}/PKG-INFO +2 -2
  6. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/setup.py +1 -1
  7. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/LICENSE +0 -0
  8. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/MANIFEST.in +0 -0
  9. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/README.md +0 -0
  10. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/constants.py +0 -0
  11. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/dataformats/__init__.py +0 -0
  12. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/dataformats/lerobot_21/__init__.py +0 -0
  13. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/dataformats/lerobot_21/convert_v20_to_v21.py +0 -0
  14. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/dataformats/lerobot_21/dataset.py +0 -0
  15. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/dataformats/lerobot_21/utils.py +0 -0
  16. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/factory.py +0 -0
  17. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/metadata_view.py +0 -0
  18. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/plugin.py +0 -0
  19. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/plugins/__init__.py +0 -0
  20. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/plugins/affordance.py +0 -0
  21. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/plugins/control_mode.py +0 -0
  22. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/plugins/episode_outcome.py +0 -0
  23. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/plugins/subtask.py +0 -0
  24. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/samplers/__init__.py +0 -0
  25. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/samplers/config.py +0 -0
  26. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/samplers/factory.py +0 -0
  27. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/samplers/weighted.py +0 -0
  28. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper/utils.py +0 -0
  29. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper.egg-info/SOURCES.txt +0 -0
  30. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper.egg-info/dependency_links.txt +0 -0
  31. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper.egg-info/requires.txt +1 -1
  32. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/robocandywrapper.egg-info/top_level.txt +0 -0
  33. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/setup.cfg +0 -0
  34. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/tests/test_dataset_weights_integration.py +0 -0
  35. {robocandywrapper-0.2.12 → robocandywrapper-0.2.13}/tests/test_key_rename_stats.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robocandywrapper
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: Sweet wrappers for extending and remixing LeRobot Datasets
5
5
  Author: RoboCandyWrapper Contributors
6
6
  License: MIT License
@@ -42,7 +42,6 @@ Requires-Dist: numpy>=1.20.0
42
42
  Requires-Dist: torch>=2.0.0
43
43
  Requires-Dist: lerobot<0.5,>=0.4
44
44
  Requires-Dist: pandas>=1.3.0
45
- Requires-Dist: lerobot-policy-diffusion-motion-primitives
46
45
  Requires-Dist: motion-primitives
47
46
  Requires-Dist: rewact_tools
48
47
  Provides-Extra: dev
@@ -50,6 +49,7 @@ Requires-Dist: pytest>=7.0.0; extra == "dev"
50
49
  Requires-Dist: black>=22.0.0; extra == "dev"
51
50
  Requires-Dist: isort>=5.10.0; extra == "dev"
52
51
  Requires-Dist: flake8>=4.0.0; extra == "dev"
52
+ Requires-Dist: lerobot-policy-diffusion-motion-primitives; extra == "dev"
53
53
  Dynamic: license-file
54
54
  Dynamic: requires-python
55
55
 
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "robocandywrapper"
7
- version = "0.2.12"
7
+ version = "0.2.13"
8
8
  description = "Sweet wrappers for extending and remixing LeRobot Datasets"
9
9
  readme = "README.md"
10
- requires-python = ">=3.10"
10
+ requires-python = ">=3.10,<3.11"
11
11
  license = {file = "LICENSE"}
12
12
  authors = [
13
13
  {name = "RoboCandyWrapper Contributors"}
@@ -27,7 +27,6 @@ dependencies = [
27
27
  "torch>=2.0.0",
28
28
  "lerobot>=0.4,<0.5",
29
29
  "pandas>=1.3.0",
30
- "lerobot-policy-diffusion-motion-primitives",
31
30
  "motion-primitives",
32
31
  "rewact_tools",
33
32
  ]
@@ -38,6 +37,7 @@ dev = [
38
37
  "black>=22.0.0",
39
38
  "isort>=5.10.0",
40
39
  "flake8>=4.0.0",
40
+ "lerobot-policy-diffusion-motion-primitives"
41
41
  ]
42
42
 
43
43
  [project.urls]
@@ -18,7 +18,7 @@ from robocandywrapper.constants import (
18
18
  MOTION_PRIMITIVE_PLUGIN_NAME,
19
19
  )
20
20
 
21
- __version__ = "0.2.12"
21
+ __version__ = "0.2.13"
22
22
 
23
23
  __all__ = [
24
24
  "DatasetPlugin",
@@ -388,33 +388,36 @@ class WrappedRobotDataset(torch.utils.data.Dataset):
388
388
  dataset_renames = []
389
389
  for dataset in self._datasets:
390
390
  ds_renames = {}
391
- ds_keys = set(dataset.features)
391
+ # Track available keys as renames are applied: start with original
392
+ # features, remove sources that are renamed away, add targets that
393
+ # are renamed into. This allows transitionary renames like
394
+ # action → action.pos then action.eef_pose → action.
395
+ available_keys = set(dataset.features)
392
396
 
393
397
  for source, target in self.key_rename_map.items():
394
- if source in ds_keys:
395
- if target in ds_keys:
396
- # Target already exists in this dataset - skip rename to avoid conflict
398
+ if source in available_keys:
399
+ if target in available_keys:
397
400
  logging.warning(
398
401
  f"Skipping rename '{source}' -> '{target}' for {dataset.repo_id}: "
399
402
  f"target key already exists in dataset"
400
403
  )
401
404
  else:
402
405
  ds_renames[source] = target
406
+ available_keys.discard(source)
407
+ available_keys.add(target)
403
408
 
404
- # Also handle the _is_pad suffix that LeRobot adds for delta_timestamps
405
- # These keys are dynamically added during __getitem__ and may not be in
406
- # dataset.features, but we still want to rename them consistently
407
409
  is_pad_source = f"{source}_is_pad"
408
410
  is_pad_target = f"{target}_is_pad"
409
411
 
410
- # Check for conflicts on the _is_pad key as well
411
- if is_pad_target in ds_keys:
412
+ if is_pad_target in available_keys:
412
413
  logging.warning(
413
414
  f"Skipping derived rename '{is_pad_source}' -> '{is_pad_target}' "
414
415
  f"for {dataset.repo_id}: target key already exists in dataset"
415
416
  )
416
417
  else:
417
418
  ds_renames[is_pad_source] = is_pad_target
419
+ available_keys.discard(is_pad_source)
420
+ available_keys.add(is_pad_target)
418
421
 
419
422
  dataset_renames.append(ds_renames)
420
423
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robocandywrapper
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: Sweet wrappers for extending and remixing LeRobot Datasets
5
5
  Author: RoboCandyWrapper Contributors
6
6
  License: MIT License
@@ -42,7 +42,6 @@ Requires-Dist: numpy>=1.20.0
42
42
  Requires-Dist: torch>=2.0.0
43
43
  Requires-Dist: lerobot<0.5,>=0.4
44
44
  Requires-Dist: pandas>=1.3.0
45
- Requires-Dist: lerobot-policy-diffusion-motion-primitives
46
45
  Requires-Dist: motion-primitives
47
46
  Requires-Dist: rewact_tools
48
47
  Provides-Extra: dev
@@ -50,6 +49,7 @@ Requires-Dist: pytest>=7.0.0; extra == "dev"
50
49
  Requires-Dist: black>=22.0.0; extra == "dev"
51
50
  Requires-Dist: isort>=5.10.0; extra == "dev"
52
51
  Requires-Dist: flake8>=4.0.0; extra == "dev"
52
+ Requires-Dist: lerobot-policy-diffusion-motion-primitives; extra == "dev"
53
53
  Dynamic: license-file
54
54
  Dynamic: requires-python
55
55
 
@@ -9,7 +9,7 @@ long_description = readme_file.read_text(encoding="utf-8") if readme_file.exists
9
9
 
10
10
  setup(
11
11
  name="robocandywrapper",
12
- version="0.2.12",
12
+ version="0.2.13",
13
13
  description="Sweet wrappers for extending and remixing LeRobot Datasets",
14
14
  long_description=long_description,
15
15
  long_description_content_type="text/markdown",
@@ -2,7 +2,6 @@ numpy>=1.20.0
2
2
  torch>=2.0.0
3
3
  lerobot<0.5,>=0.4
4
4
  pandas>=1.3.0
5
- lerobot-policy-diffusion-motion-primitives
6
5
  motion-primitives
7
6
  rewact_tools
8
7
 
@@ -11,3 +10,4 @@ pytest>=7.0.0
11
10
  black>=22.0.0
12
11
  isort>=5.10.0
13
12
  flake8>=4.0.0
13
+ lerobot-policy-diffusion-motion-primitives