➕ Add support for Python 3.9.
🛠 Fix handling of
insert_beforeon deferred nodes so that it inserts the new node before the specified node instead of always appending to the end of
- Fix the broken wheels in 1.8.1 and 1.8.0 to include the locale data. sigh
- 🛠 Fix the broken wheels in 1.8.0 to include the locale data.
⬇️ Drop support for Python 3.4.
➕ Add support for Python 3.7 and 3.8.
🛠 Fix deserializer on
DateTimefields to correctly catch
TypeErrorexception, which can arise when using custom formats on the field. Instead of allowing these exceptions to propagate, replace then with an
Invalidexception instead. See https://github.com/Pylons/colander/pull/338
- ⚡️ The URL validator regex has been updated to no longer be vulnerable to a catastrophic backtracking that would have led to an infinite loop. See https://github.com/Pylons/colander/pull/323 and https://github.com/Pylons/colander/issues/290. With thanks to Przemek (https://github.com/p-m-k).
This does change the behaviour of the URL validator and it no longer supports
file://URI scheme (https://tools.ietf.org/html/rfc8089). Users that wish to validate
file://URI's should change their validator to use
It has also dropped support for alternate schemes outside of http/ftp (and their secure equivelants). Please let us know if we need to relax this requirement.
⚡️ The Email validator has been updated to use the same regular expression that is used by the WhatWG HTML specification, thereby increasing the email addresses that will validate correctly from web forms submitted. See https://github.com/Pylons/colander/pull/324 and https://github.com/Pylons/colander/issues/283
Number once again will allow you to serialize None to colander.null, this reverts an accidental revert. See https://github.com/Pylons/colander/issues/204#issuecomment-459556100
👍 Integer SchemaType now supports an optional
strictmode that will validate that the number is an integer, rather than silently accepting floats and truncating. See https://github.com/Pylons/colander/pull/322 and https://github.com/Pylons/colander/issues/292
👌 Support custom format strings on
Datefields. See https://github.com/Pylons/colander/pull/318
👌 Support sub-second precision on
Timefields if provided. See https://github.com/Pylons/colander/pull/319
💅 Format Python code of
colanderto conform to the PEP 8 style guide. Add some linters (
blackand other) into
tox.ini. See https://github.com/Pylons/colander/pull/320
⬇️ Drop Python 3.3 support. Add PyPy3 and Python 3.7 as allowed failures. See https://github.com/Pylons/colander/pull/309
🛠 Fix email validation to not allow all ASCII characters between + and /. This prevents email addresses like 'foo1,[email protected]' from being validated, which would be handled as multiple email addresses by subsequent tools. See https://github.com/Pylons/colander/pull/315
➕ Add support for
enum.Enumobjects. See https://github.com/Pylons/colander/pull/305
- ✂ Remove the
colander.iso8601backward-compatibility module, broken by recent updates to the actual
iso8601package which backed it. Downstream libraries can just mechanically adjust imports to use
colander.iso8601. See https://github.com/Pylons/colander/pull/296
- ✂ Remove the