voluptuous/CHANGELOG.md

12 KiB

Changelog

[0.14.2]

New:

  • #507: docs: document description field of Marker

Fixes:

  • #506: fix: allow unsortable containers in In and NotIn validators (fixes #451) (bug introduced in 0.12.1)
  • #488: fix(typing): fix type hint for Coerce type param (bug introduced in 0.14.0)
  • #497: fix(typing): allow path to be a list of strings, integers or any other hashables (bug introduced in 0.14.0)

Changes:

  • #499: support: drop support for python 3.7
  • #501: support: run tests on python 3.11
  • #502: support: run tests on python 3.12
  • #495: refactor: drop duplicated type checks in Schema._compile
  • #500: refactor: fix few tests, use pytest.raises, extend raises helper
  • #503: refactor: Add linters configuration, reformat whole code

[0.14.1]

Changes:

  • #487: Add pytest.ini and tox.ini to sdist
  • #494: Add python_requires so package installers know requirement is >= 3.7

[0.14.0]

Fixes:

  • #470: Fix a few code comment typos
  • #472: Change to SPDX conform license string

New:

  • #475: Add typing information
  • #478: Fix new type hint of schemas, for example for Required('key')
  • #486: Fix new type hints and enable mypy
  • #479: Allow error reporting on keys

Changes:

  • #476: Set static PyPI project description
  • #482: Remove Travis build status badge

[0.13.1]

Fixes:

  • #439: Ignore Enum if it is unavailable
  • #456: Fix email regex match for Python 2.7

New:

  • #457: Enable github actions
  • #462: Convert codebase to adhere to flake8 W504 (PEP 8)
  • #459: Enable flake8 in github actions
  • #464: pytest migration + enable Python 3.10

[0.13.0]

Changes:

  • #450: Display valid Enum values in Coerce

[0.12.2]

Fixes:

  • #439: Revert Breaking Maybe change in 0.12.1
  • #447: Fix Email Regex to not match on extra characters

[0.12.1]

Changes:

  • #435: Extended a few tests (Required and In)
  • #425: Improve error message for In and NotIn
  • #436: Add sorted() for In and NotIn + fix tests
  • #437: Grouped Maybe tests plus added another Range test
  • #438: Extend tests for Schema with empty list or dict

New:

  • #433: Add Python 3.9 support

Fixes:

  • #431: Fixed typos + made spelling more consistent
  • #411: Ensure Maybe propagates error information
  • #434: Remove value enumeration when validating empty list

[0.12.0]

Changes:

  • n/a

New:

  • #368: Allow a discriminant field in validators

Fixes:

  • #420: Fixed issue with 'required' not being set properly and added test
  • #414: Handle incomparable values in Range
  • #427: Added additional tests for Range, Clamp and Length + catch TypeError exceptions

[0.11.7]

Changes:

  • #378: Allow extend() of a Schema to return a subclass of a Schema as well.

New:

  • #364: Accept description for Inclusive instances.
  • #373: Accept msg for Maybe instances.
  • #382: Added support for default values in Inclusive instances.

Fixes:

  • #371: Fixed DeprecationWarning related to collections.Mapping.
  • #377: Preserve Unicode strings when passed to utility functions (e.g., Lower(), Upper()).
  • #380: Fixed regression with Any and required flag.

[0.11.5]

  • Fixed issue with opening README file in setup.py.

[0.11.4]

  • Removed use of pypandoc as Markdown is now supported by setup().

[0.11.3] and [0.11.2]

Changes:

  • #349: Support Python 3.7.
  • #343: Drop support for Python 3.3.

New:

  • #342: Add support for sets and frozensets.

Fixes:

  • #332: Fix Python 3.x compatibility for setup.py when pypandoc is installed.
  • #348: Include path in AnyInvalid errors.
  • #351: Fix Date behaviour when a custom format is specified.

[0.11.1] and [0.11.0]

Changes:

  • #293: Support Python 3.6.
  • #294: Drop support for Python 2.6, 3.1 and 3.2.
  • #318: Allow to use nested schema and allow any validator to be compiled.
  • #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: Modify __lt__ in Marker class to allow comparison with non Marker objects, such as str and int.

New:

  • #307: Add description field to Marker instances.
  • #311: Add Schema.infer method for basic schema inference.
  • #314: Add SomeOf validator.

Fixes:

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

[0.10.5]

  • #278: Unicode translation to python 2 issue fixed.

[0.10.2]

Changes:

  • #195: Range raises RangeInvalid when testing math.nan.
  • #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: Change the encoding of keys in error messages from Unicode to UTF-8.

New:

  • #185: Add argument validation decorator.
  • #199: Add Unordered.
  • #200: Add Equal.
  • #207: Add Number.
  • #210: Add Schema equality check.
  • #212: Add coveralls.
  • #227: Improve Marker management in Schema.
  • #232: Add Maybe.
  • #234: Add Date.
  • #236, #237, and #238: Add script for updating gh-pages.
  • #256: Add support for OrderedDict validation.
  • #258: Add Contains.

Fixes:

  • #197: ExactSequence checks sequences are the same length.
  • #201: Empty lists are evaluated as is.
  • #205: Filepath validators correctly handle None.
  • #206: Handle non-subscriptable types in humanize_error.
  • #231: Validate namedtuple as a tuple.
  • #235: Update docstring.
  • #249: Update documentation.
  • #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: Remove setuptools as a dependency.

0.9.3 (2016-08-03)

Changelog not kept for 0.9.3 and earlier releases.