Metadata-Version: 2.1
Name: pydantic
Version: 1.2
Summary: Data validation and settings management using python 3.6 type hinting
Home-page: https://github.com/samuelcolvin/pydantic
Author: Samuel Colvin
Author-email: s@muelcolvin.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX :: Linux
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Internet
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: dataclasses (>=0.6) ; python_version < "3.7"
Provides-Extra: email
Requires-Dist: email-validator (>=1.0.3) ; extra == 'email'
Provides-Extra: typing_extensions
Requires-Dist: typing-extensions (>=3.7.2) ; extra == 'typing_extensions'

# pydantic

[![BuildStatus](https://travis-ci.org/samuelcolvin/pydantic.svg?branch=master)](https://travis-ci.org/samuelcolvin/pydantic)
[![Coverage](https://codecov.io/gh/samuelcolvin/pydantic/branch/master/graph/badge.svg)](https://codecov.io/gh/samuelcolvin/pydantic)
[![pypi](https://img.shields.io/pypi/v/pydantic.svg)](https://pypi.python.org/pypi/pydantic)
[![CondaForge](https://img.shields.io/conda/v/conda-forge/pydantic.svg)](https://anaconda.org/conda-forge/pydantic)
[![downloads](https://img.shields.io/pypi/dm/pydantic.svg)](https://pypistats.org/packages/pydantic)
[![versions](https://img.shields.io/pypi/pyversions/pydantic.svg)](https://github.com/samuelcolvin/pydantic)
[![license](https://img.shields.io/github/license/samuelcolvin/pydantic.svg)](https://github.com/samuelcolvin/pydantic/blob/master/LICENSE)

Data validation and settings management using Python type hinting.

Fast and extensible, *pydantic* plays nicely with your linters/IDE/brain.
Define how data should be in pure, canonical Python 3.6+; validate it with *pydantic*.

## Help

See [documentation](https://pydantic-docs.helpmanual.io/) for more details.

## Installation

Install using `pip install -U pydantic` or `conda install pydantic -c conda-forge`.
For more installation options to make *pydantic* even faster, 
see the [Install](https://pydantic-docs.helpmanual.io/install/) section in the documentation.

## A Simple Example

```py
from datetime import datetime
from typing import List
from pydantic import BaseModel

class User(BaseModel):
    id: int
    name = 'John Doe'
    signup_ts: datetime = None
    friends: List[int] = []

external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
user = User(**external_data)
print(user)
#> User id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22) friends=[1, 2, 3]
print(user.id)
#> 123
```

## Contributing

For guidance on setting up a development environment and how to make a
contribution to *pydantic*, see 
[Contributing to Pydantic](https://pydantic-docs.helpmanual.io/contributing/).


## v1.2 (2019-11-28)

* Add benchmarks for `cattrs`, [#513](https://github.com/samuelcolvin/pydantic/issues/513) by [@sebastianmika](https://github.com/sebastianmika)
* Add `exclude_none` option to `dict()` and friends, [#587](https://github.com/samuelcolvin/pydantic/issues/587) by [@niknetniko](https://github.com/niknetniko)
* Add benchmarks for `valideer`, [#670](https://github.com/samuelcolvin/pydantic/issues/670) by [@gsakkis](https://github.com/gsakkis)
* Add `parse_obj_as` and `parse_file_as` functions for ad-hoc parsing of data into arbitrary pydantic-compatible types, [#934](https://github.com/samuelcolvin/pydantic/issues/934) by [@dmontagu](https://github.com/dmontagu)
* Add `allow_reuse` argument to validators, thus allowing validator reuse, [#940](https://github.com/samuelcolvin/pydantic/issues/940) by [@dmontagu](https://github.com/dmontagu)
* Add support for mapping types for custom root models, [#958](https://github.com/samuelcolvin/pydantic/issues/958) by [@dmontagu](https://github.com/dmontagu)
* Mypy plugin support for dataclasses, [#966](https://github.com/samuelcolvin/pydantic/issues/966) by [@koxudaxi](https://github.com/koxudaxi)
* Add support for dataclasses default factory, [#968](https://github.com/samuelcolvin/pydantic/issues/968) by [@ahirner](https://github.com/ahirner)
* Add a `ByteSize` type for converting byte string (`1GB`) to plain bytes, [#977](https://github.com/samuelcolvin/pydantic/issues/977) by [@dgasmith](https://github.com/dgasmith)
* Fix mypy complaint about `@root_validator(pre=True)`, [#984](https://github.com/samuelcolvin/pydantic/issues/984) by [@samuelcolvin](https://github.com/samuelcolvin)
* Add manylinux binaries for python 3.8 to pypi, also support manylinux2010, [#994](https://github.com/samuelcolvin/pydantic/issues/994) by [@samuelcolvin](https://github.com/samuelcolvin)
* Adds ByteSize conversion to another unit, [#995](https://github.com/samuelcolvin/pydantic/issues/995) by [@dgasmith](https://github.com/dgasmith)
* Fix `__str__` and `__repr__` inheritance for models, [#1022](https://github.com/samuelcolvin/pydantic/issues/1022) by [@samuelcolvin](https://github.com/samuelcolvin)
* add testimonials section to docs, [#1025](https://github.com/samuelcolvin/pydantic/issues/1025) by [@sullivancolin](https://github.com/sullivancolin)
* Add support for `typing.Literal` for Python 3.8, [#1026](https://github.com/samuelcolvin/pydantic/issues/1026) by [@dmontagu](https://github.com/dmontagu)
* Add support for required `Optional` with `name: Optional[AnyType] = Field(...)` and refactor `ModelField` creation to preserve `required` parameter value, [#1031](https://github.com/samuelcolvin/pydantic/issues/1031) by [@tiangolo](https://github.com/tiangolo)

## v1.1.1 (2019-11-20)

* Fix bug where use of complex fields on sub-models could cause fields to be incorrectly configured, [#1015](https://github.com/samuelcolvin/pydantic/issues/1015) by [@samuelcolvin](https://github.com/samuelcolvin)

## v1.1 (2019-11-07)

* Add a mypy plugin for type checking `BaseModel.__init__` and more, [#722](https://github.com/samuelcolvin/pydantic/issues/722) by [@dmontagu](https://github.com/dmontagu)
* Change return type typehint for `GenericModel.__class_getitem__` to prevent PyCharm warnings, [#936](https://github.com/samuelcolvin/pydantic/issues/936) by [@dmontagu](https://github.com/dmontagu)
* Fix usage of `Any` to allow `None`, also support `TypeVar` thus allowing use of un-parameterised collection types
  e.g. `Dict` and `List`, [#962](https://github.com/samuelcolvin/pydantic/issues/962) by [@samuelcolvin](https://github.com/samuelcolvin)
* Set `FieldInfo` on subfields to fix schema generation for complex nested types, [#965](https://github.com/samuelcolvin/pydantic/issues/965) by [@samuelcolvin](https://github.com/samuelcolvin)

## v1.0 (2019-10-23)

* **Breaking Change:** deprecate the `Model.fields` property, use `Model.__fields__` instead, [#883](https://github.com/samuelcolvin/pydantic/issues/883) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking Change:** Change the precedence of aliases so child model aliases override parent aliases, 
  including using `alias_generator`, [#904](https://github.com/samuelcolvin/pydantic/issues/904) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking change:** Rename `skip_defaults` to `exclude_unset`, and add ability to exclude actual defaults, [#915](https://github.com/samuelcolvin/pydantic/issues/915) by [@dmontagu](https://github.com/dmontagu)
* Add `**kwargs` to `pydantic.main.ModelMetaclass.__new__` so `__init_subclass__` can take custom parameters on extended 
  `BaseModel` classes, [#867](https://github.com/samuelcolvin/pydantic/issues/867) by [@retnikt](https://github.com/retnikt)
* Fix field of a type that has a default value, [#880](https://github.com/samuelcolvin/pydantic/issues/880) by [@koxudaxi](https://github.com/koxudaxi)
* Use `FutureWarning` instead of `DeprecationWarning` when `alias` instead of `env` is used for settings models, [#881](https://github.com/samuelcolvin/pydantic/issues/881) by [@samuelcolvin](https://github.com/samuelcolvin)
* Fix issue with `BaseSettings` inheritance and `alias` getting set to `None`, [#882](https://github.com/samuelcolvin/pydantic/issues/882) by [@samuelcolvin](https://github.com/samuelcolvin)
* Modify `__repr__` and `__str__` methods to be consistent across all public classes, add `__pretty__` to support
  python-devtools, [#884](https://github.com/samuelcolvin/pydantic/issues/884) by [@samuelcolvin](https://github.com/samuelcolvin)
* deprecation warning for `case_insensitive` on `BaseSettings` config, [#885](https://github.com/samuelcolvin/pydantic/issues/885) by [@samuelcolvin](https://github.com/samuelcolvin)
* For `BaseSettings` merge environment variables and in-code values recursively, as long as they create a valid object
  when merged together, to allow splitting init arguments, [#888](https://github.com/samuelcolvin/pydantic/issues/888) by [@idmitrievsky](https://github.com/idmitrievsky)
* change secret types example, [#890](https://github.com/samuelcolvin/pydantic/issues/890) by [@ashears](https://github.com/ashears)
* Change the signature of `Model.construct()` to be more user-friendly, document `construct()` usage, [#898](https://github.com/samuelcolvin/pydantic/issues/898) by [@samuelcolvin](https://github.com/samuelcolvin)
* Add example for the `construct()` method, [#907](https://github.com/samuelcolvin/pydantic/issues/907) by [@ashears](https://github.com/ashears)
* Improve use of `Field` constraints on complex types, raise an error if constraints are not enforceable,
  also support tuples with an ellipsis `Tuple[X, ...]`, `Sequence` and `FrozenSet` in schema, [#909](https://github.com/samuelcolvin/pydantic/issues/909) by [@samuelcolvin](https://github.com/samuelcolvin)
* update docs for bool missing valid value, [#911](https://github.com/samuelcolvin/pydantic/issues/911) by [@trim21](https://github.com/trim21)
* Better `str`/`repr` logic for `ModelField`, [#912](https://github.com/samuelcolvin/pydantic/issues/912) by [@samuelcolvin](https://github.com/samuelcolvin)
* Fix `ConstrainedList`, update schema generation to reflect `min_items` and `max_items` `Field()` arguments, [#917](https://github.com/samuelcolvin/pydantic/issues/917) by [@samuelcolvin](https://github.com/samuelcolvin)
* Allow abstracts sets (eg. dict keys) in the `include` and `exclude` arguments of `dict()`, [#921](https://github.com/samuelcolvin/pydantic/issues/921) by [@samuelcolvin](https://github.com/samuelcolvin)
* Fix JSON serialization errors on `ValidationError.json()` by using `pydantic_encoder`, [#922](https://github.com/samuelcolvin/pydantic/issues/922) by [@samuelcolvin](https://github.com/samuelcolvin)
* Clarify usage of `remove_untouched`, improve error message for types with no validators, [#926](https://github.com/samuelcolvin/pydantic/issues/926) by [@retnikt](https://github.com/retnikt)

## v1.0b2 (2019-10-07)

* Mark `StrictBool` typecheck as `bool` to allow for default values without mypy errors, [#690](https://github.com/samuelcolvin/pydantic/issues/690) by [@dmontagu](https://github.com/dmontagu)
* Transfer the documentation build from sphinx to mkdocs, re-write much of the documentation, [#856](https://github.com/samuelcolvin/pydantic/issues/856) by [@samuelcolvin](https://github.com/samuelcolvin)
* Add support for custom naming schemes for `GenericModel` subclasses, [#859](https://github.com/samuelcolvin/pydantic/issues/859) by [@dmontagu](https://github.com/dmontagu)
* Add `if TYPE_CHECKING:` to the excluded lines for test coverage, [#874](https://github.com/samuelcolvin/pydantic/issues/874) by [@dmontagu](https://github.com/dmontagu)
* Rename `allow_population_by_alias` to `allow_population_by_field_name`, remove unnecessary warning about it, [#875](https://github.com/samuelcolvin/pydantic/issues/875) by [@samuelcolvin](https://github.com/samuelcolvin)

## v1.0b1 (2019-10-01)

* **Breaking Change:** rename `Schema` to `Field`, make it a function to placate mypy, [#577](https://github.com/samuelcolvin/pydantic/issues/577) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking Change:** modify parsing behavior for `bool`, [#617](https://github.com/samuelcolvin/pydantic/issues/617) by [@dmontagu](https://github.com/dmontagu)
* **Breaking Change:** `get_validators` is no longer recognised, use `__get_validators__`.
  `Config.ignore_extra` and `Config.allow_extra` are no longer recognised, use `Config.extra`, [#720](https://github.com/samuelcolvin/pydantic/issues/720) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking Change:** modify default config settings for `BaseSettings`; `case_insensitive` renamed to `case_sensitive`,
  default changed to `case_sensitive = False`, `env_prefix` default changed to `''` - e.g. no prefix, [#721](https://github.com/samuelcolvin/pydantic/issues/721) by [@dmontagu](https://github.com/dmontagu)
* **Breaking change:** Implement `root_validator` and rename root errors from `__obj__` to `__root__`, [#729](https://github.com/samuelcolvin/pydantic/issues/729) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking Change:** alter the behaviour of `dict(model)` so that sub-models are nolonger
  converted to dictionaries, [#733](https://github.com/samuelcolvin/pydantic/issues/733) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking change:** Added `initvars` support to `post_init_post_parse`, [#748](https://github.com/samuelcolvin/pydantic/issues/748) by [@Raphael-C-Almeida](https://github.com/Raphael-C-Almeida)
* **Breaking Change:** Make `BaseModel.json()` only serialize the `__root__` key for models with custom root, [#752](https://github.com/samuelcolvin/pydantic/issues/752) by [@dmontagu](https://github.com/dmontagu)
* **Breaking Change:** complete rewrite of `URL` parsing logic, [#755](https://github.com/samuelcolvin/pydantic/issues/755) by [@samuelcolvin](https://github.com/samuelcolvin)
* **Breaking Change:** preserve superclass annotations for field-determination when not provided in subclass, [#757](https://github.com/samuelcolvin/pydantic/issues/757) by [@dmontagu](https://github.com/dmontagu)
* **Breaking Change:** `BaseSettings` now uses the special `env` settings to define which environment variables to
  read, not aliases, [#847](https://github.com/samuelcolvin/pydantic/issues/847) by [@samuelcolvin](https://github.com/samuelcolvin)
* add support for `assert` statements inside validators, [#653](https://github.com/samuelcolvin/pydantic/issues/653) by [@abdusco](https://github.com/abdusco)
* Update documentation to specify the use of `pydantic.dataclasses.dataclass` and subclassing `pydantic.BaseModel`, [#710](https://github.com/samuelcolvin/pydantic/issues/710) by [@maddosaurus](https://github.com/maddosaurus)
* Allow custom JSON decoding and encoding via `json_loads` and `json_dumps` `Config` properties, [#714](https://github.com/samuelcolvin/pydantic/issues/714) by [@samuelcolvin](https://github.com/samuelcolvin)
* make all annotated fields occur in the order declared, [#715](https://github.com/samuelcolvin/pydantic/issues/715) by [@dmontagu](https://github.com/dmontagu)
* use pytest to test `mypy` integration, [#735](https://github.com/samuelcolvin/pydantic/issues/735) by [@dmontagu](https://github.com/dmontagu)
* add `__repr__` method to `ErrorWrapper`, [#738](https://github.com/samuelcolvin/pydantic/issues/738) by [@samuelcolvin](https://github.com/samuelcolvin)
* Added support for `FrozenSet` members in dataclasses, and a better error when attempting to use types from the `typing` module that are not supported by Pydantic, [#745](https://github.com/samuelcolvin/pydantic/issues/745) by [@djpetti](https://github.com/djpetti)
* add documentation for Pycharm Plugin, [#750](https://github.com/samuelcolvin/pydantic/issues/750) by [@koxudaxi](https://github.com/koxudaxi)
* fix broken examples in the docs, [#753](https://github.com/samuelcolvin/pydantic/issues/753) by [@dmontagu](https://github.com/dmontagu)
* moving typing related objects into `pydantic.typing`, [#761](https://github.com/samuelcolvin/pydantic/issues/761) by [@samuelcolvin](https://github.com/samuelcolvin)
* Minor performance improvements to `ErrorWrapper`, `ValidationError` and datetime parsing, [#763](https://github.com/samuelcolvin/pydantic/issues/763) by [@samuelcolvin](https://github.com/samuelcolvin)
* Improvements to `datetime`/`date`/`time`/`timedelta` types: more descriptive errors,
  change errors to `value_error` not `type_error`, support bytes, [#766](https://github.com/samuelcolvin/pydantic/issues/766) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix error messages for `Literal` types with multiple allowed values, [#770](https://github.com/samuelcolvin/pydantic/issues/770) by [@dmontagu](https://github.com/dmontagu)
* Improved auto-generated `title` field in JSON schema by converting underscore to space, [#772](https://github.com/samuelcolvin/pydantic/issues/772) by [@skewty](https://github.com/skewty)
* support `mypy --no-implicit-reexport` for dataclasses, also respect `--no-implicit-reexport` in pydantic itself, [#783](https://github.com/samuelcolvin/pydantic/issues/783) by [@samuelcolvin](https://github.com/samuelcolvin)
* add the `PaymentCardNumber` type, [#790](https://github.com/samuelcolvin/pydantic/issues/790) by [@matin](https://github.com/matin)
* Fix const validations for lists, [#794](https://github.com/samuelcolvin/pydantic/issues/794) by [@hmvp](https://github.com/hmvp)
* Set `additionalProperties` to false in schema for models with extra fields disallowed, [#796](https://github.com/samuelcolvin/pydantic/issues/796) by [@Code0x58](https://github.com/Code0x58)
* `EmailStr` validation method now returns local part case-sensitive per RFC 5321, [#798](https://github.com/samuelcolvin/pydantic/issues/798) by [@henriklindgren](https://github.com/henriklindgren)
* Added ability to validate strictness to `ConstrainedFloat`, `ConstrainedInt` and `ConstrainedStr` and added
  `StrictFloat` and `StrictInt` classes, [#799](https://github.com/samuelcolvin/pydantic/issues/799) by [@DerRidda](https://github.com/DerRidda)
* Improve handling of `None` and `Optional`, replace `whole` with `each_item` (inverse meaning, default `False`)
  on validators, [#803](https://github.com/samuelcolvin/pydantic/issues/803) by [@samuelcolvin](https://github.com/samuelcolvin)
* add support for `Type[T]` type hints, [#807](https://github.com/samuelcolvin/pydantic/issues/807) by [@timonbimon](https://github.com/timonbimon)
* Performance improvements from removing `change_exceptions`, change how pydantic error are constructed, [#819](https://github.com/samuelcolvin/pydantic/issues/819) by [@samuelcolvin](https://github.com/samuelcolvin)
* Fix the error message arising when a `BaseModel`-type model field causes a `ValidationError` during parsing, [#820](https://github.com/samuelcolvin/pydantic/issues/820) by [@dmontagu](https://github.com/dmontagu)
* allow `getter_dict` on `Config`, modify `GetterDict` to be more like a `Mapping` object and thus easier to work with, [#821](https://github.com/samuelcolvin/pydantic/issues/821) by [@samuelcolvin](https://github.com/samuelcolvin)
* Only check `TypeVar` param on base `GenericModel` class, [#842](https://github.com/samuelcolvin/pydantic/issues/842) by [@zpencerq](https://github.com/zpencerq)
* rename `Model._schema_cache` -> `Model.__schema_cache__`, `Model._json_encoder` -> `Model.__json_encoder__`,
  `Model._custom_root_type` -> `Model.__custom_root_type__`, [#851](https://github.com/samuelcolvin/pydantic/issues/851) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.32.2 (2019-08-17)

* fix `__post_init__` usage with dataclass inheritance, fix [#739](https://github.com/samuelcolvin/pydantic/issues/739) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix required fields validation on GenericModels classes, [#742](https://github.com/samuelcolvin/pydantic/issues/742) by [@amitbl](https://github.com/amitbl)
* fix defining custom `Schema` on `GenericModel` fields, [#754](https://github.com/samuelcolvin/pydantic/issues/754) by [@amitbl](https://github.com/amitbl)

## v0.32.1 (2019-08-08)

* do not validate extra fields when `validate_assignment` is on, [#724](https://github.com/samuelcolvin/pydantic/issues/724) by [@YaraslauZhylko](https://github.com/YaraslauZhylko)

## v0.32 (2019-08-06)

* add model name to `ValidationError` error message, [#676](https://github.com/samuelcolvin/pydantic/issues/676) by [@dmontagu](https://github.com/dmontagu)
* **breaking change**: remove `__getattr__` and rename `__values__` to `__dict__` on `BaseModel`,
  deprecation warning on use `__values__` attr, attributes access speed increased up to 14 times, [#712](https://github.com/samuelcolvin/pydantic/issues/712) by [@MrMrRobat](https://github.com/MrMrRobat)
* support `ForwardRef` (without self-referencing annotations) in Python 3.6, [#706](https://github.com/samuelcolvin/pydantic/issues/706) by [@koxudaxi](https://github.com/koxudaxi)
* implement `schema_extra` in `Config` sub-class, [#663](https://github.com/samuelcolvin/pydantic/issues/663) by [@tiangolo](https://github.com/tiangolo)

## v0.31.1 (2019-07-31)

* fix json generation for `EnumError`, [#697](https://github.com/samuelcolvin/pydantic/issues/697) by [@dmontagu](https://github.com/dmontagu)
* update numerous dependencies

## v0.31 (2019-07-24)

* better support for floating point `multiple_of` values, [#652](https://github.com/samuelcolvin/pydantic/issues/652) by [@justindujardin](https://github.com/justindujardin)
* fix schema generation for `NewType` and `Literal`, [#649](https://github.com/samuelcolvin/pydantic/issues/649) by [@dmontagu](https://github.com/dmontagu)
* fix `alias_generator` and field config conflict, [#645](https://github.com/samuelcolvin/pydantic/issues/645) by [@gmetzker](https://github.com/gmetzker) and [#658](https://github.com/samuelcolvin/pydantic/issues/658) by [@MrMrRobat](https://github.com/MrMrRobat)
* more detailed message for `EnumError`, [#673](https://github.com/samuelcolvin/pydantic/issues/673) by [@dmontagu](https://github.com/dmontagu)
* add advanced exclude support for `dict`, `json` and `copy`, [#648](https://github.com/samuelcolvin/pydantic/issues/648) by [@MrMrRobat](https://github.com/MrMrRobat)
* fix bug in `GenericModel` for models with concrete parameterized fields, [#672](https://github.com/samuelcolvin/pydantic/issues/672) by [@dmontagu](https://github.com/dmontagu)
* add documentation for `Literal` type, [#651](https://github.com/samuelcolvin/pydantic/issues/651) by [@dmontagu](https://github.com/dmontagu)
* add `Config.keep_untouched` for custom descriptors support, [#679](https://github.com/samuelcolvin/pydantic/issues/679) by [@MrMrRobat](https://github.com/MrMrRobat)
* use `inspect.cleandoc` internally to get model description, [#657](https://github.com/samuelcolvin/pydantic/issues/657) by [@tiangolo](https://github.com/tiangolo)
* add `Color` to schema generation, by [@euri10](https://github.com/euri10)
* add documentation for Literal type, [#651](https://github.com/samuelcolvin/pydantic/issues/651) by [@dmontagu](https://github.com/dmontagu)

## v0.30.1 (2019-07-15)

* fix so nested classes which inherit and change `__init__` are correctly processed while still allowing `self` as a
  parameter, [#644](https://github.com/samuelcolvin/pydantic/issues/644) by [@lnaden](https://github.com/lnaden) and [@dgasmith](https://github.com/dgasmith)

## v0.30 (2019-07-07)

* enforce single quotes in code, [#612](https://github.com/samuelcolvin/pydantic/issues/612) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix infinite recursion with dataclass inheritance and `__post_init__`, [#606](https://github.com/samuelcolvin/pydantic/issues/606) by [@Hanaasagi](https://github.com/Hanaasagi)
* fix default values for `GenericModel`, [#610](https://github.com/samuelcolvin/pydantic/issues/610) by [@dmontagu](https://github.com/dmontagu)
* clarify that self-referencing models require python 3.7+, [#616](https://github.com/samuelcolvin/pydantic/issues/616) by [@vlcinsky](https://github.com/vlcinsky)
* fix truncate for types, [#611](https://github.com/samuelcolvin/pydantic/issues/611) by [@dmontagu](https://github.com/dmontagu)
* add `alias_generator` support, [#622](https://github.com/samuelcolvin/pydantic/issues/622) by [@MrMrRobat](https://github.com/MrMrRobat)
* fix unparameterized generic type schema generation, [#625](https://github.com/samuelcolvin/pydantic/issues/625) by [@dmontagu](https://github.com/dmontagu)
* fix schema generation with multiple/circular references to the same model, [#621](https://github.com/samuelcolvin/pydantic/issues/621) by [@tiangolo](https://github.com/tiangolo) and [@wongpat](https://github.com/wongpat)
* support custom root types, [#628](https://github.com/samuelcolvin/pydantic/issues/628) by [@koxudaxi](https://github.com/koxudaxi)
* support `self` as a field name in `parse_obj`, [#632](https://github.com/samuelcolvin/pydantic/issues/632) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.29 (2019-06-19)

* support dataclasses.InitVar, [#592](https://github.com/samuelcolvin/pydantic/issues/592) by [@pfrederiks](https://github.com/pfrederiks)
* Updated documentation to elucidate the usage of `Union` when defining multiple types under an attribute's
  annotation and showcase how the type-order can affect marshalling of provided values, [#594](https://github.com/samuelcolvin/pydantic/issues/594) by [@somada141](https://github.com/somada141)
* add `conlist` type, [#583](https://github.com/samuelcolvin/pydantic/issues/583) by [@hmvp](https://github.com/hmvp)
* add support for generics, [#595](https://github.com/samuelcolvin/pydantic/issues/595) by [@dmontagu](https://github.com/dmontagu)

## v0.28 (2019-06-06)

* fix support for JSON Schema generation when using models with circular references in Python 3.7, [#572](https://github.com/samuelcolvin/pydantic/issues/572) by [@tiangolo](https://github.com/tiangolo)
* support `__post_init_post_parse__` on dataclasses, [#567](https://github.com/samuelcolvin/pydantic/issues/567) by [@sevaho](https://github.com/sevaho)
* allow dumping dataclasses to JSON, [#575](https://github.com/samuelcolvin/pydantic/issues/575) by [@samuelcolvin](https://github.com/samuelcolvin) and [@DanielOberg](https://github.com/DanielOberg)
* ORM mode, [#562](https://github.com/samuelcolvin/pydantic/issues/562) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix `pydantic.compiled` on ipython, [#573](https://github.com/samuelcolvin/pydantic/issues/573) by [@dmontagu](https://github.com/dmontagu) and [@samuelcolvin](https://github.com/samuelcolvin)
* add `StrictBool` type, [#579](https://github.com/samuelcolvin/pydantic/issues/579) by [@cazgp](https://github.com/cazgp)

## v0.27 (2019-05-30)

* **breaking change**  `_pydantic_post_init` to execute dataclass' original `__post_init__` before
  validation, [#560](https://github.com/samuelcolvin/pydantic/issues/560) by [@HeavenVolkoff](https://github.com/HeavenVolkoff)
* fix handling of generic types without specified parameters, [#550](https://github.com/samuelcolvin/pydantic/issues/550) by [@dmontagu](https://github.com/dmontagu)
* **breaking change** (maybe): this is the first release compiled with **cython**, see the docs and please
  submit an issue if you run into problems

## v0.27.0a1 (2019-05-26)

* fix JSON Schema for `list`, `tuple`, and `set`, [#540](https://github.com/samuelcolvin/pydantic/issues/540) by [@tiangolo](https://github.com/tiangolo)
* compiling with cython, `manylinux` binaries, some other performance improvements, [#548](https://github.com/samuelcolvin/pydantic/issues/548) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.26 (2019-05-22)

* fix to schema generation for `IPvAnyAddress`, `IPvAnyInterface`, `IPvAnyNetwork` [#498](https://github.com/samuelcolvin/pydantic/issues/498) by [@pilosus](https://github.com/pilosus)
* fix variable length tuples support, [#495](https://github.com/samuelcolvin/pydantic/issues/495) by [@pilosus](https://github.com/pilosus)
* fix return type hint for `create_model`, [#526](https://github.com/samuelcolvin/pydantic/issues/526) by [@dmontagu](https://github.com/dmontagu)
* **Breaking Change:** fix `.dict(skip_keys=True)` skipping values set via alias (this involves changing
  `validate_model()` to always returns `Tuple[Dict[str, Any], Set[str], Optional[ValidationError]]`), [#517](https://github.com/samuelcolvin/pydantic/issues/517) by [@sommd](https://github.com/sommd)
* fix to schema generation for `IPv4Address`, `IPv6Address`, `IPv4Interface`,
  `IPv6Interface`, `IPv4Network`, `IPv6Network` [#532](https://github.com/samuelcolvin/pydantic/issues/532) by [@euri10](https://github.com/euri10)
* add `Color` type, [#504](https://github.com/samuelcolvin/pydantic/issues/504) by [@pilosus](https://github.com/pilosus) and [@samuelcolvin](https://github.com/samuelcolvin)

## v0.25 (2019-05-05)

* Improve documentation on self-referencing models and annotations, [#487](https://github.com/samuelcolvin/pydantic/issues/487) by [@theenglishway](https://github.com/theenglishway)
* fix `.dict()` with extra keys, [#490](https://github.com/samuelcolvin/pydantic/issues/490) by [@JaewonKim](https://github.com/JaewonKim)
* support `const` keyword in `Schema`, [#434](https://github.com/samuelcolvin/pydantic/issues/434) by [@Sean1708](https://github.com/Sean1708)

## v0.24 (2019-04-23)

* fix handling `ForwardRef` in sub-types, like `Union`, [#464](https://github.com/samuelcolvin/pydantic/issues/464) by [@tiangolo](https://github.com/tiangolo)
* fix secret serialization, [#465](https://github.com/samuelcolvin/pydantic/issues/465) by [@atheuz](https://github.com/atheuz)
* Support custom validators for dataclasses, [#454](https://github.com/samuelcolvin/pydantic/issues/454) by [@primal100](https://github.com/primal100)
* fix `parse_obj` to cope with dict-like objects, [#472](https://github.com/samuelcolvin/pydantic/issues/472) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix to schema generation in nested dataclass-based models, [#474](https://github.com/samuelcolvin/pydantic/issues/474) by [@NoAnyLove](https://github.com/NoAnyLove)
* fix `json` for `Path`, `FilePath`, and `DirectoryPath` objects, [#473](https://github.com/samuelcolvin/pydantic/issues/473) by [@mikegoodspeed](https://github.com/mikegoodspeed)

## v0.23 (2019-04-04)

* improve documentation for contributing section, [#441](https://github.com/samuelcolvin/pydantic/issues/441) by [@pilosus](https://github.com/pilosus)
* improve README.rst to include essential information about the package, [#446](https://github.com/samuelcolvin/pydantic/issues/446) by [@pilosus](https://github.com/pilosus)
* `IntEnum` support, [#444](https://github.com/samuelcolvin/pydantic/issues/444) by [@potykion](https://github.com/potykion)
* fix PyObject callable value, [#409](https://github.com/samuelcolvin/pydantic/issues/409) by [@pilosus](https://github.com/pilosus)
* fix `black` deprecation warnings after update, [#451](https://github.com/samuelcolvin/pydantic/issues/451) by [@pilosus](https://github.com/pilosus)
* fix `ForwardRef` collection bug, [#450](https://github.com/samuelcolvin/pydantic/issues/450) by [@tigerwings](https://github.com/tigerwings)
* Support specialized `ClassVars`, [#455](https://github.com/samuelcolvin/pydantic/issues/455) by [@tyrylu](https://github.com/tyrylu)
* fix JSON serialization for `ipaddress` types, [#333](https://github.com/samuelcolvin/pydantic/issues/333) by [@pilosus](https://github.com/pilosus)
* add `SecretStr` and `SecretBytes` types, [#452](https://github.com/samuelcolvin/pydantic/issues/452) by [@atheuz](https://github.com/atheuz)

## v0.22 (2019-03-29)

* add `IPv{4,6,Any}Network` and `IPv{4,6,Any}Interface` types from `ipaddress` stdlib, [#333](https://github.com/samuelcolvin/pydantic/issues/333) by [@pilosus](https://github.com/pilosus)
* add docs for `datetime` types, [#386](https://github.com/samuelcolvin/pydantic/issues/386) by [@pilosus](https://github.com/pilosus)
* fix to schema generation in dataclass-based models, [#408](https://github.com/samuelcolvin/pydantic/issues/408) by [@pilosus](https://github.com/pilosus)
* fix path in nested models, [#437](https://github.com/samuelcolvin/pydantic/issues/437) by [@kataev](https://github.com/kataev)
* add `Sequence` support, [#304](https://github.com/samuelcolvin/pydantic/issues/304) by [@pilosus](https://github.com/pilosus)

## v0.21.0 (2019-03-15)

* fix typo in `NoneIsNotAllowedError` message, [#414](https://github.com/samuelcolvin/pydantic/issues/414) by [@YaraslauZhylko](https://github.com/YaraslauZhylko)
* add `IPvAnyAddress`, `IPv4Address` and `IPv6Address` types, [#333](https://github.com/samuelcolvin/pydantic/issues/333) by [@pilosus](https://github.com/pilosus)

## v0.20.1 (2019-02-26)

* fix type hints of `parse_obj` and similar methods, [#405](https://github.com/samuelcolvin/pydantic/issues/405) by [@erosennin](https://github.com/erosennin)
* fix submodel validation, [#403](https://github.com/samuelcolvin/pydantic/issues/403) by [@samuelcolvin](https://github.com/samuelcolvin)
* correct type hints for `ValidationError.json`, [#406](https://github.com/samuelcolvin/pydantic/issues/406) by [@layday](https://github.com/layday)

## v0.20.0 (2019-02-18)

* fix tests for python 3.8, [#396](https://github.com/samuelcolvin/pydantic/issues/396) by [@samuelcolvin](https://github.com/samuelcolvin)
* Adds fields to the `dir` method for autocompletion in interactive sessions, [#398](https://github.com/samuelcolvin/pydantic/issues/398) by [@dgasmith](https://github.com/dgasmith)
* support `ForwardRef` (and therefore `from __future__ import annotations`) with dataclasses, [#397](https://github.com/samuelcolvin/pydantic/issues/397) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.20.0a1 (2019-02-13)

* **breaking change** (maybe): more sophisticated argument parsing for validators, any subset of
  `values`, `config` and `field` is now permitted, eg. `(cls, value, field)`,
  however the variadic key word argument ("`**kwargs`") **must** be called `kwargs`, [#388](https://github.com/samuelcolvin/pydantic/issues/388) by [@samuelcolvin](https://github.com/samuelcolvin)
* **breaking change**: Adds `skip_defaults` argument to `BaseModel.dict()` to allow skipping of fields that
  were not explicitly set, signature of `Model.construct()` changed, [#389](https://github.com/samuelcolvin/pydantic/issues/389) by [@dgasmith](https://github.com/dgasmith)
* add `py.typed` marker file for PEP-561 support, [#391](https://github.com/samuelcolvin/pydantic/issues/391) by [@je-l](https://github.com/je-l)
* Fix `extra` behaviour for multiple inheritance/mix-ins, [#394](https://github.com/samuelcolvin/pydantic/issues/394) by [@YaraslauZhylko](https://github.com/YaraslauZhylko)

## v0.19.0 (2019-02-04)

* Support `Callable` type hint, fix [#279](https://github.com/samuelcolvin/pydantic/issues/279) by [@proofit404](https://github.com/proofit404)
* Fix schema for fields with `validator` decorator, fix [#375](https://github.com/samuelcolvin/pydantic/issues/375) by [@tiangolo](https://github.com/tiangolo)
* Add `multiple_of` constraint to `ConstrainedDecimal`, `ConstrainedFloat`, `ConstrainedInt`
  and their related types `condecimal`, `confloat`, and `conint` [#371](https://github.com/samuelcolvin/pydantic/issues/371), thanks [@StephenBrown2](https://github.com/StephenBrown2)
* Deprecated `ignore_extra` and `allow_extra` Config fields in favor of `extra`, [#352](https://github.com/samuelcolvin/pydantic/issues/352) by [@liiight](https://github.com/liiight)
* Add type annotations to all functions, test fully with mypy, [#373](https://github.com/samuelcolvin/pydantic/issues/373) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix for 'missing' error with `validate_all` or `validate_always`, [#381](https://github.com/samuelcolvin/pydantic/issues/381) by [@samuelcolvin](https://github.com/samuelcolvin)
* Change the second/millisecond watershed for date/datetime parsing to `2e10`, [#385](https://github.com/samuelcolvin/pydantic/issues/385) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.18.2 (2019-01-22)

* Fix to schema generation with `Optional` fields, fix [#361](https://github.com/samuelcolvin/pydantic/issues/361) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.18.1 (2019-01-17)

* add `ConstrainedBytes` and `conbytes` types, [#315](https://github.com/samuelcolvin/pydantic/issues/315) [@Gr1N](https://github.com/Gr1N)
* adding `MANIFEST.in` to include license in package `.tar.gz`, [#358](https://github.com/samuelcolvin/pydantic/issues/358) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.18.0 (2019-01-13)

* **breaking change**: don't call validators on keys of dictionaries, [#254](https://github.com/samuelcolvin/pydantic/issues/254) by [@samuelcolvin](https://github.com/samuelcolvin)
* Fix validators with `always=True` when the default is `None` or the type is optional, also prevent
  `whole` validators being called for sub-fields, fix [#132](https://github.com/samuelcolvin/pydantic/issues/132) by [@samuelcolvin](https://github.com/samuelcolvin)
* improve documentation for settings priority and allow it to be easily changed, [#343](https://github.com/samuelcolvin/pydantic/issues/343) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix `ignore_extra=False` and `allow_population_by_alias=True`, fix [#257](https://github.com/samuelcolvin/pydantic/issues/257) by [@samuelcolvin](https://github.com/samuelcolvin)
* **breaking change**: Set `BaseConfig` attributes `min_anystr_length` and `max_anystr_length` to
  `None` by default, fix [#349](https://github.com/samuelcolvin/pydantic/issues/349) in [#350](https://github.com/samuelcolvin/pydantic/issues/350) by [@tiangolo](https://github.com/tiangolo)
* add support for postponed annotations, [#348](https://github.com/samuelcolvin/pydantic/issues/348) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.17.0 (2018-12-27)

* fix schema for `timedelta` as number, [#325](https://github.com/samuelcolvin/pydantic/issues/325) by [@tiangolo](https://github.com/tiangolo)
* prevent validators being called repeatedly after inheritance, [#327](https://github.com/samuelcolvin/pydantic/issues/327) by [@samuelcolvin](https://github.com/samuelcolvin)
* prevent duplicate validator check in ipython, fix [#312](https://github.com/samuelcolvin/pydantic/issues/312) by [@samuelcolvin](https://github.com/samuelcolvin)
* add "Using Pydantic" section to docs, [#323](https://github.com/samuelcolvin/pydantic/issues/323) by [@tiangolo](https://github.com/tiangolo) & [#326](https://github.com/samuelcolvin/pydantic/issues/326) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix schema generation for fields annotated as `: dict`, `: list`,
  `: tuple` and `: set`, [#330](https://github.com/samuelcolvin/pydantic/issues/330) & [#335](https://github.com/samuelcolvin/pydantic/issues/335) by [@nkonin](https://github.com/nkonin)
* add support for constrained strings as dict keys in schema, [#332](https://github.com/samuelcolvin/pydantic/issues/332) by [@tiangolo](https://github.com/tiangolo)
* support for passing Config class in dataclasses decorator, [#276](https://github.com/samuelcolvin/pydantic/issues/276) by [@jarekkar](https://github.com/jarekkar)
  (**breaking change**: this supersedes the `validate_assignment` argument with `config`)
* support for nested dataclasses, [#334](https://github.com/samuelcolvin/pydantic/issues/334) by [@samuelcolvin](https://github.com/samuelcolvin)
* better errors when getting an `ImportError` with `PyObject`, [#309](https://github.com/samuelcolvin/pydantic/issues/309) by [@samuelcolvin](https://github.com/samuelcolvin)
* rename `get_validators` to `__get_validators__`, deprecation warning on use of old name, [#338](https://github.com/samuelcolvin/pydantic/issues/338) by [@samuelcolvin](https://github.com/samuelcolvin)
* support `ClassVar` by excluding such attributes from fields, [#184](https://github.com/samuelcolvin/pydantic/issues/184) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.16.1 (2018-12-10)

* fix `create_model` to correctly use the passed `__config__`, [#320](https://github.com/samuelcolvin/pydantic/issues/320) by [@hugoduncan](https://github.com/hugoduncan)

## v0.16.0 (2018-12-03)

* **breaking change**: refactor schema generation to be compatible with JSON Schema and OpenAPI specs, [#308](https://github.com/samuelcolvin/pydantic/issues/308) by [@tiangolo](https://github.com/tiangolo)
* add `schema` to `schema` module to generate top-level schemas from base models, [#308](https://github.com/samuelcolvin/pydantic/issues/308) by [@tiangolo](https://github.com/tiangolo)
* add additional fields to `Schema` class to declare validation for `str` and numeric values, [#311](https://github.com/samuelcolvin/pydantic/issues/311) by [@tiangolo](https://github.com/tiangolo)
* rename `_schema` to `schema` on fields, [#318](https://github.com/samuelcolvin/pydantic/issues/318) by [@samuelcolvin](https://github.com/samuelcolvin)
* add `case_insensitive` option to `BaseSettings` `Config`, [#277](https://github.com/samuelcolvin/pydantic/issues/277) by [@jasonkuhrt](https://github.com/jasonkuhrt)

## v0.15.0 (2018-11-18)

* move codebase to use black, [#287](https://github.com/samuelcolvin/pydantic/issues/287) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix alias use in settings, [#286](https://github.com/samuelcolvin/pydantic/issues/286) by [@jasonkuhrt](https://github.com/jasonkuhrt) and [@samuelcolvin](https://github.com/samuelcolvin)
* fix datetime parsing in `parse_date`, [#298](https://github.com/samuelcolvin/pydantic/issues/298) by [@samuelcolvin](https://github.com/samuelcolvin)
* allow dataclass inheritance, fix [#293](https://github.com/samuelcolvin/pydantic/issues/293) by [@samuelcolvin](https://github.com/samuelcolvin)
* fix `PyObject = None`, fix [#305](https://github.com/samuelcolvin/pydantic/issues/305) by [@samuelcolvin](https://github.com/samuelcolvin)
* allow `Pattern` type, fix [#303](https://github.com/samuelcolvin/pydantic/issues/303) by [@samuelcolvin](https://github.com/samuelcolvin)

## v0.14.0 (2018-10-02)

* dataclasses decorator, [#269](https://github.com/samuelcolvin/pydantic/issues/269) by [@Gaunt](https://github.com/Gaunt) and [@samuelcolvin](https://github.com/samuelcolvin)

## v0.13.1 (2018-09-21)

* fix issue where int_validator doesn't cast a `bool` to an `int` [#264](https://github.com/samuelcolvin/pydantic/issues/264) by [@nphyatt](https://github.com/nphyatt)
* add deep copy support for `BaseModel.copy()` [#249](https://github.com/samuelcolvin/pydantic/issues/249), [@gangefors](https://github.com/gangefors)

## v0.13.0 (2018-08-25)

* raise an exception if a field's name shadows an existing `BaseModel` attribute [#242](https://github.com/samuelcolvin/pydantic/issues/242)
* add `UrlStr` and `urlstr` types [#236](https://github.com/samuelcolvin/pydantic/issues/236)
* timedelta json encoding ISO8601 and total seconds, custom json encoders [#247](https://github.com/samuelcolvin/pydantic/issues/247), by [@cfkanesan](https://github.com/cfkanesan) and [@samuelcolvin](https://github.com/samuelcolvin)
* allow `timedelta` objects as values for properties of type `timedelta` (matches `datetime` etc. behavior) [#247](https://github.com/samuelcolvin/pydantic/issues/247)

## v0.12.1 (2018-07-31)

* fix schema generation for fields defined using `typing.Any` [#237](https://github.com/samuelcolvin/pydantic/issues/237)

## v0.12.0 (2018-07-31)

* add `by_alias` argument in `.dict()` and `.json()` model methods [#205](https://github.com/samuelcolvin/pydantic/issues/205)
* add Json type support [#214](https://github.com/samuelcolvin/pydantic/issues/214)
* support tuples [#227](https://github.com/samuelcolvin/pydantic/issues/227)
* major improvements and changes to schema [#213](https://github.com/samuelcolvin/pydantic/issues/213)

## v0.11.2 (2018-07-05)

* add `NewType` support [#115](https://github.com/samuelcolvin/pydantic/issues/115)
* fix `list`, `set` & `tuple` validation [#225](https://github.com/samuelcolvin/pydantic/issues/225)
* separate out `validate_model` method, allow errors to be returned along with valid values [#221](https://github.com/samuelcolvin/pydantic/issues/221)

## v0.11.1 (2018-07-02)

* support Python 3.7 [#216](https://github.com/samuelcolvin/pydantic/issues/216), thanks [@layday](https://github.com/layday)
* Allow arbitrary types in model [#209](https://github.com/samuelcolvin/pydantic/issues/209), thanks [@oldPadavan](https://github.com/oldPadavan)

## v0.11.0 (2018-06-28)

* make `list`, `tuple` and `set` types stricter [#86](https://github.com/samuelcolvin/pydantic/issues/86)
* **breaking change**: remove msgpack parsing [#201](https://github.com/samuelcolvin/pydantic/issues/201)
* add `FilePath` and `DirectoryPath` types [#10](https://github.com/samuelcolvin/pydantic/issues/10)
* model schema generation [#190](https://github.com/samuelcolvin/pydantic/issues/190)
* JSON serialisation of models and schemas [#133](https://github.com/samuelcolvin/pydantic/issues/133)

## v0.10.0 (2018-06-11)

* add `Config.allow_population_by_alias` [#160](https://github.com/samuelcolvin/pydantic/issues/160), thanks [@bendemaree](https://github.com/bendemaree)
* **breaking change**: new errors format [#179](https://github.com/samuelcolvin/pydantic/issues/179), thanks [@Gr1N](https://github.com/Gr1N)
* **breaking change**: removed `Config.min_number_size` and `Config.max_number_size` [#183](https://github.com/samuelcolvin/pydantic/issues/183), thanks [@Gr1N](https://github.com/Gr1N)
* **breaking change**: correct behaviour of `lt` and `gt` arguments to `conint` etc. [#188](https://github.com/samuelcolvin/pydantic/issues/188)
  for the old behaviour use `le` and `ge` [#194](https://github.com/samuelcolvin/pydantic/issues/194), thanks [@jaheba](https://github.com/jaheba)
* added error context and ability to redefine error message templates using `Config.error_msg_templates` [#183](https://github.com/samuelcolvin/pydantic/issues/183),
  thanks [@Gr1N](https://github.com/Gr1N)
* fix typo in validator exception [#150](https://github.com/samuelcolvin/pydantic/issues/150)
* copy defaults to model values, so different models don't share objects [#154](https://github.com/samuelcolvin/pydantic/issues/154)

## v0.9.1 (2018-05-10)

* allow custom `get_field_config` on config classes [#159](https://github.com/samuelcolvin/pydantic/issues/159)
* add `UUID1`, `UUID3`, `UUID4` and `UUID5` types [#167](https://github.com/samuelcolvin/pydantic/issues/167), thanks [@Gr1N](https://github.com/Gr1N)
* modify some inconsistent docstrings and annotations [#173](https://github.com/samuelcolvin/pydantic/issues/173), thanks [@YannLuo](https://github.com/YannLuo)
* fix type annotations for exotic types [#171](https://github.com/samuelcolvin/pydantic/issues/171), thanks [@Gr1N](https://github.com/Gr1N)
* re-use type validators in exotic types [#171](https://github.com/samuelcolvin/pydantic/issues/171)
* scheduled monthly requirements updates [#168](https://github.com/samuelcolvin/pydantic/issues/168)
* add `Decimal`, `ConstrainedDecimal` and `condecimal` types [#170](https://github.com/samuelcolvin/pydantic/issues/170), thanks [@Gr1N](https://github.com/Gr1N)

## v0.9.0 (2018-04-28)

* tweak email-validator import error message [#145](https://github.com/samuelcolvin/pydantic/issues/145)
* fix parse error of `parse_date()` and `parse_datetime()` when input is 0 [#144](https://github.com/samuelcolvin/pydantic/issues/144), thanks [@YannLuo](https://github.com/YannLuo)
* add `Config.anystr_strip_whitespace` and `strip_whitespace` kwarg to `constr`,
  by default values is `False` [#163](https://github.com/samuelcolvin/pydantic/issues/163), thanks [@Gr1N](https://github.com/Gr1N)
* add `ConstrainedFloat`, `confloat`, `PositiveFloat` and `NegativeFloat` types [#166](https://github.com/samuelcolvin/pydantic/issues/166), thanks [@Gr1N](https://github.com/Gr1N)

## v0.8.0 (2018-03-25)

* fix type annotation for `inherit_config` [#139](https://github.com/samuelcolvin/pydantic/issues/139)
* **breaking change**: check for invalid field names in validators [#140](https://github.com/samuelcolvin/pydantic/issues/140)
* validate attributes of parent models [#141](https://github.com/samuelcolvin/pydantic/issues/141)
* **breaking change**: email validation now uses
  [email-validator](https://github.com/JoshData/python-email-validator) [#142](https://github.com/samuelcolvin/pydantic/issues/142)

## v0.7.1 (2018-02-07)

* fix bug with `create_model` modifying the base class

## v0.7.0 (2018-02-06)

* added compatibility with abstract base classes (ABCs) [#123](https://github.com/samuelcolvin/pydantic/issues/123)
* add `create_model` method [#113](https://github.com/samuelcolvin/pydantic/issues/113) [#125](https://github.com/samuelcolvin/pydantic/issues/125)
* **breaking change**: rename `.config` to `.__config__` on a model
* **breaking change**: remove deprecated `.values()` on a model, use `.dict()` instead
* remove use of `OrderedDict` and use simple dict [#126](https://github.com/samuelcolvin/pydantic/issues/126)
* add `Config.use_enum_values` [#127](https://github.com/samuelcolvin/pydantic/issues/127)
* add wildcard validators of the form `@validate('*')` [#128](https://github.com/samuelcolvin/pydantic/issues/128)

## v0.6.4 (2018-02-01)

* allow python date and times objects [#122](https://github.com/samuelcolvin/pydantic/issues/122)

## v0.6.3 (2017-11-26)

* fix direct install without `README.rst` present

## v0.6.2 (2017-11-13)

* errors for invalid validator use
* safer check for complex models in `Settings`

## v0.6.1 (2017-11-08)

* prevent duplicate validators, [#101](https://github.com/samuelcolvin/pydantic/issues/101)
* add `always` kwarg to validators, [#102](https://github.com/samuelcolvin/pydantic/issues/102)

## v0.6.0 (2017-11-07)

* assignment validation [#94](https://github.com/samuelcolvin/pydantic/issues/94), thanks petroswork!
* JSON in environment variables for complex types, [#96](https://github.com/samuelcolvin/pydantic/issues/96)
* add `validator` decorators for complex validation, [#97](https://github.com/samuelcolvin/pydantic/issues/97)
* depreciate `values(...)` and replace with `.dict(...)`, [#99](https://github.com/samuelcolvin/pydantic/issues/99)

## v0.5.0 (2017-10-23)

* add `UUID` validation [#89](https://github.com/samuelcolvin/pydantic/issues/89)
* remove `index` and `track` from error object (json) if they're null [#90](https://github.com/samuelcolvin/pydantic/issues/90)
* improve the error text when a list is provided rather than a dict [#90](https://github.com/samuelcolvin/pydantic/issues/90)
* add benchmarks table to docs [#91](https://github.com/samuelcolvin/pydantic/issues/91)

## v0.4.0 (2017-07-08)

* show length in string validation error
* fix aliases in config during inheritance [#55](https://github.com/samuelcolvin/pydantic/issues/55)
* simplify error display
* use unicode ellipsis in `truncate`
* add `parse_obj`, `parse_raw` and `parse_file` helper functions [#58](https://github.com/samuelcolvin/pydantic/issues/58)
* switch annotation only fields to come first in fields list not last

## v0.3.0 (2017-06-21)

* immutable models via `config.allow_mutation = False`, associated cleanup and performance improvement [#44](https://github.com/samuelcolvin/pydantic/issues/44)
* immutable helper methods `construct()` and `copy()` [#53](https://github.com/samuelcolvin/pydantic/issues/53)
* allow pickling of models [#53](https://github.com/samuelcolvin/pydantic/issues/53)
* `setattr` is removed as `__setattr__` is now intelligent [#44](https://github.com/samuelcolvin/pydantic/issues/44)
* `raise_exception` removed, Models now always raise exceptions [#44](https://github.com/samuelcolvin/pydantic/issues/44)
* instance method validators removed
* django-restful-framework benchmarks added [#47](https://github.com/samuelcolvin/pydantic/issues/47)
* fix inheritance bug [#49](https://github.com/samuelcolvin/pydantic/issues/49)
* make str type stricter so list, dict etc are not coerced to strings. [#52](https://github.com/samuelcolvin/pydantic/issues/52)
* add `StrictStr` which only always strings as input [#52](https://github.com/samuelcolvin/pydantic/issues/52)

## v0.2.1 (2017-06-07)

* pypi and travis together messed up the deploy of `v0.2` this should fix it

## v0.2.0 (2017-06-07)

* **breaking change**: `values()` on a model is now a method not a property,
  takes `include` and `exclude` arguments
* allow annotation only fields to support mypy
* add pretty `to_string(pretty=True)` method for models

## v0.1.0 (2017-06-03)

* add docs
* add history


