Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion runtime/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
# interscript-ml (Python runtime)
# interscript-ml (Python runtime) — SUPERSEDED by `secryst`

> **Deprecated.** The canonical Python crystal is
> [`secryst`](https://pypi.org/project/secryst/) (same code, same
> IMF v1 contract, same SECRYST_INDEX/SECRYST_CACHE env vars) —
> `pip install secryst` instead. This package remains published for
> provenance; `runtime/` in this repo is the frozen origin of the
> crystal family (golden-owner history in the secryst-py README).

The reference Python runtime for **IMF v1** model zips — the phonological
layer of Interscript. The Ruby (secryst gem) and TypeScript
Expand Down
7 changes: 4 additions & 3 deletions runtime/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@ build-backend = "setuptools.build_meta"

[project]
name = "interscript-ml"
version = "0.1.0"
description = "Python runtime for Interscript Model Format (IMF v1) — the phonological layer of Interscript"
version = "0.1.2"
description = "DEPRECATED — superseded by the 'secryst' package; Python runtime for Interscript Model Format (IMF v1)"
readme = "README.md"
license = { text = "BSD-3-Clause" }
requires-python = ">=3.10"
authors = [{ name = "Interscript Project" }]
keywords = ["transliteration", "diacritization", "g2p", "onnx", "byt5"]
classifiers = ["Development Status :: 7 - Inactive"]
keywords = ["transliteration", "diacritization", "g2p", "onnx", "byt5", "deprecated"]

dependencies = [
"numpy>=1.26",
Expand Down
2 changes: 1 addition & 1 deletion runtime/src/interscript_ml/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import yaml

DEFAULT_INDEX_URL = (
"https://raw.githubusercontent.com/interscript/interscript-ml/main/models.yaml"
"https://github.com/interscript/interscript-ml/releases/download/index-v6/models-index.yaml"
)
ENV_INDEX = "SECRYST_INDEX"
ENV_CACHE = "SECRYST_CACHE"
Expand Down
13 changes: 13 additions & 0 deletions runtime/tests/test_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,3 +165,16 @@ def test_resolve_parts_rejects_corrupt_part(tmp_path: Path) -> None:
resolve("tiny-1.0", index_url=str(index_path))
finally:
os.environ.pop("SECRYST_CACHE", None)


def test_default_index_url_pins_current_release() -> None:
# exact pin: raw.githubusercontent is NEVER a data channel (the
# contract is GitHub Releases + sha256 sidecar). Bump this test
# WITH the registry constant, never ahead of it.
from interscript_ml.registry import DEFAULT_INDEX_URL

assert DEFAULT_INDEX_URL == (
"https://github.com/interscript/interscript-ml"
"/releases/download/index-v6/models-index.yaml"
)
assert "raw.githubusercontent" not in DEFAULT_INDEX_URL
Loading