Skip to content

Latest commit

 

History

History
46 lines (40 loc) · 1.96 KB

File metadata and controls

46 lines (40 loc) · 1.96 KB

Changelog

All notable changes to ReadSightPy will be documented in this file.

[1.0.5] - 2026-07-12

Fixed

  • Syllable counting for Cyrillic Slavic languages no longer relies on TeX hyphenation, which under-/over-counted syllables (e.g. Russian беззвучная and дыхание returned 3 instead of 4). These languages now use vowel-based counting where one vowel letter equals one syllable.
  • Documentation corrected: tex mode syllable counts are approximate (TeX patterns are optimised for line-breaking, not phonetic syllabification); README mode distribution and split_word() example outputs fixed.
  • __version__ synced with the packaged release version.

Added

  • vowelMode option for syllableHeuristics ("cluster" default, or "individual" to count each vowel as a syllable).
  • Heuristic vowel-based syllable counting enabled for Russian (ru), Ukrainian (uk), Belarusian (be) and Bulgarian (bg).
  • Regression tests covering Cyrillic syllable counts and vowelMode behaviour.

[1.0.0] - 2026-06-26

Added

  • Initial release — Python port of ReadSight (PHP)
  • Frank M. Liang (TeX) hyphenation algorithm for syllable counting
  • 86 languages across 19 writing systems
  • 17 readability formulas: Flesch Reading Ease, Flesch-Kincaid Grade Level, Gunning Fog, SMOG, Coleman-Liau, ARI, LIX, Gulpease, Wiener Sachtextformel (4 variants), Fernandez Huerta, Szigriszt-Pazos, Gutierrez Polini, Crawford, Fog-PL, Dale-Chall, Spache, Osman
  • Composite syllable counter (heuristic + TeX fallback)
  • JSON pattern cache via platformdirs
  • Language-specific formula coefficients
  • Text analysis (word/sentence/letter/syllable counts, syllable histogram)
  • User-defined hyphenation overrides
  • Interactive demo CLI
  • mypy strict mode type checking (0 errors)
  • ruff lint & format (0 errors)
  • Python 3.10+ support
  • Zero runtime dependencies beyond regex and platformdirs
  • GitHub Actions CI pipeline
  • 133 tests (unit + integration)