- TextRecognizer.get_character_dict saved the downloaded character dict to
the package models dir even when Global.model_root_dir was set, which
fails with PermissionError on a read-only install. Save it under
model_root_dir when set; fall back to DEFAULT_MODEL_PATH otherwise.
- The torch ModelLoader used cfg.model_root_dir / ... without Path(), so a
str model_root_dir raised TypeError. Wrap it in Path() like the other
engines do.
- Add tests that need no model download.