Cerberus v1.3 Release Notes

Release Date: 2019-04-30 // almost 5 years ago
  • ๐Ÿš€ 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
    
    • 0๏ธโƒฃ Fix test test_{default,default_setter}none_nonnullable (#435)
    • Normalization rules defined within the items rule are applied (#361_)
    • 0๏ธโƒฃ 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