You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modernise packaging and clean up Python 2 residue (#100)
* Modernise packaging and clean up Python 2 residue
- Replace setup.py with pyproject.toml (hatchling build backend, uv-native)
- Add uv.lock and dependency-groups for dev dependencies (pytest, pytest-cov)
- Drop tox.ini in favour of direct `uv run pytest`
- Replace .travis.yml with GitHub Actions CI (uv, Python 3.10–3.13 matrix)
- Drop Python <3.10 support (3.6–3.9 all EOL)
- Remove (object) base class and super() call on ArabicReshaper
- Switch _ligatures_re from @Property with hidden mutation to @cached_property
- Add -> str type hint and sentinel comment to reshape()
- Add ArabicReshaperConfigurationError(ValueError); replace bare Exception raises
- Add docstring and ImportError to config_for_true_type_font()
- Fix LETTERS -> letters parameter naming in letters.py helper functions
- Add comment explaining the RIAL SIGN regex pattern in ligatures.py
- Remove unused import os from __init__.py; export ArabicReshaperConfigurationError
- Remove debug print() from test_003_reshaping.py
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Complete remaining plan items: coverage and type hints
- Wire pytest-cov into addopts so `uv run pytest` always reports coverage
- Add type hints to auto_config() and config_for_true_type_font()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Strengthen font config tests; gitignore fonts/
- Add fonts/ to .gitignore so local test fonts are never committed
- Skip tests gracefully when fonts/ is absent or contains no .otf files
- Replace smoke tests with correctness tests: _expected_config() independently
reads the font's cmap via fonttools and computes the expected config, then
asserts config_for_true_type_font() == expected — catches any mis-detection
of glyph support rather than just checking the function doesn't crash
- Add fonttools to dev dependency group so the tests run out of the box
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Replace Travis CI badge with GitHub Actions badge in README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Bump to 3.0.1: remove obsolete files and update version history
Remove .travis.yml, MANIFEST.in, meta.yaml, and upload-to-anaconda.sh
which are all superseded by the modernised pyproject.toml/hatchling setup
and GitHub Actions CI. Update README version history accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add GitHub Actions release workflow for PyPI publishing
Uses OIDC trusted publishing (no API token needed). Runs the full test
matrix first, then builds and publishes on success.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add Python 3.14 to CI and release matrices
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments