lecop 0.1.0__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 (72) hide show
  1. lecop-0.1.0/.gitignore +2 -0
  2. lecop-0.1.0/CHANGELOG.md +8 -0
  3. lecop-0.1.0/CONTRIBUTING.md +54 -0
  4. lecop-0.1.0/Cargo.lock +1820 -0
  5. lecop-0.1.0/Cargo.toml +55 -0
  6. lecop-0.1.0/LICENSE-APACHE +202 -0
  7. lecop-0.1.0/LICENSE-MIT +21 -0
  8. lecop-0.1.0/PKG-INFO +98 -0
  9. lecop-0.1.0/README.md +81 -0
  10. lecop-0.1.0/STYLE_GUIDE.md +45 -0
  11. lecop-0.1.0/assets/logo.png +0 -0
  12. lecop-0.1.0/assets/social-preview.png +0 -0
  13. lecop-0.1.0/benches/mp4.rs +36 -0
  14. lecop-0.1.0/benches/validate.rs +59 -0
  15. lecop-0.1.0/dist-workspace.toml +21 -0
  16. lecop-0.1.0/docs/checks.md +80 -0
  17. lecop-0.1.0/docs/comparison.md +87 -0
  18. lecop-0.1.0/docs/usage.md +110 -0
  19. lecop-0.1.0/pyproject.toml +22 -0
  20. lecop-0.1.0/scripts/compare.py +144 -0
  21. lecop-0.1.0/scripts/datasets.tsv +27 -0
  22. lecop-0.1.0/scripts/fetch-datasets.sh +29 -0
  23. lecop-0.1.0/scripts/golden_map.tsv +34 -0
  24. lecop-0.1.0/scripts/goldens.py +135 -0
  25. lecop-0.1.0/src/config.rs +207 -0
  26. lecop-0.1.0/src/dataset.rs +355 -0
  27. lecop-0.1.0/src/decode.rs +488 -0
  28. lecop-0.1.0/src/discover.rs +31 -0
  29. lecop-0.1.0/src/fix.rs +213 -0
  30. lecop-0.1.0/src/lib.rs +9 -0
  31. lecop-0.1.0/src/main.rs +348 -0
  32. lecop-0.1.0/src/mp4.rs +490 -0
  33. lecop-0.1.0/src/report.rs +288 -0
  34. lecop-0.1.0/src/validate/episodes.rs +538 -0
  35. lecop-0.1.0/src/validate/jump_shift.rs +375 -0
  36. lecop-0.1.0/src/validate/limits.rs +144 -0
  37. lecop-0.1.0/src/validate/mod.rs +515 -0
  38. lecop-0.1.0/src/validate/numeric.rs +200 -0
  39. lecop-0.1.0/src/validate/portability.rs +138 -0
  40. lecop-0.1.0/src/validate/schema.rs +243 -0
  41. lecop-0.1.0/src/validate/stats.rs +423 -0
  42. lecop-0.1.0/src/validate/tasks.rs +110 -0
  43. lecop-0.1.0/src/validate/video.rs +252 -0
  44. lecop-0.1.0/tests/cli.rs +456 -0
  45. lecop-0.1.0/tests/common/h264.rs +177 -0
  46. lecop-0.1.0/tests/common/mod.rs +162 -0
  47. lecop-0.1.0/tests/common/synth.rs +254 -0
  48. lecop-0.1.0/tests/config.rs +169 -0
  49. lecop-0.1.0/tests/decode.rs +135 -0
  50. lecop-0.1.0/tests/discover.rs +56 -0
  51. lecop-0.1.0/tests/fixtures/av1_60_frames.mp4 +0 -0
  52. lecop-0.1.0/tests/goldens/aloha_sim_insertion_human.json +60 -0
  53. lecop-0.1.0/tests/goldens/aloha_sim_transfer_cube_human.json +60 -0
  54. lecop-0.1.0/tests/goldens/c_black-stressball-tutorial_20261107_222510.json +119 -0
  55. lecop-0.1.0/tests/goldens/c_careattrs_mug2v2.json +80 -0
  56. lecop-0.1.0/tests/goldens/c_d3il_avoiding_vision_224.json +300 -0
  57. lecop-0.1.0/tests/goldens/c_piperx-two-color-block-sorting.json +35 -0
  58. lecop-0.1.0/tests/goldens/c_so100_press_red_button.json +290 -0
  59. lecop-0.1.0/tests/goldens/c_so101_block_box_50episodes_final_20261107_190045.json +134 -0
  60. lecop-0.1.0/tests/goldens/c_so101_my_task_50ep_20261107_20261107_191948.json +129 -0
  61. lecop-0.1.0/tests/goldens/c_so101_pill_sorting_medoc.json +29 -0
  62. lecop-0.1.0/tests/goldens/pusht.json +125 -0
  63. lecop-0.1.0/tests/goldens/svla_so101_pickplace.json +134 -0
  64. lecop-0.1.0/tests/goldens/v3_aloha_sim_insertion_human.json +49 -0
  65. lecop-0.1.0/tests/goldens/v3_aloha_sim_transfer_cube_human.json +49 -0
  66. lecop-0.1.0/tests/goldens/v3_pusht.json +115 -0
  67. lecop-0.1.0/tests/goldens/xarm_lift_medium.json +29 -0
  68. lecop-0.1.0/tests/goldens.rs +176 -0
  69. lecop-0.1.0/tests/mp4.rs +116 -0
  70. lecop-0.1.0/tests/real_datasets.rs +64 -0
  71. lecop-0.1.0/tests/report.rs +235 -0
  72. lecop-0.1.0/tests/validate.rs +1980 -0
