v1.1: A critical bug fix, a nice-to-have feature, and better tooling
User-Visible Changes
This release makes the following major changes:
- It fixes a crashing bug for mirrored CLDR files.
- It improves terminal input/output, notably by
--incrementally
/-I
displaying character blots. That does markedly slow down tool output. But it also allows for measuring the size of character blots by querying the terminal.
Internal Changes
This release also makes significant internal changes. Notably, the UCD implementation is becoming more uniform and more decoupled. The long-term goal is to provide a generally useful UCD abstraction that may not be the fastest but has excellent support for exploratory coding against the UCD.
The development setup has also been updated. Instead of mypy, demicode now uses pyright for type-checking. In my experience, pyright is more accurate than mypy for the same annotations. It has also surfaced two very subtle bugs. They both are fixed.
The runtest.py
script runs both type checker and unit tests. Tests are based on Python's unittest
package because I find pytest
too invasive and too magical, which always ends up interfering with tests in the long term. Unfortunately, unittest
is rather baroque and hard to extend because (1) its interfaces are too wide and (2) it hides critical state. The test.runtime
module introduces adapter classes that fix these issues for unittest.TestCase
and unittest.TestResult
. The test script uses them to provide more readable and helpful output.