...and remove `python38` from devShells, since it's no longer available
in nixos-unstable. (I.e. undo 61bcdbe20 -- not worth staying stuck on an
old version of unstable for the next 6 months since we can still test on
3.8 in CI.)
Also update dev deps and ditch use of --generate-hashes (too noisy).
Finally, drop dev dependency on pip-tools. We're using uv instead as of
43ea51f321.
`typing.TypeAlias` was added in Python 3.10. In Python <= 3.9, using
`typing.TypeAlias` as a type hint confuses mypy.
To avoid this, either `typing_extensions.TypeAlias` must be used, or the
`TypeAlias` type hint may be dropped entirely in favor of relying on
type inference. Based on the current, limited usage of `TypeAlias`,
the latter is preferable.
Run mypy as part of automated tests for every supported Python version
to catch such issues in the future.
- Fix `bidict(None)` bug (should raise TypeError).
- Simplify hypothesis tests, especially by using stateful testing.
- Add overriding type hints for `inv` for each bidict type
(not just for `inverse`).
- Improve docs and fix readthedocs build as of move to python3.12 for
building docs.
Coverage was not being correctly combined when running pytest-xdist with
more than one subprocess.
Also add new "coverage" tox env for locally running tests with coverage
more conveniently, and upgrade dev dependencies.