paces 0.0.12__tar.gz → 0.0.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 (48) hide show
  1. {paces-0.0.12 → paces-0.0.13}/PKG-INFO +5 -5
  2. {paces-0.0.12 → paces-0.0.13}/pyproject.toml +5 -5
  3. {paces-0.0.12 → paces-0.0.13}/tests/data/body_schemas.json +8 -0
  4. {paces-0.0.12 → paces-0.0.13}/tests/test_evidence_schemas.py +6 -0
  5. {paces-0.0.12 → paces-0.0.13}/.gitignore +0 -0
  6. {paces-0.0.12 → paces-0.0.13}/LICENSE +0 -0
  7. {paces-0.0.12 → paces-0.0.13}/README.md +0 -0
  8. {paces-0.0.12 → paces-0.0.13}/docs/README.md +0 -0
  9. {paces-0.0.12 → paces-0.0.13}/docs/alignment/README.md +0 -0
  10. {paces-0.0.12 → paces-0.0.13}/docs/poc-reference/README.md +0 -0
  11. {paces-0.0.12 → paces-0.0.13}/docs/poc-reference/artifacts/clips.json +0 -0
  12. {paces-0.0.12 → paces-0.0.13}/paces/__init__.py +0 -0
  13. {paces-0.0.12 → paces-0.0.13}/paces/__main__.py +0 -0
  14. {paces-0.0.12 → paces-0.0.13}/paces/bodies/__init__.py +0 -0
  15. {paces-0.0.12 → paces-0.0.13}/paces/bodies/_base.py +0 -0
  16. {paces-0.0.12 → paces-0.0.13}/paces/bodies/derivation.py +0 -0
  17. {paces-0.0.12 → paces-0.0.13}/paces/bodies/document.py +0 -0
  18. {paces-0.0.12 → paces-0.0.13}/paces/bodies/signal.py +0 -0
  19. {paces-0.0.12 → paces-0.0.13}/paces/bodies/step.py +0 -0
  20. {paces-0.0.12 → paces-0.0.13}/paces/derivation.py +0 -0
  21. {paces-0.0.12 → paces-0.0.13}/paces/edits.py +0 -0
  22. {paces-0.0.12 → paces-0.0.13}/paces/evidence.py +0 -0
  23. {paces-0.0.12 → paces-0.0.13}/paces/excerpts.py +0 -0
  24. {paces-0.0.12 → paces-0.0.13}/paces/measure.py +0 -0
  25. {paces-0.0.12 → paces-0.0.13}/paces/model.py +0 -0
  26. {paces-0.0.12 → paces-0.0.13}/paces/pose.py +0 -0
  27. {paces-0.0.12 → paces-0.0.13}/paces/projection.py +0 -0
  28. {paces-0.0.12 → paces-0.0.13}/paces/render.py +0 -0
  29. {paces-0.0.12 → paces-0.0.13}/paces/segmenters.py +0 -0
  30. {paces-0.0.12 → paces-0.0.13}/paces/tools.py +0 -0
  31. {paces-0.0.12 → paces-0.0.13}/tests/audio_synth.py +0 -0
  32. {paces-0.0.12 → paces-0.0.13}/tests/data/routine.json +0 -0
  33. {paces-0.0.12 → paces-0.0.13}/tests/poc_fixture.py +0 -0
  34. {paces-0.0.12 → paces-0.0.13}/tests/test_chapters.py +0 -0
  35. {paces-0.0.12 → paces-0.0.13}/tests/test_cli_surface.py +0 -0
  36. {paces-0.0.12 → paces-0.0.13}/tests/test_derivation.py +0 -0
  37. {paces-0.0.12 → paces-0.0.13}/tests/test_edit_protection_residuals.py +0 -0
  38. {paces-0.0.12 → paces-0.0.13}/tests/test_edits.py +0 -0
  39. {paces-0.0.12 → paces-0.0.13}/tests/test_evidence.py +0 -0
  40. {paces-0.0.12 → paces-0.0.13}/tests/test_excerpts.py +0 -0
  41. {paces-0.0.12 → paces-0.0.13}/tests/test_measure.py +0 -0
  42. {paces-0.0.12 → paces-0.0.13}/tests/test_pose.py +0 -0
  43. {paces-0.0.12 → paces-0.0.13}/tests/test_render_media.py +0 -0
  44. {paces-0.0.12 → paces-0.0.13}/tests/test_roundtrip_poc.py +0 -0
  45. {paces-0.0.12 → paces-0.0.13}/tests/test_segment.py +0 -0
  46. {paces-0.0.12 → paces-0.0.13}/tests/test_smoke.py +0 -0
  47. {paces-0.0.12 → paces-0.0.13}/tests/test_vertical_slice.py +0 -0
  48. {paces-0.0.12 → paces-0.0.13}/tests/video_synth.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: paces
