v2.1.1
This is a primarily a performance improvement patch, reducing the memory footprint by about 45MB, and the initial load time, by:
- using a more compact in-memory structure for the English lexicon, and
- replacing the heavy-weight networkx library by a tiny custom class implementing only the algorithms used.
✨ New Features
966a057- allow panphon 0.21 where possible (commit by @joanise)aa9de1c- g2p show-mappings to display language names too (commit by @joanise)c70f30f- network_lite with minimal DiGraph class (commit by @joanise)123e27b- add full type signatures to DiGraph (commit by @dhdaines)6eb29ac- revamp schema versioning and update-schema (commit by @joanise)
🐛 Bug Fixes
8929608- add [tool.setuptools_scm] in pyproject.toml to please the build system (commit by @joanise)208a8e0- deps: pydantic 2.9 changes our schemas, so block it (commit by @joanise)16668b2- enable type-checking and fix things (commit by @dhdaines)6ab8545- make sure self.rules is always the type we say it is (commit by @dhdaines)3eee1a6- seeing match_pattern or intermediate_form is an error (commit by @dhdaines)bbcd1e8- avoid unnecessarily requiring a schema update (commit by @joanise)
⚡ Performance Improvements
e605ae5- compact lexicon entries to take less RAM (commit by @joanise)96abff3- replace networkx by network_lite throughout reduces memory footprint and load time (commit by @joanise)
♻️ Refactors
d1b3437- simplify shortest_path code (commit by @dhdaines)e2def43- only declare the SCM pretend version in one place (commit by @joanise)