lecop-0.1.0/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ /target
2
+ /datasets
@@ -0,0 +1,8 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0
4
+
5
+ First release. Health checks for LeRobot v2.x and v3.x datasets: metadata and totals, timestamps, files, video
6
+ container metadata, action and state signals, statistics, and portability. Output as text, full, JSON or GitHub
7
+ annotations; `lecop.toml` to ignore, re-grade or limit findings; `--fix` for the totals in `meta/info.json`;
8
+ opt-in video decoding with `--decode`. See [docs/checks.md](docs/checks.md) for every issue code.
@@ -0,0 +1,54 @@
1
+ # Contributing
2
+
3
+ Thanks for helping. lecop is a fast, single-binary health checker for LeRobot datasets; speed and zero setup
4
+ matter more than the number of checks.
5
+
6
+ ## Set up
7
+
8
+ ```bash
9
+ cargo build
10
+ cargo test
11
+ ```
12
+
13
+ Before opening a PR, all of these must pass (CI runs them too):
14
+
15
+ ```bash
16
+ cargo fmt --check
17
+ cargo clippy --all-targets -- -D warnings
18
+ cargo test
19
+ ```
20
+
21
+ If you touch a hot path, run `cargo bench` and put the before and after numbers in the PR description
22
+ (`cargo bench -- --save-baseline before`, change, `cargo bench -- --baseline before`).
23
+
24
+ ## Finding work
25
+
26
+ Open issues carry one priority label (`P0` highest to `P3`) and one type label. Pick the highest priority you
27
+ can. If you find a new piece of work, open an issue first with a `Priority: Pn, because ...` line.
28
+
29
+ ## Making a change
30
+
31
+ 1. Branch from `main`.
32
+ 2. For a bug: write a failing test first, confirm it fails for the right reason, then fix it.
33
+ 3. Add tests with the change. Synthetic datasets built in a temp dir are preferred over real ones.
34
+ 4. Update `README.md` and `docs/` if you add a command, option, check, issue code or supported version.
35
+ 5. Open a PR describing what failed or changed and why, with the evidence. Decisions, plans and measurements
36
+ that explain the change go in a comment on the issue, not in a file in the repo.
37
+
38
+ Style is in [STYLE_GUIDE.md](STYLE_GUIDE.md).
39
+
40
+ ## Real datasets
41
+
42
+ Real data lives in `datasets/` (git-ignored, never commit it). `scripts/fetch-datasets.sh` lists what is
43
+ missing and `--yes` downloads it; `scripts/datasets.tsv` pins each dataset and the counts lecop should report.
44
+ When a check changes what a dataset reports, update the counts in the same commit. A new check should be
45
+ confirmed on real data and with a mutation of a copy (for example change `fps` in `info.json` and expect
46
+ `timestamp_drift`), not only on synthetic fixtures.
47
+
48
+ ## Security
49
+
50
+ Never commit tokens, `.env` files or credentials; CI scans for secrets.
51
+
52
+ ## License
53
+
54
+ By contributing you agree your work is licensed under the project's MIT OR Apache-2.0 terms.