All notable changes to ReadSightPy will be documented in this file.
- 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:
texmode syllable counts are approximate (TeX patterns are optimised for line-breaking, not phonetic syllabification); README mode distribution andsplit_word()example outputs fixed. __version__synced with the packaged release version.
vowelModeoption forsyllableHeuristics("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
vowelModebehaviour.
- 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
mypystrict mode type checking (0 errors)rufflint & format (0 errors)- Python 3.10+ support
- Zero runtime dependencies beyond
regexandplatformdirs - GitHub Actions CI pipeline
- 133 tests (unit + integration)