Changelog History
Page 1
-
v1.3.4 Changes
๐ Released on May 5, 2021.
๐ Fixed
- โช Reverts the unsatisfying fix for `#557`_, - instead a ``RuntimeError`` is thrown when Python is running with optimization level 2 (`#567`_) .. _`#567`: https://github.com/pyeve/cerberus/issues/567
-
v1.3.3 Changes
๐ Released on April 11, 2021.
๐ New
- โ Adds a benchmark to observe overall performance between code changes (`#531`_) - โ Adds support for Python 3.9 - The Continuous Integration now runs on GitHub Actions ๐ Fixed
- ๐ Fixed unresolved registry references when getting a constraint for an error
(
#562
_) - ๐ Fixed crash when submitting non-hashable values to
allowed
(#524
_) - ๐ Fixed schema validation for rules specifications with space (
#527
_) - ๐ Replaced deprecated rule name
validator
withcheck_with
in the docs (#527
_) - ๐ Use the UnconcernedValidator when the Python interpreter is executed with
an optimization flag (
#557
_) - ๐ Several fixes and refinements of the docs
.. _
#524
: https://github.com/pyeve/cerberus/issues/524 .. _#527
: https://github.com/pyeve/cerberus/issues/527 .. _#531
: https://github.com/pyeve/cerberus/issues/531 .. _#557
: https://github.com/pyeve/cerberus/issues/557 .. _#562
: https://github.com/pyeve/cerberus/issues/562 - ๐ Fixed unresolved registry references when getting a constraint for an error
(
-
v1.3.2 Changes
October 29, 2019๐ Released on October 29, 2019.
๐ New
- ๐ Support for Python 3.8 ๐ Fixed
- ๐ Fixed the message of the
BasicErrorHandler
for an invalid amount of items (#505
_) - โ Added
setuptools
as dependency to the package metadata (#499
_) - ๐ฆ The
CHANGES.rst
document is properly included in the package (#493
_)
๐ Improved
- ๐ Docs: Examples were added for the ``min``- and ``maxlength`` rules. (`#509`_) .. _`#509`: https://github.com/pyeve/cerberus/issues/509 .. _`#505`: https://github.com/pyeve/cerberus/issues/505 .. _`#499`: https://github.com/pyeve/cerberus/issues/499 .. _`#493`: https://github.com/pyeve/cerberus/issues/493
- ๐ Fixed the message of the
-
v1.3.1 Changes
May 10, 2019๐ Releases on May 10, 2019.
๐ Fixed
- ๐ Fixed the expansion of the deprecated rule names ``keyschema`` and ``valueschema`` (`#482`_) - ``*of_``-typesavers properly expand rule names containing ``_`` (`#484`_) ๐ Improved
- Add
maintainer
andmaintainer_email
to setup.py (#481
_) - Add
project_urls
to setup.py (#480
_) - Don't ignore all exceptions during coercions for nullable fields. If a
- ๐ป Coercion raises an exception for a nullable field where the field is not
None
the validation now fails. (#490
_)
.. _
#490
: https://github.com/pyeve/cerberus/issues/490 .. _#484
: https://github.com/pyeve/cerberus/issues/484 .. _#482
: https://github.com/pyeve/cerberus/issues/482 .. _#481
: https://github.com/pyeve/cerberus/issues/481 .. _#480
: https://github.com/pyeve/cerberus/issues/480 - Add
-
v1.3 Changes
April 30, 2019๐ 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 legitNone
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
- 0๏ธโฃ Fix test test_{default,default_setter}none_nonnullable (
-
v1.2 Changes
April 12, 2018๐ Released on April 12, 2018.
- ๐ New: docs: Add note that normalization cannot be applied within an
*of-rule
. (Frank Sachsenheim) - ๐ New: Add the ability to query for a type of error in an error tree. (Frank Sachsenheim)
- ๐ New: Add errors.MAPPING_SCHEMA on errors within subdocuments. (Frank Sachsenheim)
๐ New: Support for Types Definitions, which allow quick types check on the fly. (Frank Sachsenheim)
๐ Fix: Simplify the tests with Docker by using a volume for tox environments. (Frank Sachsenheim)
๐ Fix: Schema registries do not work on dict fields. Closes :issue:
318
. (Frank Sachsenheim)๐ Fix: Need to drop some rules when
empty
is allowed. Closes :issue:326
. (Frank Sachsenheim)๐ Fix: typo in README (Christian Hogan)
Fix: Make
purge_unknown
andallow_unknown
play nice together. Closes :issue:324
. (Audric Schiltknecht)๐ Fix: API reference lacks generated content. Closes :issue:
281
. (Frank Sachsenheim)๐ Fix:
readonly
works properly just in the first validation. Closes :issue:311
. (Frank Sachsenheim)๐ Fix:
coerce
ignoresnullable: True
. Closes :issue:269
. (Frank Sachsenheim)๐ Fix: A dependency is not considered satisfied if it has a null value. Closes :issue:
305
. (Frank Sachsenheim)Override
UnvalidatedSchema.copy
. (Peter Demin)๐ Fix: README link. (Gabriel Wainer)
๐ Fix: Regression: allow_unknown causes dictionary validation to fail with a KeyError. Closes :issue:
302
. (Frank Sachsenheim)๐ Fix: Error when setting fields as tuples instead of lists. Closes :issue:
271
. (Sebastian Rajo)๐ Fix: Correctly handle nested logic and group errors. Closes :issue:
278
and :issue:299
. (Kornelijus Survila)โ CI: Reactivate testing on PyPy3. (Frank Sachsenheim)
- ๐ New: docs: Add note that normalization cannot be applied within an
-
v1.1 Changes
March 07, 2017๐ Released on January 25, 2017.
- ๐ New: Python 3.6 support. (Frank Sachsenheim)
- New: Users can implement their own semantics in Validator._lookup_field. (Frank Sachsenheim)
๐ New: Allow applying of
empty
rule to sequences and mappings. Closes :issue:270
. (Frank Sachsenheim)๐ Fix: Better handling of unicode in
allowed
rule. Closes :issue:280
. (Michael Klich).๐ Fix: Rules sets with normalization rules fail. Closes :issue:
283
. (Frank Sachsenheim)Fix: Spelling error in RULE_SCHEMA_SEPARATOR constant (Antoine Lubineau)
๐ Fix: Expand schemas and rules sets when added to a registry. Closes :issue:
284
(Frank Sachsenheim)๐ Fix:
readonly
conflicts withdefault
rule. Closes :issue:268
(Dominik Kellner).Fix: Creating custom Validator instance with
_validator_*
method raisesSchemaError
. Closes :issue:265
(Frank Sachsenheim).๐ Fix: Consistently use new style classes (Dominik Kellner).
๐ Fix:
NotImplemented
does not derive fromBaseException
. (Bryan W. Weber).โ Completely switch to py.test. Closes :issue:
213
(Frank Sachsenheim).๐ Convert
self.assert
method calls to plainassert
calls supported by pytest. Addresses :issue:213
(Bruno Oliveira).๐ Docs: Clarifications concerning dependencies and unique rules. (Frank Sachsenheim)
๐ Docs: Fix custom coerces documentation. Closes :issue:
285
. (gilbsgilbs)๐ Docs: Add note concerning regex flags. Closes :issue:
173
. (Frank Sachsenheim)๐ Docs: Explain that normalization and coercion are performed on a copy of the original document (Sergey Leshchenko)
-
v1.0.1 Changes
September 01, 2016๐ Released on September 1, 2016.
- ๐ Fix: bump trove classifier to Production/Stable (5).
-
v1.0 Changes
๐ Released on September 1, 2016.
โ .. warning::
This is a major release which breaks backward compatibility in several ways. Don't worry, these changes are for the better. However, if you are upgrading, then you should really take the time to read the list of `Breaking Changes`_ and consider their impact on your codebase. For your convenience, some :doc:`upgrade notes <upgrading>` have been included.
- ๐ New: Add capability to use references in schemas. (Frank Sachsenheim)
- ๐ New: Support for binary type. (Matthew Ellison)
- ๐ New: Allow callables for 'default' schema rule. (Dominik Kellner)
- ๐ New: Support arbitrary types with 'max' and 'min' (Frank Sachsenheim).
- ๐ New: Support any iterable with 'minlength' and 'maxlength'.
Closes :issue:
158
. (Frank Sachsenheim) - ๐ New: 'default' normalization rule. Closes :issue:
131
. (Damiรกn Nohales) - ๐ New: 'excludes' rule (calve). Addresses :issue:
132
. - ๐ New: 'forbidden' rule. (Frank Sachsenheim)
- ๐ New: 'rename'-rule renames a field to a given value during normalization (Frank Sachsenheim).
- ๐ New: 'rename_handler'-rule that takes an callable that renames unknown fields. (Frank Sachsenheim)
- ๐ New: 'Validator.purge_unknown'-property and conditional purging of unknown fields. (Frank Sachsenheim)
- ๐ New: 'coerce', 'rename_handler' and 'validator' can use class-methods (Frank Sachsenheim).
- ๐ New: '*of'-rules can be extended by concatenating another rule. (Frank Sachsenheim)
- ๐ New: Allows various error output with error handlers (Frank Sachsenheim).
- ๐ New: Available rules etc. of a Validator-instance are accessible as 'validation_rules', 'normalization_rules', 'types', 'validators' and 'coercer' -property. (Frank Sachsenheim)
- ๐ New: Custom rule's method docstrings can contain an expression to validate constraints for that rule when a schema is validated. (Frank Sachsenheim).
- New: 'Validator.root_schema' complements 'Validator.root_document'. (Frank Sachsenheim)
- New: 'Validator.document_path' and 'Validator.schema_path' properties can be used to determine the relation of the currently validating document to the 'root_document' / 'root_schema'. (Frank Sachsenheim)
- ๐ New: Known, validated definition schemas are cached, thus validation run-time of schemas is reduced. (Frank Sachsenheim)
- ๐ New: Add testing with Docker. (Frank Sachsenheim)
๐ New: Support CPython 3.5. (Frank Sachsenheim)
Fix: 'allow_unknown' inside *of rule is ignored. Closes #251. (Davis Kirkendall)
๐ Fix: unexpected TypeError when using allow_unknown in a schema defining a list of dicts. Closes :issue:
250
. (Davis Kirkendall)๐ Fix: validate with 'update=True' does not work when required fields are in a list of subdicts. (Jonathan Huot)
๐ Fix: 'number' type fails if value is boolean. Closes :issue:
144
. (Frank Sachsenheim)๐ Fix: allow None in 'default' normalization rule. (Damiรกn Nohales)
๐ Fix: in 0.9.2, coerce does not maintain proper nesting on dict fields. Closes :issue:
185
.๐ Fix: normalization not working for valueschema and propertyschema. Closes :issue:
155
. (Frank Sachsenheim)๐ Fix: 'coerce' on List elements produces unexpected results. Closes :issue:
161
. (Frank Sachsenheim)๐ Fix: 'coerce'-constraints are validated. (Frank Sachsenheim)
๐ Fix: Unknown fields are normalized. (Frank Sachsenheim)
๐ Fix: Dependency on boolean field now works as expected. Addresses :issue:
138
. (Roman Redkovich)๐ Fix: Add missing deprecation-warnings. (Frank Sachsenheim)
๐ Docs: clarify read-only rule. Closes :issue:
127
.๐ Docs: split Usage page into Usage; Validation Rules: Normalization Rules. (Frank Sachsenheim)
๐ฅ Breaking Changes
๐ Several relevant breaking changes have been introduced with this release. For โฌ๏ธ the inside scoop, please see the :doc:`upgrade notes <upgrading>`. - ๐ Change: 'errors' values are lists containing error messages. Previously, they were simple strings if single errors, lists otherwise. Closes :issue:`210`. (Frank Sachsenheim) - ๐ Change: Custom validator methods: remove the second argument. (Frank Sachsenheim) - ๐ Change: Custom validator methods: invert the logic of the conditional clauses where is tested what a value is not / has not. (Frank Sachsenheim) - ๐ Change: Custom validator methods: replace calls to 'self._error' with 'return True', or False, or None. (Frank Sachsenheim) - Change: Remove 'transparent_schema_rule' in favor of docstring schema validation. (Frank Sachsenheim) - ๐ Change: Rename 'property_schema' rule to 'keyschema'. (Frank Sachsenheim) - โก๏ธ Change: Replace 'validate_update' method with 'update' keywork argument. (Frank Sachsenheim) - ๐ Change: The processed root-document of is now available as 'root_document'- property of the (child-)Validator. (Frank Sachsenheim) - ๐ Change: Removed 'context'-argument from 'validate'-method as this is set upon the creation of a child-validator. (Frank Sachsenheim) - ๐ Change: 'ValidationError'-exception renamed to 'DocumentError'. (Frank Sachsenheim) - ๐ Change: Consolidated all schema-related error-messages' names. (Frank Sachsenheim) - ๐ Change: Use warnings.warn for deprecation-warnings if available. (Frank Sachsenheim)
-
v0.9.2 Changes
September 23, 2015๐ Released on September 23, 2015
- ๐ Fix: don't rely on deepcopy since it can't properly handle complex objects in Python 2.6.