Logo Lanfrica

Yaredt/ethiopic-primitives

Domain:

natural language processing

Record type:

software
Creator:
Yar
Host:
Deterministic, model-free primitives for the Ethiopian calendar, fiscal periods, and Ge'ez numerals # Ethiopic Primitives Deterministic, model-free primitives for the Ethiopian calendar, fiscal periods, Ge'ez numerals, and Ge'ez-script equivalence. ## Status **Pre-1.0 — work in progress, not yet released.** Three Layer-0 modules are implemented and cross-language-verified, but the conformance fixtures and a Tier-1 provenance source are still outstanding, so **nothing is published to npm or PyPI yet** and no version is tagged (Principle II). The code is public to invite review and — importantly — external authorship of the conformance vectors (Principle I forbids the maintainers authoring them). **Correctness core landed.** The calendar layer is implemented in both languages and passes all 181 gating vectors plus the 1990–2035 sweep, both directions, with zero mismatches — in JavaScript, in the Python wrapper, and across both together. - `javascript/` — TypeScript calendar conversion (the primary deliverable; the maintained JS option surveyed is 48.9% wrong). Ships `dist/` + `.d.ts`. - `python/` — thin wrapper over `py-ethiopian-date-converter` (Principle III), not a reimplementation. - **Fiscal logic** (feature 002) is implemented in both languages — fiscal year, quarter, period (Pagumē = period 13), bounds, and aging across Pagumē. It builds purely on the calendar core and passes cross-language parity. Three conventions (label / period numbering / Pagumē's quarter) are informed defaults awaiting a Tier-1 source; acceptance is gated by an externally authored `tests/vectors/fiscal.json` that does not exist yet. - **Ge'ez numerals** (feature 003) are implemented in both languages — bidirectional Arabic↔Ge'ez over 1–99,999,999, canonical rendering (leading-1 omission), strict round-trip parse, and Arabic-default money, byte-identical across JS and Python. The closed domain is enforced: no zero, negative, or fraction (Principle VII). Acceptance is gated by an externally authored `tests/vectors/numerals.json` (not yet present) plus a package-measurement step (Pr …

Languages

Licenses