Minor Changes
- `properties.Array` now supports unsigned integer arrays. (See https://github.com/seequent/properties/issues/274)
- `coerce` is added as a new keyword argument for `properties.Array`. By default, this is `True` and inputs are coerced to the corresponding numpy array class, matching previous behaviour. However, if `coerce=False` inputs are not coerced and a `ValidationError` is raised if they do not match the corresponding numpy array class. (See https://github.com/seequent/properties/issues/272)
- Properties defined on mixin classes which use the `PropertyMetaclass` but do inherit `HasProperties` are now respected. (See https://github.com/seequent/properties/pull/283 - thanks hishnash!)
- Explicit support added for Python 3.7 and removed for 3.4. (See https://github.com/seequent/properties/pull/281)
Bug Fixes
- Order of property resolution for `HasProperties` classes with diamond inheritance was fixed to be more sensible and in line with attribute resolution for `object` diamond inheritance. Although this is considered a fix, it does fundamentally change inheritance logic for existing classes with diamond inheritance and is therefore **not backwards compatible**. (See https://github.com/seequent/properties/issues/275 and additional conversation https://github.com/seequent/properties/pull/276)
- Ensure `ValidationErrors` with no `reason`/`prop`/`instance` are not ignored. (See https://github.com/seequent/properties/issues/271)