Morphology

Latest version: v0.11.12

Safety actively analyzes 681812 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.11.0

**Changes**:

- [293](https://github.com/nathanielford/morphology/pull/293): Support Python 3.6.
- [294](https://github.com/nathanielford/morphology/pull/294): Drop support for Python 2.6, 3.1 and 3.2.
- [318](https://github.com/nathanielford/morphology/pull/318): Allow to use nested schema and allow any validator to be compiled.
- [324](https://github.com/nathanielford/morphology/pull/324):
Default values MUST now pass validation just as any regular value. This is a backward incompatible change if a schema uses default values that don't pass validation against the specified schema.
- [328](https://github.com/nathanielford/morphology/pull/328):
Modify `__lt__` in Marker class to allow comparison with non Marker objects, such as str and int.

**New**:

- [307](https://github.com/nathanielford/morphology/pull/307): Add description field to `Marker` instances.
- [311](https://github.com/nathanielford/morphology/pull/311): Add `Schema.infer` method for basic schema inference.
- [314](https://github.com/nathanielford/morphology/pull/314): Add `SomeOf` validator.

**Fixes**:

- [279](https://github.com/nathanielford/morphology/pull/279):
Treat Python 2 old-style classes like types when validating.
- [280](https://github.com/nathanielford/morphology/pull/280): Make
`IsDir()`, `IsFile()` and `PathExists()` consistent between different Python versions.
- [290](https://github.com/nathanielford/morphology/pull/290): Use absolute imports to avoid import conflicts.
- [291](https://github.com/nathanielford/morphology/pull/291): Fix `Coerce` validator to catch `decimal.InvalidOperation`.
- [298](https://github.com/nathanielford/morphology/pull/298): Make `Schema([])` usage consistent with `Schema({})`.
- [303](https://github.com/nathanielford/morphology/pull/303): Allow partial validation when using validate decorator.
- [316](https://github.com/nathanielford/morphology/pull/316): Make `Schema.__eq__` deterministic.
- [319](https://github.com/nathanielford/morphology/pull/319): Replace implementation of `Maybe(s)` with `Any(None, s)` to allow it to be compiled.

0.10.5

- [278](https://github.com/nathanielford/morphology/pull/278): Unicode
translation to python 2 issue fixed.

0.10.2

**Changes**:

- [195](https://github.com/nathanielford/morphology/pull/195):
`Range` raises `RangeInvalid` when testing `math.nan`.
- [215](https://github.com/nathanielford/morphology/pull/215):
`{}` and `[]` now always evaluate as is, instead of as any dict or any list.
To specify a free-form list, use `list` instead of `[]`. To specify a
free-form dict, use `dict` instead of `Schema({}, extra=ALLOW_EXTRA)`.
- [224](https://github.com/nathanielford/morphology/pull/224):
Change the encoding of keys in error messages from Unicode to UTF-8.

**New**:

- [185](https://github.com/nathanielford/morphology/pull/185):
Add argument validation decorator.
- [199](https://github.com/nathanielford/morphology/pull/199):
Add `Unordered`.
- [200](https://github.com/nathanielford/morphology/pull/200):
Add `Equal`.
- [207](https://github.com/nathanielford/morphology/pull/207):
Add `Number`.
- [210](https://github.com/nathanielford/morphology/pull/210):
Add `Schema` equality check.
- [212](https://github.com/nathanielford/morphology/pull/212):
Add `coveralls`.
- [227](https://github.com/nathanielford/morphology/pull/227):
Improve `Marker` management in `Schema`.
- [232](https://github.com/nathanielford/morphology/pull/232):
Add `Maybe`.
- [234](https://github.com/nathanielford/morphology/pull/234):
Add `Date`.
- [236](https://github.com/nathanielford/morphology/pull/236), [237](https://github.com/nathanielford/morphology/pull/237), and [238](https://github.com/nathanielford/morphology/pull/238):
Add script for updating `gh-pages`.
- [256](https://github.com/nathanielford/morphology/pull/256):
Add support for `OrderedDict` validation.
- [258](https://github.com/nathanielford/morphology/pull/258):
Add `Contains`.

**Fixes**:

- [197](https://github.com/nathanielford/morphology/pull/197):
`ExactSequence` checks sequences are the same length.
- [201](https://github.com/nathanielford/morphology/pull/201):
Empty lists are evaluated as is.
- [205](https://github.com/nathanielford/morphology/pull/205):
Filepath validators correctly handle `None`.
- [206](https://github.com/nathanielford/morphology/pull/206):
Handle non-subscriptable types in `humanize_error`.
- [231](https://github.com/nathanielford/morphology/pull/231):
Validate `namedtuple` as a `tuple`.
- [235](https://github.com/nathanielford/morphology/pull/235):
Update docstring.
- [249](https://github.com/nathanielford/morphology/pull/249):
Update documentation.
- [262](https://github.com/nathanielford/morphology/pull/262):
Fix a performance issue of exponential complexity where all of the dict keys were matched against all keys in the schema.
This resulted in O(n*m) complexity where n is the number of keys in the dict being validated and m is the number of keys in the schema.
The fix ensures that each key in the dict is matched against the relevant schema keys only. It now works in O(n).
- [266](https://github.com/nathanielford/morphology/pull/266):
Remove setuptools as a dependency.

0.9.3

Changelog not kept for 0.9.3 and earlier releases.

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.