-----------
Releases on April 30, 2019.
New
~~~
- Add ``require_all`` rule and validator argument (`417`_)
- The ``contains`` rule (`358`_)
- All fields that are defined as ``readonly`` are removed from a document
when a validator has the ``purge_readonly`` flag set to ``True`` (`240`_)
- The ``validator`` rule is renamed to ``check_with``. The old name is
deprecated and will not be available in the next major release of Cerberus
(`405`_)
- The rules ``keyschema`` and ``valueschema`` are renamed to ``keysrules`` and
``valuesrules``; the old names are deprecated and will not be available in
the next major release of Cerbers (`385`_)
- The ``meta`` pseudo-rule can be used to store arbitrary application data
related to a field in a schema
- Python 3.7 officially supported (`451`_)
- **Python 2.6 and 3.3 are no longer supported**
Fixed
~~~~~
- Fix test test_{default,default_setter}_none_nonnullable (`435`_)
- Normalization rules defined within the ``items`` rule are applied (`361`_)
- Defaults are applied to undefined fields from an ``allow_unknown``
definition (`310`_)
- The ``forbidden`` value now handles any input type (`449`_)
- The `allowed` rule will not be evaluated on fields that have a legit ``None``
value (`454`_)
- If the cerberus distribution cannot not be found, the version is set to the
value ``unknown`` (`472`_)
Improved
~~~~~~~~
- Suppress DeprecationWarning about collections.abc (`451`_)
- Omit warning when no schema for ``meta`` rule constraint is available
(`425`_)
- Add ``.eggs`` to .gitignore file (`420`_)
- Reformat code to match Black code-style (`402`_)
- Perform lint checks and fixes on staged files, as a pre-commit hook (`402`_)
- Change ``allowed`` rule to use containers instead of lists (`384`_)
- Remove ``Registry`` from top level namespace (`354`_)
- Remove ``utils.is_class``
- Check the ``empty`` rule against values of type ``Sized``
- Various micro optimizations and 'safety belts' that were inspired by adding
type annotations to a branch of the code base
Docs
~~~~
- Fix semantical versioning naming. There are only two hard things in Computer
Science: cache invalidation and naming things -- *Phil Karlton* (`429`_)
- Improve documentation of the regex rule (`389`_)
- Expand upon `validator` rules (`320`_)
- Include all errors definitions in API docs (`404`_)
- Improve changelog format (`406`_)
- Update homepage URL in package metadata (`382`_)
- Add feature freeze note to CONTRIBUTING and note on Python support in
README
- Add the intent of a ``dataclasses`` module to ROADMAP.md
- Update README link; make it point to the new PyPI website
- Update README with elaborations on versioning and testing
- Fix misspellings and missing pronouns
- Remove redundant hint from ``*of-rules``.
- Add usage recommendation regarding the ``*of-rules``
- Add a few clarifications to the GitHub issue template
- Update README link; make it point to the new PyPI website
.. _`472`: https://github.com/pyeve/cerberus/pull/472
.. _`454`: https://github.com/pyeve/cerberus/issues/454
.. _`451`: https://github.com/pyeve/cerberus/pull/451
.. _`449`: https://github.com/pyeve/cerberus/pull/449
.. _`435`: https://github.com/pyeve/cerberus/pull/435
.. _`429`: https://github.com/pyeve/cerberus/pull/429
.. _`425`: https://github.com/pyeve/cerberus/pull/425
.. _`420`: https://github.com/pyeve/cerberus/issues/420
.. _`417`: https://github.com/pyeve/cerberus/issues/417
.. _`406`: https://github.com/pyeve/cerberus/issues/406
.. _`405`: https://github.com/pyeve/cerberus/issues/405
.. _`404`: https://github.com/pyeve/cerberus/issues/404
.. _`402`: https://github.com/pyeve/cerberus/issues/402
.. _`389`: https://github.com/pyeve/cerberus/issues/389
.. _`385`: https://github.com/pyeve/cerberus/issues/385
.. _`384`: https://github.com/pyeve/cerberus/issues/384
.. _`382`: https://github.com/pyeve/cerberus/issues/382
.. _`361`: https://github.com/pyeve/cerberus/pull/361
.. _`358`: https://github.com/pyeve/cerberus/issues/358
.. _`354`: https://github.com/pyeve/cerberus/issues/354
.. _`320`: https://github.com/pyeve/cerberus/issues/320
.. _`310`: https://github.com/pyeve/cerberus/issues/310
.. _`240`: https://github.com/pyeve/cerberus/issues/240