Skip to content

normalizer-tr 0.7.0

Choose a tag to compare

@erdemtuna erdemtuna released this 11 Oct 15:28
· 23 commits to main since this release

normalizer-tr 0.7.0

Bounded Turkish notation coverage, with independently reviewed source ownership
and scanner performance improvements.

  • Add numeric, percentage and quantity plural/possession/case/copular suffixes,
    including compound-aware money endings.
  • Extend date suffixes, year-first slash dates, following date cues, dotted
    clocks with suffixes and validated clock ranges.
  • Read flat multiplication without calculating it; retain grouped money and
    exclude protected phone/electronic/identifier operands.
  • Recognize contextual address aliases, atomic fields, numbered streets, postal
    digits/labels and locality pauses.
  • Correct grouped-account and independent-address ownership, clock-range
    overclaiming and mixed-arithmetic prefix certification.
  • Remove pre-existing quadratic failed-telephone traversal and electronic
    parenthesis trimming; preserve diagnostics, limits and cooperative controls.

Migration

Public Rust/Python call shapes, enum variants, serialized labels and record
fields are unchanged. New primary readings can change text, strict-mode success
and diagnostic boundaries. Composite readings emit multiple existing segment
kinds, but hints must still cover their entire source owner.

Rates now use written unit order: 5 km/sa becomes beş kilometre saat,
instead of the earlier saatte beş kilometre. Date suffixes validate against the
last written component and attach to the canonical spoken year. Address-specific
readings apply only in reviewed address context. Invalid accounts remain
uncertified, and mixed arithmetic remains unsupported.

See the changelog
and normalization reference
for coverage and examples.

Verification and artifacts

PR #7 received independent
correctness and performance reviews. All four correctness findings and both
scoped performance findings were fixed and independently rechecked; all five
inline threads were resolved.

Release artifacts are built and tested for CPython 3.11-3.14 on Windows x64,
Linux x64 (manylinux_2_28), and macOS x64/arm64, together with a tested Python
source distribution and Rust core archive. Rust requires 1.94 or newer.
release-manifest.json records the source revision and SHA-256 checksums for
the exact artifact set.

python -m pip install normalizer-tr==0.7.0
[dependencies]
normalizer-tr = "0.7"

Performance observations are shared-host measurements, not a universal latency,
hard deadline or peak-memory guarantee. Validation covers normalized text and
library behavior; no downstream speech model or audio-quality claim is made.