1# Changelog
2
3## [0.11.0]
4
5**Changes**:
6
7- [#293](https://github.com/alecthomas/voluptuous/pull/293): Support Python 3.6.
8- [#294](https://github.com/alecthomas/voluptuous/pull/294): Drop support for Python 2.6, 3.1 and 3.2.
9- [#318](https://github.com/alecthomas/voluptuous/pull/318): Allow to use nested schema and allow any validator to be compiled.
10- [#324](https://github.com/alecthomas/voluptuous/pull/324):
11  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.
12- [#328](https://github.com/alecthomas/voluptuous/pull/328):
13  Modify `__lt__` in Marker class to allow comparison with non Marker objects, such as str and int.
14
15**New**:
16
17- [#307](https://github.com/alecthomas/voluptuous/pull/307): Add description field to `Marker` instances.
18- [#311](https://github.com/alecthomas/voluptuous/pull/311): Add `Schema.infer` method for basic schema inference.
19- [#314](https://github.com/alecthomas/voluptuous/pull/314): Add `SomeOf` validator.
20
21**Fixes**:
22
23- [#279](https://github.com/alecthomas/voluptuous/pull/279):
24  Treat Python 2 old-style classes like types when validating.
25- [#280](https://github.com/alecthomas/voluptuous/pull/280): Make
26  `IsDir()`, `IsFile()` and `PathExists()` consistent between different Python versions.
27- [#290](https://github.com/alecthomas/voluptuous/pull/290): Use absolute imports to avoid import conflicts.
28- [#291](https://github.com/alecthomas/voluptuous/pull/291): Fix `Coerce` validator to catch `decimal.InvalidOperation`.
29- [#298](https://github.com/alecthomas/voluptuous/pull/298): Make `Schema([])` usage consistent with `Schema({})`.
30- [#303](https://github.com/alecthomas/voluptuous/pull/303): Allow partial validation when using validate decorator.
31- [#316](https://github.com/alecthomas/voluptuous/pull/316): Make `Schema.__eq__` deterministic.
32- [#319](https://github.com/alecthomas/voluptuous/pull/319): Replace implementation of `Maybe(s)` with `Any(None, s)` to allow it to be compiled.
33
34## [0.10.5]
35
36- [#278](https://github.com/alecthomas/voluptuous/pull/278): Unicode
37translation to python 2 issue fixed.
38
39## [0.10.2]
40
41**Changes**:
42
43- [#195](https://github.com/alecthomas/voluptuous/pull/195):
44  `Range` raises `RangeInvalid` when testing `math.nan`.
45- [#215](https://github.com/alecthomas/voluptuous/pull/215):
46  `{}` and `[]` now always evaluate as is, instead of as any dict or any list.
47  To specify a free-form list, use `list` instead of `[]`. To specify a
48  free-form dict, use `dict` instead of `Schema({}, extra=ALLOW_EXTRA)`.
49- [#224](https://github.com/alecthomas/voluptuous/pull/224):
50  Change the encoding of keys in error messages from Unicode to UTF-8.
51
52**New**:
53
54- [#185](https://github.com/alecthomas/voluptuous/pull/185):
55  Add argument validation decorator.
56- [#199](https://github.com/alecthomas/voluptuous/pull/199):
57  Add `Unordered`.
58- [#200](https://github.com/alecthomas/voluptuous/pull/200):
59  Add `Equal`.
60- [#207](https://github.com/alecthomas/voluptuous/pull/207):
61  Add `Number`.
62- [#210](https://github.com/alecthomas/voluptuous/pull/210):
63  Add `Schema` equality check.
64- [#212](https://github.com/alecthomas/voluptuous/pull/212):
65  Add `coveralls`.
66- [#227](https://github.com/alecthomas/voluptuous/pull/227):
67  Improve `Marker` management in `Schema`.
68- [#232](https://github.com/alecthomas/voluptuous/pull/232):
69  Add `Maybe`.
70- [#234](https://github.com/alecthomas/voluptuous/pull/234):
71  Add `Date`.
72- [#236](https://github.com/alecthomas/voluptuous/pull/236), [#237](https://github.com/alecthomas/voluptuous/pull/237), and [#238](https://github.com/alecthomas/voluptuous/pull/238):
73  Add script for updating `gh-pages`.
74- [#256](https://github.com/alecthomas/voluptuous/pull/256):
75  Add support for `OrderedDict` validation.
76- [#258](https://github.com/alecthomas/voluptuous/pull/258):
77  Add `Contains`.
78
79**Fixes**:
80
81- [#197](https://github.com/alecthomas/voluptuous/pull/197):
82  `ExactSequence` checks sequences are the same length.
83- [#201](https://github.com/alecthomas/voluptuous/pull/201):
84  Empty lists are evaluated as is.
85- [#205](https://github.com/alecthomas/voluptuous/pull/205):
86  Filepath validators correctly handle `None`.
87- [#206](https://github.com/alecthomas/voluptuous/pull/206):
88  Handle non-subscriptable types in `humanize_error`.
89- [#231](https://github.com/alecthomas/voluptuous/pull/231):
90  Validate `namedtuple` as a `tuple`.
91- [#235](https://github.com/alecthomas/voluptuous/pull/235):
92  Update docstring.
93- [#249](https://github.com/alecthomas/voluptuous/pull/249):
94  Update documentation.
95- [#262](https://github.com/alecthomas/voluptuous/pull/262):
96  Fix a performance issue of exponential complexity where all of the dict keys were matched against all keys in the schema.
97  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.
98  The fix ensures that each key in the dict is matched against the relevant schema keys only. It now works in O(n).
99- [#266](https://github.com/alecthomas/voluptuous/pull/266):
100  Remove setuptools as a dependency.
101
102## 0.9.3 (2016-08-03)
103
104Changelog not kept for 0.9.3 and earlier releases.
105