3
- Version: 0.0.12
3
+ Version: 0.0.13
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
@@ -20,8 +20,8 @@ Requires-Dist: argcomplete>=3; extra == 'cli'
20
20
  Requires-Dist: cw<0.2,>=0.1.1; extra == 'cli'
21
21
  Provides-Extra: dev
22
22
  Requires-Dist: cw<0.2,>=0.1.1; extra == 'dev'
23
- Requires-Dist: lacing>=0.0.40; extra == 'dev'
24
- Requires-Dist: mixing[audio,beats]>=0.0.39; extra == 'dev'
23
+ Requires-Dist: lacing>=0.0.54; extra == 'dev'
24
+ Requires-Dist: mixing[audio,beats,media]>=0.0.39; extra == 'dev'
25
25
  Requires-Dist: numba>=0.59; extra == 'dev'
26
26
  Requires-Dist: pytest-cov>=4.0; extra == 'dev'
27
27
  Requires-Dist: pytest>=7.0; extra == 'dev'
@@ -31,9 +31,9 @@ Provides-Extra: docs
31
31
  Requires-Dist: sphinx-rtd-theme>=1.0; extra == 'docs'
32
32
  Requires-Dist: sphinx>=6.0; extra == 'docs'
33
33
  Provides-Extra: lacing
34
- Requires-Dist: lacing>=0.0.40; extra == 'lacing'
34
+ Requires-Dist: lacing>=0.0.54; extra == 'lacing'
35
35
  Provides-Extra: media
36
- Requires-Dist: mixing>=0.0.39; extra == 'media'
36
+ Requires-Dist: mixing[media]>=0.0.39; extra == 'media'
37
37
  Provides-Extra: pose
38
38
  Requires-Dist: onnxruntime; extra == 'pose'
39
39
  Requires-Dist: rtmlib<0.1,>=0.0.16; extra == 'pose'
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
6
6
 
7
7
  [project]
8
8
  name = "paces"
9
- version = "0.0.12"
9
+ version = "0.0.13"
10
10
  description = "Turn instructional media into structured, interactive learning material"
11
11
  readme = "README.md"
12
12
  license = "MIT"
@@ -57,7 +57,7 @@ media = [
57
57
  # all run on the pip-bundled imageio-ffmpeg binary — no system ffmpeg.
58
58
  # Floor 0.0.39: make_gif, crop_box= and path-accepting
59
59
  # get_video_dimensions ship there.
60
- "mixing>=0.0.39",
60
+ "mixing[media]>=0.0.39",
61
61
  ]
62
62
  # The pointable subject_locator (issue #15, ADR-0005 §3): rtmlib pose boxes,
63
63
  # reached through `paces.pose:rtmlib_pose`. rtmlib is Apache-2.0 (a pure-Python
