tiergraph 0.2.2__tar.gz → 0.2.3__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.
- {tiergraph-0.2.2 → tiergraph-0.2.3}/CHANGELOG.md +35 -1
- {tiergraph-0.2.2 → tiergraph-0.2.3}/PKG-INFO +4 -5
- {tiergraph-0.2.2 → tiergraph-0.2.3}/README.md +3 -4
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/concepts.md +2 -2
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/manifest.json +4 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/reference/api.md +126 -7
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/reference/cli.md +1 -1
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/__init__.py +29 -1
- tiergraph-0.2.3/src/tiergraph/pathoutput.py +521 -0
- tiergraph-0.2.3/tests/test_pathoutput.py +864 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/.github/workflows/ci.yml +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/.github/workflows/publish.yml +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/.gitignore +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/.pre-commit-config.yaml +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/CONTRIBUTING.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/LICENSE +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/Makefile +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/RELEASING.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/SECURITY.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/corpus/accepted-documents.jsonl +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/denied-name-digests.txt +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/README.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/contributing-docs.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/format.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/getting-started.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/construction.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/folding.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/profiles.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/recognize-and-act.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/selection-and-traversal.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/serialization.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/span-views.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/docs/guide/timing.md +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/__init__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/caption_alignment.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/critical_path.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/json_document.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/mix_paths.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/mixing.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/examples/text_segmentation.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/pyproject.toml +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/schema/tiergraph.schema.json +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/schema/tiergraph.schema.sha256 +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/__init__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/capture_corpus.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/check_changelog_claims.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/check_documented.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/check_format_growth.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/check_format_semantics.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/check_reservations.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/check_tracked_clean.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/generate_docs.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/scripts/generate_schema.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/__main__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/action.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/build.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/cli/__init__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/clock.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/core.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/fold.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/grammar.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/inspect.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/machine.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/machine_codec.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/path.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/pathplan.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/profile.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/py.typed +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/rewrite.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/root.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/schema.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/selection.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/semiring.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/spanview.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/textgrid.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/traversal.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/value.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph/wire.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph_dot/__init__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/src/tiergraph_dot/py.typed +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/__init__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/__init__.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/action.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/declared_schema_codec_divergences.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/fold.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/kernel.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/machine.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/recognition.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/schema.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/schema_codec.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/selection.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/traversal.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/conformance/wire.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/fixtures/textgrid/integer-long.TextGrid +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/fixtures/textgrid/reference-long.TextGrid +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/fixtures/textgrid/reference-short.TextGrid +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/semiring_laws.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_action.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_alignment_witness.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_alternation_witness.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_boundary_witness.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_build.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_canonical_properties.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_capture_corpus.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_changelog_claims.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_cli.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_cli_envelope.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_clock.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_core.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_displacement.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_docs.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_dot.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_edit.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_examples.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_external_reference_witness.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_fold.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_fold_exactness.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_fold_witness.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_format_growth.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_format_semantics.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_gate_environment.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_grammar.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_inspect.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_machine.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_machine_codec.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_machine_decoders.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_mix_paths.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_mix_paths_render.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_ordered_containment.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_ordered_polyadic_traversal.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_package.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_path.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_path_alternation.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_pathplan.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_polyadic_relations.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_polyadic_view_reachability.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_profile.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_publishability_guards.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_refusal_order.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_reservation_register.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_rewrite.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_root.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_schema.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_schema_codec_conformance.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_selection.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_selection_semiring.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_semiring.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_semiring_law_discrimination.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_shipped_surface.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_spanview.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_text_domain.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_textgrid.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_traversal.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_value.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_value_embedding.py +0 -0
- {tiergraph-0.2.2 → tiergraph-0.2.3}/tests/test_wire.py +0 -0
|
@@ -7,6 +7,39 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.3] - 2026-09-15
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Added `Emissions` and `OutputPlan`, which pool the mass of complete paths by
|
|
15
|
+
the output string their items emit, over candidates the caller supplies, beside
|
|
16
|
+
`PathPlan` and without changing it. `OutputPlan.masses` returns `OutputMasses`:
|
|
17
|
+
each candidate's mass and the residual mass of every other output, computed in
|
|
18
|
+
the base algebra by one marginal pass rather than by subtraction, with the zero
|
|
19
|
+
mass reported rather than a distribution fabricated. Its `decided` and `tied`
|
|
20
|
+
certificates are available only under `LOG_PROBABILITY` and `COUNTING`; under
|
|
21
|
+
`LOG_PROBABILITY`, `tied` compares computed values, which an approximate
|
|
22
|
+
algebra can split for equal real masses. `conditioned` restricts the plan to
|
|
23
|
+
paths accepted as one candidate, refused only when no such path exists, and
|
|
24
|
+
`item_marginals` pools those conditioned marginals back to the base plan's
|
|
25
|
+
items as `OutputItemMarginals`. Declared roots and relation-instance
|
|
26
|
+
multiplicity carry into the derived plan. Duplicate or empty candidate sets,
|
|
27
|
+
invalid emissions, and noncommutative multiplication are refused. The pooled
|
|
28
|
+
best output over all strings is intractable in general, so the plan scores the
|
|
29
|
+
candidates it is given and reports the residual that bounds every other (#190).
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
|
|
33
|
+
- `FORMAT_VERSION` stays `"0.2.0"`: nothing in this line touches the wire
|
|
34
|
+
format, and `make format-growth` reports no break.
|
|
35
|
+
|
|
36
|
+
### Documentation
|
|
37
|
+
|
|
38
|
+
- The lineage now credits Sue Hertz for the Delta representation, which the
|
|
39
|
+
README and the concepts guide had attributed to Paul Hertz, and spells out
|
|
40
|
+
Heterogeneous Relation Graphs (HRGs) (#189). The README no longer claims that no
|
|
41
|
+
view can disagree with the store.
|
|
42
|
+
|
|
10
43
|
## [0.2.2] - 2026-09-14
|
|
11
44
|
|
|
12
45
|
### Added
|
|
@@ -962,7 +995,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
962
995
|
- TG-PATH canonical addressing for structural and durable items and boundaries, profile-owned alternatives, kind checks, and typed refusals with offender details.
|
|
963
996
|
- Canonical selection, bounded bipartite walks, ordered polyadic traversal, and ordered containment queries that preserve declared incidence and child order where applicable.
|
|
964
997
|
|
|
965
|
-
[Unreleased]: https://github.com/lenzo-ka/tiergraph/compare/v0.2.
|
|
998
|
+
[Unreleased]: https://github.com/lenzo-ka/tiergraph/compare/v0.2.3...HEAD
|
|
999
|
+
[0.2.3]: https://github.com/lenzo-ka/tiergraph/compare/v0.2.2...v0.2.3
|
|
966
1000
|
[0.2.2]: https://github.com/lenzo-ka/tiergraph/compare/v0.2.1...v0.2.2
|
|
967
1001
|
[0.2.1]: https://github.com/lenzo-ka/tiergraph/compare/v0.2.0...v0.2.1
|
|
968
1002
|
[0.2.0]: https://github.com/lenzo-ka/tiergraph/compare/v0.1.0...v0.2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tiergraph
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: Ordered tiers, declared relations, and an algebra over them
|
|
5
5
|
Project-URL: Homepage, https://github.com/lenzo-ka/tiergraph
|
|
6
6
|
Project-URL: Repository, https://github.com/lenzo-ka/tiergraph
|
|
@@ -38,8 +38,7 @@ Description-Content-Type: text/markdown
|
|
|
38
38
|
|
|
39
39
|
tiergraph holds parallel ordered sequences and the declared links between them
|
|
40
40
|
as one immutable graph, checked when it is built. Every view — selection,
|
|
41
|
-
traversal, containment, timing, folds — is computed from that one graph
|
|
42
|
-
view can disagree with the store.
|
|
41
|
+
traversal, containment, timing, folds — is computed from that one graph.
|
|
43
42
|
|
|
44
43
|
The shape is the track view of an audio or video editor: rows of items, ordered
|
|
45
44
|
within a row, aligned across rows, with links between rows. Aligned annotations
|
|
@@ -110,8 +109,8 @@ The complete runnable example keeps the displayed phone labels separate from
|
|
|
110
109
|
their durable ids and prints `['K', 'AE', 'T']`; see
|
|
111
110
|
[`examples/caption_alignment.py`](examples/caption_alignment.py).
|
|
112
111
|
|
|
113
|
-
The model
|
|
114
|
-
|
|
112
|
+
The model is informed by Sue Hertz's Delta representation and the Heterogeneous
|
|
113
|
+
Relation Graphs (HRGs) of the Festival Speech Synthesis System. tiergraph keeps
|
|
115
114
|
their emphasis on explicit tiered structure while defining a typed, immutable
|
|
116
115
|
model and a versioned interchange format.
|
|
117
116
|
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
tiergraph holds parallel ordered sequences and the declared links between them
|
|
6
6
|
as one immutable graph, checked when it is built. Every view — selection,
|
|
7
|
-
traversal, containment, timing, folds — is computed from that one graph
|
|
8
|
-
view can disagree with the store.
|
|
7
|
+
traversal, containment, timing, folds — is computed from that one graph.
|
|
9
8
|
|
|
10
9
|
The shape is the track view of an audio or video editor: rows of items, ordered
|
|
11
10
|
within a row, aligned across rows, with links between rows. Aligned annotations
|
|
@@ -76,8 +75,8 @@ The complete runnable example keeps the displayed phone labels separate from
|
|
|
76
75
|
their durable ids and prints `['K', 'AE', 'T']`; see
|
|
77
76
|
[`examples/caption_alignment.py`](examples/caption_alignment.py).
|
|
78
77
|
|
|
79
|
-
The model
|
|
80
|
-
|
|
78
|
+
The model is informed by Sue Hertz's Delta representation and the Heterogeneous
|
|
79
|
+
Relation Graphs (HRGs) of the Festival Speech Synthesis System. tiergraph keeps
|
|
81
80
|
their emphasis on explicit tiered structure while defining a typed, immutable
|
|
82
81
|
model and a versioned interchange format.
|
|
83
82
|
|
|
@@ -266,8 +266,8 @@ declarations that interpretation needs and refuses a graph that cannot carry it.
|
|
|
266
266
|
|
|
267
267
|
## Lineage
|
|
268
268
|
|
|
269
|
-
The model
|
|
270
|
-
|
|
269
|
+
The model is informed by Sue Hertz's Delta representation and the Heterogeneous
|
|
270
|
+
Relation Graphs (HRGs) of the Festival Speech Synthesis System. tiergraph keeps their
|
|
271
271
|
emphasis on explicit tiered structure and defines its own typed, immutable
|
|
272
272
|
model with a versioned interchange format. Phonetics is one application; the
|
|
273
273
|
graph and format assign no phonetic meaning to any tier or attribute.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# API reference
|
|
2
2
|
|
|
3
3
|
This page is generated from the shipped objects and the documentation manifest.
|
|
4
|
-
It covers
|
|
4
|
+
It covers 206 top-level `tiergraph` exports exactly once.
|
|
5
5
|
|
|
6
6
|
## Action
|
|
7
7
|
|
|
@@ -1337,6 +1337,125 @@ FoldTransition(relation: 'QualifiedName', combination: 'ChildCombination') -> No
|
|
|
1337
1337
|
|
|
1338
1338
|
Give one dependency relation its local AND/OR incidence meaning.
|
|
1339
1339
|
|
|
1340
|
+
### `Emissions`
|
|
1341
|
+
|
|
1342
|
+
```text
|
|
1343
|
+
Emissions(plan: 'PathPlan[Value]', per_item: 'tuple[tuple[str, ...], ...]') -> None
|
|
1344
|
+
```
|
|
1345
|
+
|
|
1346
|
+
Per-item token tuples bound to one path plan's label inventory.
|
|
1347
|
+
|
|
1348
|
+
#### `Emissions.bind`
|
|
1349
|
+
|
|
1350
|
+
Class method.
|
|
1351
|
+
|
|
1352
|
+
```text
|
|
1353
|
+
Emissions.bind(cls, plan: 'PathPlan[Value]', by_label: 'Mapping[str, Sequence[str]]') -> 'Emissions[Value]'
|
|
1354
|
+
```
|
|
1355
|
+
|
|
1356
|
+
Bind emissions by item label, leaving unlisted items non-emitting.
|
|
1357
|
+
|
|
1358
|
+
### `OutputItemMarginals`
|
|
1359
|
+
|
|
1360
|
+
```text
|
|
1361
|
+
OutputItemMarginals(total: 'Value', zero_mass: 'bool', values: 'tuple[Value, ...] | None', cost: 'FoldCost') -> None
|
|
1362
|
+
```
|
|
1363
|
+
|
|
1364
|
+
Conditioned marginals pooled into the base plan's item order.
|
|
1365
|
+
|
|
1366
|
+
#### `OutputItemMarginals.to_data`
|
|
1367
|
+
|
|
1368
|
+
Method.
|
|
1369
|
+
|
|
1370
|
+
```text
|
|
1371
|
+
OutputItemMarginals.to_data(self, semiring: 'Semiring[Value]') -> 'dict[str, object]'
|
|
1372
|
+
```
|
|
1373
|
+
|
|
1374
|
+
Return deterministic strict-JSON data using the carrier encoding.
|
|
1375
|
+
|
|
1376
|
+
### `OutputMasses`
|
|
1377
|
+
|
|
1378
|
+
```text
|
|
1379
|
+
OutputMasses(total: 'Value', per_candidate: 'tuple[Value, ...]', residual: 'Value', zero_mass: 'bool', decided: 'bool | None', tied: 'tuple[int, ...] | None', cost: 'FoldCost') -> None
|
|
1380
|
+
```
|
|
1381
|
+
|
|
1382
|
+
Candidate and residual masses from one product-plan marginal pass.
|
|
1383
|
+
|
|
1384
|
+
``decided`` and ``tied`` are available only for ``LOG_PROBABILITY`` and
|
|
1385
|
+
``COUNTING`` because their numeric order gives the certificate its meaning;
|
|
1386
|
+
both are ``None`` under other algebras. Counting ties use exact integer
|
|
1387
|
+
equality. Log-probability ties use equality of the computed doubles, so an
|
|
1388
|
+
approximate addition can split equal real masses and ``tied`` is not a tie
|
|
1389
|
+
certificate for the underlying real values.
|
|
1390
|
+
|
|
1391
|
+
#### `OutputMasses.to_data`
|
|
1392
|
+
|
|
1393
|
+
Method.
|
|
1394
|
+
|
|
1395
|
+
```text
|
|
1396
|
+
OutputMasses.to_data(self, semiring: 'Semiring[Value]') -> 'dict[str, object]'
|
|
1397
|
+
```
|
|
1398
|
+
|
|
1399
|
+
Return deterministic strict-JSON data using the carrier encoding.
|
|
1400
|
+
|
|
1401
|
+
### `OutputPlan`
|
|
1402
|
+
|
|
1403
|
+
```text
|
|
1404
|
+
OutputPlan(base: 'PathPlan[Value]', emissions: 'Emissions[Value]', candidates: 'tuple[tuple[str, ...], ...]', plan: 'PathPlan[Value]', base_index: 'Mapping[ItemRef, ItemRef]', accepted: 'tuple[bool, ...]', _product_base: 'tuple[int | None, ...]', _accept_indices: 'tuple[int, ...]', _residual_index: 'int', _conditioned_cache: 'dict[int, tuple[PathPlan[Value], tuple[int, ...]]]' = <factory>) -> None
|
|
1405
|
+
```
|
|
1406
|
+
|
|
1407
|
+
A cached product plan for complete output candidates and their residual.
|
|
1408
|
+
|
|
1409
|
+
#### `OutputPlan.prepare`
|
|
1410
|
+
|
|
1411
|
+
Class method.
|
|
1412
|
+
|
|
1413
|
+
```text
|
|
1414
|
+
OutputPlan.prepare(cls, base: 'PathPlan[Value]', emissions: 'Emissions[Value]', candidates: 'Sequence[Sequence[str]]') -> 'OutputPlan[Value]'
|
|
1415
|
+
```
|
|
1416
|
+
|
|
1417
|
+
Build the reachable product with the candidates' trie and a residual.
|
|
1418
|
+
|
|
1419
|
+
#### `OutputPlan.values`
|
|
1420
|
+
|
|
1421
|
+
Method.
|
|
1422
|
+
|
|
1423
|
+
```text
|
|
1424
|
+
OutputPlan.values(self, base_values: 'Sequence[Value] | None' = None) -> 'tuple[Value, ...]'
|
|
1425
|
+
```
|
|
1426
|
+
|
|
1427
|
+
Gather base values into the product plan's canonical item order.
|
|
1428
|
+
|
|
1429
|
+
#### `OutputPlan.masses`
|
|
1430
|
+
|
|
1431
|
+
Method.
|
|
1432
|
+
|
|
1433
|
+
```text
|
|
1434
|
+
OutputPlan.masses(self, base_values: 'Sequence[Value] | None' = None) -> 'OutputMasses[Value]'
|
|
1435
|
+
```
|
|
1436
|
+
|
|
1437
|
+
Evaluate masses, with certificates only for log probability or counting.
|
|
1438
|
+
|
|
1439
|
+
#### `OutputPlan.conditioned`
|
|
1440
|
+
|
|
1441
|
+
Method.
|
|
1442
|
+
|
|
1443
|
+
```text
|
|
1444
|
+
OutputPlan.conditioned(self, candidate: 'int') -> 'PathPlan[Value]'
|
|
1445
|
+
```
|
|
1446
|
+
|
|
1447
|
+
Return the product restricted to paths accepting one candidate.
|
|
1448
|
+
|
|
1449
|
+
#### `OutputPlan.item_marginals`
|
|
1450
|
+
|
|
1451
|
+
Method.
|
|
1452
|
+
|
|
1453
|
+
```text
|
|
1454
|
+
OutputPlan.item_marginals(self, candidate: 'int', base_values: 'Sequence[Value] | None' = None) -> 'OutputItemMarginals[Value]'
|
|
1455
|
+
```
|
|
1456
|
+
|
|
1457
|
+
Pool one candidate's conditioned product copies onto base items.
|
|
1458
|
+
|
|
1340
1459
|
### `PathMarginals`
|
|
1341
1460
|
|
|
1342
1461
|
```text
|
|
@@ -2845,7 +2964,7 @@ Canonical complete-boundary grammar value. Current value: `AttributeValue(name=Q
|
|
|
2845
2964
|
|
|
2846
2965
|
### `__version__`
|
|
2847
2966
|
|
|
2848
|
-
Installed distribution version. Current value: `0.2.
|
|
2967
|
+
Installed distribution version. Current value: `0.2.3`.
|
|
2849
2968
|
|
|
2850
2969
|
## Paths
|
|
2851
2970
|
|
|
@@ -4782,7 +4901,7 @@ Return strict-JSON traversal data in canonical node order.
|
|
|
4782
4901
|
|
|
4783
4902
|
### `tiergraph.build`
|
|
4784
4903
|
|
|
4785
|
-
This module is importable and usable, but carries no API-stability promise at version 0.2.
|
|
4904
|
+
This module is importable and usable, but carries no API-stability promise at version 0.2.3.
|
|
4786
4905
|
|
|
4787
4906
|
Builder notation errors raise the directly importable `tiergraph.build.BuilderError`, a `ValueError` subclass. It is not part of the module's star-exported surface.
|
|
4788
4907
|
|
|
@@ -6274,7 +6393,7 @@ that they hold, which is why a caller that needs the stronger fact has to
|
|
|
6274
6393
|
check the laws at values rather than read this tuple.
|
|
6275
6394
|
### `tiergraph.schema`
|
|
6276
6395
|
|
|
6277
|
-
This module is importable and usable, but carries no API-stability promise at version 0.2.
|
|
6396
|
+
This module is importable and usable, but carries no API-stability promise at version 0.2.3.
|
|
6278
6397
|
|
|
6279
6398
|
### `Refusal`
|
|
6280
6399
|
|
|
@@ -6389,7 +6508,7 @@ shape_hash() -> 'str'
|
|
|
6389
6508
|
Hash the declaration independently of JSON Schema presentation.
|
|
6390
6509
|
### `tiergraph.cli`
|
|
6391
6510
|
|
|
6392
|
-
This module is importable and usable, but carries no API-stability promise at version 0.2.
|
|
6511
|
+
This module is importable and usable, but carries no API-stability promise at version 0.2.3.
|
|
6393
6512
|
|
|
6394
6513
|
### `build_parser`
|
|
6395
6514
|
|
|
@@ -6408,7 +6527,7 @@ main(argv: 'Sequence[str] | None' = None) -> 'int'
|
|
|
6408
6527
|
Run the command line. Returns the process exit status.
|
|
6409
6528
|
### `tiergraph.spanview`
|
|
6410
6529
|
|
|
6411
|
-
This module is importable and usable, but carries no API-stability promise at version 0.2.
|
|
6530
|
+
This module is importable and usable, but carries no API-stability promise at version 0.2.3.
|
|
6412
6531
|
|
|
6413
6532
|
### `SPANVIEW_FORMAT_VERSION`
|
|
6414
6533
|
|
|
@@ -6526,7 +6645,7 @@ to_text(view: 'SpanView', *, alternatives: 'bool' = False) -> 'str'
|
|
|
6526
6645
|
Return a deterministic ruler and aligned plain-text span table.
|
|
6527
6646
|
### `tiergraph.textgrid`
|
|
6528
6647
|
|
|
6529
|
-
This module is importable and usable, but carries no API-stability promise at version 0.2.
|
|
6648
|
+
This module is importable and usable, but carries no API-stability promise at version 0.2.3.
|
|
6530
6649
|
|
|
6531
6650
|
### `TextGridReadResult`
|
|
6532
6651
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The `tiergraph` command prints help when called without arguments. `--version` prints one JSON object and exits successfully.
|
|
4
4
|
|
|
5
|
-
`tiergraph.cli.build_parser()` is importable and usable, but carries no API-stability promise at version 0.2.
|
|
5
|
+
`tiergraph.cli.build_parser()` is importable and usable, but carries no API-stability promise at version 0.2.3.
|
|
6
6
|
|
|
7
7
|
## Contracts
|
|
8
8
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
"""tiergraph: ordered tiers, declared relations, and typed values."""
|
|
2
2
|
|
|
3
|
+
import importlib
|
|
4
|
+
from typing import TYPE_CHECKING, cast
|
|
5
|
+
|
|
3
6
|
from tiergraph.action import (
|
|
4
7
|
ActionDeclaration,
|
|
5
8
|
DistributionWitness,
|
|
@@ -138,6 +141,14 @@ from tiergraph.path import (
|
|
|
138
141
|
resolve_path,
|
|
139
142
|
)
|
|
140
143
|
from tiergraph.pathplan import AlgebraOrder, PathMarginals, PathPlan, PathPosteriors
|
|
144
|
+
|
|
145
|
+
if TYPE_CHECKING:
|
|
146
|
+
from tiergraph.pathoutput import (
|
|
147
|
+
Emissions,
|
|
148
|
+
OutputItemMarginals,
|
|
149
|
+
OutputMasses,
|
|
150
|
+
OutputPlan,
|
|
151
|
+
)
|
|
141
152
|
from tiergraph.profile import (
|
|
142
153
|
PROFILES,
|
|
143
154
|
GraphProfile,
|
|
@@ -220,7 +231,20 @@ from tiergraph.wire import (
|
|
|
220
231
|
to_data,
|
|
221
232
|
)
|
|
222
233
|
|
|
223
|
-
__version__ = "0.2.
|
|
234
|
+
__version__ = "0.2.3"
|
|
235
|
+
|
|
236
|
+
_PATHOUTPUT_EXPORTS = frozenset(
|
|
237
|
+
{"Emissions", "OutputItemMarginals", "OutputMasses", "OutputPlan"}
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
def __getattr__(name: str) -> object:
|
|
242
|
+
"""Load path-output composition only when its public names are requested."""
|
|
243
|
+
if name in _PATHOUTPUT_EXPORTS:
|
|
244
|
+
pathoutput = importlib.import_module("tiergraph.pathoutput")
|
|
245
|
+
return cast(object, getattr(pathoutput, name))
|
|
246
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
247
|
+
|
|
224
248
|
|
|
225
249
|
__all__ = [
|
|
226
250
|
"ARCTIC",
|
|
@@ -280,6 +304,7 @@ __all__ = [
|
|
|
280
304
|
"DurablePolyadicRef",
|
|
281
305
|
"DurableRelationRef",
|
|
282
306
|
"EffectRefusal",
|
|
307
|
+
"Emissions",
|
|
283
308
|
"ExactnessRefusal",
|
|
284
309
|
"ExecutionError",
|
|
285
310
|
"FoldCertificate",
|
|
@@ -323,6 +348,9 @@ __all__ = [
|
|
|
323
348
|
"OrderedPolyadicTraversal",
|
|
324
349
|
"OrderedRootsProfile",
|
|
325
350
|
"OrphanedSubject",
|
|
351
|
+
"OutputItemMarginals",
|
|
352
|
+
"OutputMasses",
|
|
353
|
+
"OutputPlan",
|
|
326
354
|
"ParseForest",
|
|
327
355
|
"PathBinding",
|
|
328
356
|
"PathKind",
|