Changed
- Change type signature of `django_integrity.conversion.refine_integrity_error`.
Instead of accepting `Mapping[_Rule, Exception]`, it now accepts `Sequence[tuple[_Rule, Exception | type[Exception]]`.
This prevents issues with typing, and removes the need for `_Rule` to be hashable.
- Install CI and development requirements with `uv` instead of `pip-tools`.
Fixed
- Fix some more incorrect type signatures:
- `django_integrity.conversion.Unique.fields` was erroneously `tuple[str]` instead of `tuple[str, ...]`.
- Protect against previously-unhandled potential `None` in errors from Psycopg.