@@ -107,7 +107,7 @@ pose = [
107
107
  # unknown keys — both of which this layer's round trip relies on to fail loudly
108
108
  # instead of silently normalising.
109
109
  lacing = [
110
- "lacing>=0.0.40",
110
+ "lacing>=0.0.54",
111
111
  ]
112
112
  dev = [
113
113
  "pytest>=7.0",
@@ -120,11 +120,11 @@ dev = [
120
120
  # synthesized audio; mirrored with [audio] so they run rather than skip.
121
121
  # The derivation tests do the same on synthetic video — mirrored with
122
122
  # [media] (the >=0.0.39 floor wins over [audio]'s >=0.0.36).
123
- "mixing[beats,audio]>=0.0.39",
123
+ "mixing[beats,audio,media]>=0.0.39",
124
124
  "numba>=0.59",
125
125
  # The evidence-layer tests run against real, dict-backed lacing stores —
126
126
  # mirrored with [lacing] so they run rather than skip.
127
- "lacing>=0.0.40",
127
+ "lacing>=0.0.54",
128
128
  # tests/test_pose.py reads pyproject.toml to guard the licence perimeter;
129
129
  # stdlib tomllib is 3.11+, and a skipped guard guards nothing.
130
130
  "tomli>=2.0; python_version < '3.11'",
@@ -27,6 +27,7 @@
27
27
  },
28
28
  "attrs": {
29
29
  "additionalProperties": true,
30
+ "default": {},
30
31
  "description": "Open bag.",
31
32
  "title": "Attrs",
32
33
  "type": "object"
@@ -146,6 +147,7 @@
146
147
  "properties": {
147
148
  "attrs": {
148
149
  "additionalProperties": true,
150
+ "default": {},
149
151
  "description": "Namespaced open bag, as on the document.",
150
152
  "title": "Attrs",
151
153
  "type": "object"
@@ -175,6 +177,7 @@
175
177
  "type": "string"
176
178
  },
177
179
  "flags": {
180
+ "default": [],
178
181
  "description": "The run's honesty flags (``Segmentation.flags``) — 'naming-abstained', 'origin-estimated: ...', and friends. Evidence about the run, never projected into the document.",
179
182
  "items": {
180
183
  "type": "string"
@@ -389,6 +392,7 @@
389
392
  "pattern": "^-?\\d+(\\.\\d+)?$",
390
393
  "type": "string"
391
394
  },
395
+ "default": {},
392
396
  "description": "Policy parameters the box was resolved under (aspect, pad). A change here re-locates an unlocked entry.",
393
397
  "title": "Params",
394
398
  "type": "object"
@@ -460,6 +464,7 @@
460
464
  },
461
465
  "attrs": {
462
466
  "additionalProperties": true,
467
+ "default": {},
463
468
  "description": "Open bag.",
464
469
  "title": "Attrs",
465
470
  "type": "object"
@@ -546,6 +551,7 @@
546
551
  "properties": {
547
552
  "attrs": {
548
553
  "additionalProperties": true,
554
+ "default": {},
549
555
  "description": "Namespaced open bag, as on the step.",
550
556
  "title": "Attrs",
551
557
  "type": "object"
@@ -610,6 +616,7 @@
610
616
  },
611
617
  "span_attrs": {
612
618
  "additionalProperties": true,
619
+ "default": {},
613
620
  "description": "Open bag on the span.",
614
621
  "title": "Span Attrs",
615
622
  "type": "object"
@@ -712,6 +719,7 @@
712
719
  "type": "string"
713
720
  },
714
721
  "tags": {
722
+ "default": [],
715
723
  "description": "Open tag vocabulary.",
716
724
  "items": {
717
725
  "type": "string"
@@ -12,6 +12,12 @@ halves of that claim:
12
12
  migration; a *changed* one is a wire break for every already-written store,
13
13
  and this test is what makes that a decision rather than an accident.
14
14
 
15
+ Annotation-only keywords a lacing upgrade starts exporting (``default``,
16
+ ``description``) may be re-snapshotted — they validate nothing, so no stored
17
+ body changes meaning (lacing 0.0.54 added the ``default_factory`` defaults;
18
+ the floor in pyproject follows). A change to a field, type or ``required`` is
19
+ the wire break and needs ``/v2``.
20
+
15
21
  Regenerating the snapshot deliberately::
16
22
 
17
23
  python -m tests.test_evidence_schemas # writes tests/data/body_schemas.json
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes