Highlights
- [Mypy](https://github.com/python/mypy) support (strict mode)
- [Beartype](https://github.com/beartype/beartype) support
- New standard library modules
- [`optype.copy`](optypecopy)
- [`optype.dataclasses`](optypedataclasses)
- [`optype.inspect`](optypeinspect)
- [`optype.json`](optypejson)
- [`optype.pickle`](optypepickle)
- [`optype.string`](optypestring)
- [`optype.typing`](optypetyping)
- Improvements to [`optype.numpy`](optypenumpy) (it's still optional)
- [NumPy 2.1](https://github.com/numpy/numpy) support
- Improved docs
- [Shape type aliases`](shape-type-aliases)
- Support for `numpy.dtypes.StringDType` (`numpy >= 2`)
- Reworked [`Any*Array` and `Any*DType`](anyarray-and-anydtype)
Breaking changes
- Increased the minimum Python version from 3.10.0 to 3.10.1
- Increased the minimum `typing_extensions` version from 4.7 to 4.8
- Moved `CanCopy`, `CanDeepcopy` and `CanReplace` from `optype._` to [`optype.copy._`](optypecopy)
- Moved `HasDataclassFields` from `optype._` to [`optype.dataclasses._`](optypedataclasses)
- Moved `CanGetnewargs[Ex]`, `CanReduce[Ex]`, and `Can{Get,Set}state` from `optype._` to [`optype.pickle._`](optypepickle)
- [`Any*Array` and `Any*DType`](anyarray-and-anydtype) for `int_`, `float64` and `complex128` don't include `int`, `float`, and `complex` anymore. See https://github.com/numpy/numpy/issues/27032#issuecomment-2249308801 for why this was done.
**Full Changelog**: https://github.com/jorenham/optype/compare/v0.5.0...v0.6.0