New:
- #534: Support requiring
anyOfa list of keys
Fixes:
Changes:
- #530: Add comprehensive tests for
humanize.pymodule
Fixes:
- 522: Fix regression with ALLOW_EXTRA and
Anyvalidator
Fixes:
- 515: Fix
Removenot removing keys that do not validate - 516: Improve validator typing to allow non-number formats for min and max
- 517: Remove
Maybevalidator typing - 518: Use typing.Container for
Invalidator - 519: Don't enforce type for unused description attribute
- 521: Type schema attribute as
Any
Fixes:
Changes:
- #514: Remove python 3.8 support
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
Changes:
- #487: Add pytest.ini and tox.ini to sdist
- #494: Add
python_requiresso package installers know requirement is >= 3.7
Fixes:
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:
Fixes:
New:
- #457: Enable github actions
- #462: Convert codebase to adhere to
flake8W504 (PEP 8) - #459: Enable
flake8in github actions - #464:
pytestmigration + enable Python 3.10
Changes:
- #450: Display valid
Enumvalues inCoerce
Fixes:
Changes:
- #435: Extended a few tests (
RequiredandIn) - #425: Improve error message for
InandNotIn - #436: Add sorted() for
InandNotIn+ fix tests - #437: Grouped
Maybetests plus added anotherRangetest - #438: Extend tests for
Schemawith empty list or dict
New:
- #433: Add Python 3.9 support
Fixes:
- #431: Fixed typos + made spelling more consistent
- #411: Ensure
Maybepropagates error information - #434: Remove value enumeration when validating empty list
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
Changes:
- #378: Allow
extend()of aSchemato return a subclass of aSchemaas well.
New:
- #364: Accept
descriptionforInclusiveinstances. - #373: Accept
msgforMaybeinstances. - #382: Added support for default values in
Inclusiveinstances.
Fixes:
- #371: Fixed
DeprecationWarningrelated tocollections.Mapping. - #377: Preserve Unicode strings when passed to utility functions (e.g.,
Lower(),Upper()). - #380: Fixed regression with
Anyandrequiredflag.
- Fixed issue with opening README file in
setup.py.
- Removed use of
pypandocas Markdown is now supported bysetup().
Changes:
New:
- #342: Add support for sets and frozensets.
Fixes:
- #332: Fix Python 3.x compatibility for setup.py when
pypandocis installed. - #348: Include path in
AnyInvaliderrors. - #351: Fix
Datebehaviour when a custom format is specified.
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
Markerinstances. - #311: Add
Schema.infermethod for basic schema inference. - #314: Add
SomeOfvalidator.
Fixes:
- #279: Treat Python 2 old-style classes like types when validating.
- #280: Make
IsDir(),IsFile()andPathExists()consistent between different Python versions. - #290: Use absolute imports to avoid import conflicts.
- #291: Fix
Coercevalidator to catchdecimal.InvalidOperation. - #298: Make
Schema([])usage consistent withSchema({}). - #303: Allow partial validation when using validate decorator.
- #316: Make
Schema.__eq__deterministic. - #319: Replace implementation of
Maybe(s)withAny(None, s)to allow it to be compiled.
- #278: Unicode translation to python 2 issue fixed.
Changes:
- #195:
RangeraisesRangeInvalidwhen testingmath.nan. - #215:
{}and[]now always evaluate as is, instead of as any dict or any list. To specify a free-form list, uselistinstead of[]. To specify a free-form dict, usedictinstead ofSchema({}, 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
Schemaequality check. - #212:
Add
coveralls. - #227:
Improve
Markermanagement inSchema. - #232:
Add
Maybe. - #234:
Add
Date. - #236, #237, and #238:
Add script for updating
gh-pages. - #256:
Add support for
OrderedDictvalidation. - #258:
Add
Contains.
Fixes:
- #197:
ExactSequencechecks 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
namedtupleas atuple. - #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.
Changelog not kept for 0.9.3 and earlier releases.