paces 0.0.15__tar.gz → 0.0.16__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 (53) hide show
  1. {paces-0.0.15 → paces-0.0.16}/PKG-INFO +2 -1
  2. {paces-0.0.15 → paces-0.0.16}/README.md +1 -0
  3. paces-0.0.16/paces/corrections.py +702 -0
  4. {paces-0.0.15 → paces-0.0.16}/paces/segmenters.py +40 -1
  5. {paces-0.0.15 → paces-0.0.16}/paces/tools.py +6 -1
  6. {paces-0.0.15 → paces-0.0.16}/pyproject.toml +1 -1
  7. paces-0.0.16/tests/test_corrections.py +592 -0
  8. {paces-0.0.15 → paces-0.0.16}/.gitignore +0 -0
  9. {paces-0.0.15 → paces-0.0.16}/LICENSE +0 -0
  10. {paces-0.0.15 → paces-0.0.16}/docs/README.md +0 -0
  11. {paces-0.0.15 → paces-0.0.16}/docs/alignment/README.md +0 -0
  12. {paces-0.0.15 → paces-0.0.16}/docs/poc-reference/README.md +0 -0
  13. {paces-0.0.15 → paces-0.0.16}/docs/poc-reference/artifacts/clips.json +0 -0
  14. {paces-0.0.15 → paces-0.0.16}/paces/__init__.py +0 -0
  15. {paces-0.0.15 → paces-0.0.16}/paces/__main__.py +0 -0
  16. {paces-0.0.15 → paces-0.0.16}/paces/bodies/__init__.py +0 -0
  17. {paces-0.0.15 → paces-0.0.16}/paces/bodies/_base.py +0 -0
  18. {paces-0.0.15 → paces-0.0.16}/paces/bodies/derivation.py +0 -0
  19. {paces-0.0.15 → paces-0.0.16}/paces/bodies/document.py +0 -0
  20. {paces-0.0.15 → paces-0.0.16}/paces/bodies/signal.py +0 -0
  21. {paces-0.0.15 → paces-0.0.16}/paces/bodies/step.py +0 -0
  22. {paces-0.0.15 → paces-0.0.16}/paces/cues.py +0 -0
  23. {paces-0.0.15 → paces-0.0.16}/paces/derivation.py +0 -0
  24. {paces-0.0.15 → paces-0.0.16}/paces/edits.py +0 -0
  25. {paces-0.0.15 → paces-0.0.16}/paces/evidence.py +0 -0
  26. {paces-0.0.15 → paces-0.0.16}/paces/excerpts.py +0 -0
  27. {paces-0.0.15 → paces-0.0.16}/paces/measure.py +0 -0
  28. {paces-0.0.15 → paces-0.0.16}/paces/model.py +0 -0
  29. {paces-0.0.15 → paces-0.0.16}/paces/pose.py +0 -0
  30. {paces-0.0.15 → paces-0.0.16}/paces/projection.py +0 -0
  31. {paces-0.0.15 → paces-0.0.16}/paces/render.py +0 -0
  32. {paces-0.0.15 → paces-0.0.16}/paces/timed_text.py +0 -0
  33. {paces-0.0.15 → paces-0.0.16}/tests/audio_synth.py +0 -0
  34. {paces-0.0.15 → paces-0.0.16}/tests/data/body_schemas.json +0 -0
  35. {paces-0.0.15 → paces-0.0.16}/tests/data/routine.json +0 -0
  36. {paces-0.0.15 → paces-0.0.16}/tests/poc_fixture.py +0 -0
  37. {paces-0.0.15 → paces-0.0.16}/tests/test_chapters.py +0 -0
  38. {paces-0.0.15 → paces-0.0.16}/tests/test_cli_surface.py +0 -0
  39. {paces-0.0.15 → paces-0.0.16}/tests/test_cues.py +0 -0
  40. {paces-0.0.15 → paces-0.0.16}/tests/test_derivation.py +0 -0
  41. {paces-0.0.15 → paces-0.0.16}/tests/test_edit_protection_residuals.py +0 -0
  42. {paces-0.0.15 → paces-0.0.16}/tests/test_edits.py +0 -0
  43. {paces-0.0.15 → paces-0.0.16}/tests/test_evidence.py +0 -0
  44. {paces-0.0.15 → paces-0.0.16}/tests/test_evidence_schemas.py +0 -0
  45. {paces-0.0.15 → paces-0.0.16}/tests/test_excerpts.py +0 -0
  46. {paces-0.0.15 → paces-0.0.16}/tests/test_measure.py +0 -0
  47. {paces-0.0.15 → paces-0.0.16}/tests/test_pose.py +0 -0
  48. {paces-0.0.15 → paces-0.0.16}/tests/test_render_media.py +0 -0
  49. {paces-0.0.15 → paces-0.0.16}/tests/test_roundtrip_poc.py +0 -0
  50. {paces-0.0.15 → paces-0.0.16}/tests/test_segment.py +0 -0
  51. {paces-0.0.15 → paces-0.0.16}/tests/test_smoke.py +0 -0
  52. {paces-0.0.15 → paces-0.0.16}/tests/test_vertical_slice.py +0 -0
  53. {paces-0.0.15 → paces-0.0.16}/tests/video_synth.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: paces
3
- Version: 0.0.15
3
+ Version: 0.0.16
4
4
  Summary: Turn instructional media into structured, interactive learning material
5
5
  Project-URL: Homepage, https://github.com/thorwhalen/paces
6
6
  Project-URL: Repository, https://github.com/thorwhalen/paces
@@ -219,6 +219,7 @@ decisions, not measurements. Full table and rationale in
219
219
  |---|---|
220
220
  | cut media into steps | `segment(media, steps=..., grid=...)` → `Segmentation` |
221
221
  | explicit/human boundaries | `segment(media, boundaries=[...], steps=[names])` |
222
+ | keep a human's corrections across re-runs | `segment(..., corrections=[split(t), merge(t), pin((s, e)), forbid(t, (s, e)), absent(t)])` — from `paces.corrections`; a time-keyed log, replayed as constraints, anything it could not honour flagged |
222
223
  | use the video's own chapters | `segment(media, metadata=<yt-dlp info.json>)` |
223
224
  | measure the grid from the media | `segment(local_media, steps=[(name, counts), ...])` — no grid needed; tempo + structure measured, origin estimated and flagged (`pip install paces[audio]`) |
224
225
  | protect edits from regeneration | `apply_edits(doc, patches, by="user:you")` + `merge_regenerated(committed, fresh)` |
@@ -178,6 +178,7 @@ decisions, not measurements. Full table and rationale in
178
178
  |---|---|
179
179
  | cut media into steps | `segment(media, steps=..., grid=...)` → `Segmentation` |
180
180
  | explicit/human boundaries | `segment(media, boundaries=[...], steps=[names])` |
181
+ | keep a human's corrections across re-runs | `segment(..., corrections=[split(t), merge(t), pin((s, e)), forbid(t, (s, e)), absent(t)])` — from `paces.corrections`; a time-keyed log, replayed as constraints, anything it could not honour flagged |
181
182
  | use the video's own chapters | `segment(media, metadata=<yt-dlp info.json>)` |
182
183
  | measure the grid from the media | `segment(local_media, steps=[(name, counts), ...])` — no grid needed; tempo + structure measured, origin estimated and flagged (`pip install paces[audio]`) |
183
184
  | protect edits from regeneration | `apply_edits(doc, patches, by="user:you")` + `merge_regenerated(committed, fresh)` |