error uploading datetime object from python sqlalchemy
pydantic
Data validation and settings management using Python type hinting.
Fast and extensible, pydantic plays nicely with your linters/IDE/brain. Define how information should be in pure, canonical Python iii.6+; validate information technology with pydantic.
Help
See documentation 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 section in the documentation.
A Elementary Case
from datetime import datetime from typing import List , Optional from pydantic import BaseModel class User ( BaseModel ): id : int name = 'John Doe' signup_ts : Optional [ 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 proper noun='John Doe' signup_ts=datetime.datetime(2017, 6, i, 12, 22) friends=[1, 2, three] impress ( user . id ) #> 123
Contributing
For guidance on setting upwardly a development environs and how to make a contribution to pydantic, see Contributing to Pydantic.
Reporting a Security Vulnerability
See our security policy.
v1.ix.0 (2021-12-31)
Thank you to pydantic'south sponsors: @sthagen, @timdrijvers, @toinbis, @koxudaxi, @ginomempin, @primer-io, @and-semakin, @westonsteimel, @reillysiemens, @es3n1n, @jokull, @JonasKs, @Rehket, @corleyma, @daddycocoaman, @hardbyte, @datarootsio, @jodal, @aminalaee, @rafsaf, @jqueguiner, @chdsbd, @kevinalh, @Mazyod, @grillazz, @JonasKs, @simw, @leynier, @xfenix for their kind support.
Highlights
- add together python 3.10 support, #2885 by @PrettyWood
- Discriminated unions, #619 by @PrettyWood
-
Config.smart_union
for better union logic, #2092 by @PrettyWood - Binaries for Macos M1 CPUs, #3498 by @samuelcolvin
- Circuitous types tin be prepare via nested surround variables, eastward.grand.
foo___bar
, #3159 by @Air-Mark - add a dark mode to pydantic documentation, #2913 by @gbdlin
- Add together support for autocomplete in VS Code via
__dataclass_transform__
, #2721 by @tiangolo - Add together "exclude" as a field parameter so that information technology can exist configured using model config, #660 by @daviskirk
v1.9.0 (2021-12-31) Changes
- Use
update_forward_refs
toConfig.json_encodes
prevent name clashes in types defined via strings, #3583 past @samuelcolvin - Extend pydantic'due south mypy plugin to support mypy versions
0.910
,0.920
,0.921
&0.930
, #3573 & #3594 by @PrettyWood, @christianbundy, @samuelcolvin
v1.nine.0a2 (2021-12-24) Changes
- support generic models with discriminated union, #3551 by @PrettyWood
- continue old behaviour of
json()
past default, #3542 by @PrettyWood - Removed typing-only
__root__
attribute fromBaseModel
, #3540 past @layday - Build Python 3.ten wheels, #3539 by @mbachry
- Fix display of
extra
fields with model__repr__
, #3234 by @cocolman - models copied via
Config.copy_on_model_validation
always take all fields, #3201 past @PrettyWood - nested ORM from nested dictionaries, #3182 by @PrettyWood
- prepare link to discriminated union section by @PrettyWood
v1.nine.0a1 (2021-12-18) Changes
- Add support for
Decimal
-specific validation configurations inField()
, additionally to usingcondecimal()
, to permit better support from editors and tooling, #3507 past @tiangolo - Add together
arm64
binaries suitable for MacOS with an M1 CPU to PyPI, #3498 past @samuelcolvin - Fix result where
None
was considered invalid when using aUnion
type containingAny
orobject
, #3444 by @tharradine - When generating field schema, pass optional
field
argument (of typepydantic.fields.ModelField
) to__modify_schema__()
if nowadays, #3434 past @jasujm - Prepare issue when pydantic fail to parse
typing.ClassVar
string blazon note, #3401 by @uriyyo - Mention Python >= three.nine.2 as an alternative to
typing_extensions.TypedDict
, #3374 by @BvB93 - Changed the validator method proper noun in the Custom Errors instance to more accurately describe what the validator is doing; changed from
name_must_contain_space
tovalue_must_equal_bar
, #3327 by @michaelrios28 - Add together
AmqpDsn
course, #3254 past @kludex - Always use
Enum
value equally default in generated JSON schema, #3190 by @joaommartins - Add support for Mypy 0.920, #3175 by @christianbundy
-
validate_arguments
now supportsactress
customization (used to always beExtra.forbid
), #3161 by @PrettyWood - Circuitous types can be set by nested environment variables, #3159 past @Air-Mark
- Fix mypy plugin to collect fields based on
pydantic.utils.is_valid_field
and so that it ignores untyped private variables, #3146 by @hi-ogawa - fix
validate_arguments
consequence withConfig.validate_all
, #3135 past @PrettyWood - avoid dict compulsion when using dict subclasses as field type, #3122 by @PrettyWood
- add support for
object
type, #3062 by @PrettyWood - Updates pydantic dataclasses to keep
_special
backdrop on parent classes, #3043 past @zulrang - Add a
TypedDict
class for mistake objects, #3038 by @matthewhughes934 - Prepare support for using a subclass of an notation as a default, #3018 past @JacobHayes
- brand
create_model_from_typeddict
mypy compliant, #3008 past @PrettyWood - Make multiple inheritance piece of work when using
PrivateAttr
, #2989 by @hmvp - Parse environment variables as JSON, if they have a
Union
blazon with a complex subfield, #2936 past @cbartz - Preclude
StrictStr
permittingEnum
values where the enum inherits fromstr
, #2929 past @samuelcolvin - Make
SecretsSettingsSource
parse values beingness assigned to fields of circuitous types when sourced from a secrets file, simply as when sourced from environment variables, #2917 by @davidmreed - add a dark manner to pydantic documentation, #2913 by @gbdlin
- Make
pydantic-mypy
plugin compatible withpyproject.toml
configuration, consistent withmypy
changes. See the doctor for more than information, #2908 by @jrwalk - add python 3.10 support, #2885 by @PrettyWood
- Correctly parse generic models with
Json[T]
, #2860 by @geekingfrog - Update contrib docs re: python version to use for edifice docs, #2856 by @paxcodes
- Clarify documentation about pydantic'south support for custom validation and strict blazon checking, despite pydantic being primarily a parsing library, #2855 by @paxcodes
- Fix schema generation for
Deque
fields, #2810 by @sergejkozin - fix an edge case when mixing constraints and
Literal
, #2794 past @PrettyWood - Gear up postponed annotation resolution for
NamedTuple
andTypedDict
when they're used straight as the type of fields inside Pydantic models, #2760 by @jameysharp - Fix bug when
mypy
plugin fails onconstruct
method telephone call forBaseSettings
derived classes, #2753 by @uriyyo - Add function overloading for a
pydantic.create_model
function, #2748 past @uriyyo - Set mypy plugin issue with self field proclamation, #2743 past @uriyyo
- The colon at the cease of the line "The fields which were supplied when user was initialised:" suggests that the code post-obit information technology is related. Changed it to a period, #2733 by @krisaoe
- Renamed variable
schema
toschema_
to avoid shadowing of global variable name, #2724 by @shahriyarr - Add support for autocomplete in VS Code via
__dataclass_transform__
, #2721 past @tiangolo - add missing type annotations in
BaseConfig
and handlemax_length = 0
, #2719 past @PrettyWood - Change
orm_mode
checking to allow recursive ORM mode parsing with dicts, #2718 by @nuno-andre - Add episode 313 of the Talk Python To Me podcast, where Michael Kennedy and Samuel Colvin discuss pydantic, to the docs, #2712 by @RatulMaharaj
- gear up JSON schema generation when a field is of type
NamedTuple
and has a default value, #2707 by @PrettyWood -
Enum
fields at present properly support extra kwargs in schema generation, #2697 by @sammchardy - Make serialization of referenced pydantic models possible, #2650 past @PrettyWood
- Add
uniqueItems
pick toConstrainedList
, #2618 past @nuno-andre - Try to evaluate forward refs automatically at model cosmos, #2588 by @uriyyo
- Switch docs preview and coverage display to use smokeshow, #2580 past @samuelcolvin
- Add
__version__
aspect to pydantic module, #2572 by @paxcodes - Add
postgresql+asyncpg
,postgresql+pg8000
,postgresql+psycopg2
,postgresql+psycopg2cffi
,postgresql+py-postgresql
andpostgresql+pygresql
schemes forPostgresDsn
, #2567 by @postgres-asyncpg - Enable the Hypothesis plugin to generate a constrained decimal when the
decimal_places
argument is specified, #2524 by @cwe5590 - Allow
collections.abc.Callable
to be used every bit blazon in python 3.9, #2519 past @daviskirk - Documentation update how to custom compile pydantic when using pip install, small change in
setup.py
to allow for custom CFLAGS when compiling, #2517 by @peterroelants - remove side effect of
default_factory
to run it only in one case fifty-fifty ifConfig.validate_all
is set, #2515 by @PrettyWood - Add lookahead to ip regexes for
AnyUrl
hosts. This allows urls with DNS labels looking similar IPs to validate as they are perfectly valid host names, #2512 by @sbv-csis - Set
minItems
andmaxItems
in generated JSON schema for stock-still-length tuples, #2497 by @PrettyWood - Add
strict
argument toconbytes
, #2489 by @koxudaxi - Support user defined generic field types in generic models, #2465 by @daviskirk
- Add together an example and a brusque caption of subclassing
GetterDict
to docs, #2463 by @nuno-andre - add together
KafkaDsn
type,HttpUrl
now has default port lxxx for http and 443 for https, #2447 by @MihanixA - Add
PastDate
andFutureDate
types, #2425 past @Kludex - Support generating schema for
Generic
fields with subtypes, #2375 by @maximberg - set(encoder): serialize
NameEmail
to str, #2341 past @alecgerona - add together
Config.smart_union
to preclude coercion inMarriage
if possible, come across the doc for more information, #2092 by @PrettyWood - Add ability to use
typing.Counter
as a model field type, #2060 by @uriyyo - Add parameterised subclasses to
__bases__
when constructing new parameterised classes, so thatA <: B => A[int] <: B[int]
, #2007 by @diabolo-dan - Create
FileUrl
blazon that allows URLs that conform to RFC 8089. Addhost_required
parameter, which isTrue
by default (AnyUrl
and subclasses),False
inRedisDsn
,FileUrl
, #1983 by @vgerak - add
confrozenset()
, coordinating toconset()
andconlist()
, #1897 by @PrettyWood - stop calling parent class
root_validator
if overridden, #1895 past @PrettyWood - Add together
repr
(defaults toTruthful
) parameter toField
, to hide it from the default representation of theBaseModel
, #1831 by @fnep - Accept empty query/fragment URL parts, #1807 by @xavier
v1.eight.2 (2021-05-11)
!!! alarm A security vulnerability, level "moderate" is fixed in v1.viii.2. Please upgrade ASAP. See security advisory CVE-2021-29510
- Security gear up: Fix
date
anddatetime
parsing and so passing either'infinity'
orbladder('inf')
(or their negative values) does not cause an space loop, see security advisory CVE-2021-29510 - prepare schema generation with Enum by generating a valid proper name, #2575 past @PrettyWood
- fix JSON schema generation with a
Literal
of an enum member, #2536 by @PrettyWood - Ready problems with configurations declarations that are passed as keyword arguments during class cosmos, #2532 by @uriyyo
- Allow passing
json_encoders
in class kwargs, #2521 by @layday - support arbitrary types with custom
__eq__
, #2483 by @PrettyWood - support
Annotated
invalidate_arguments
and in generic models with python 3.9, #2483 by @PrettyWood
v1.8.i (2021-03-03)
Issues fixes for regressions and new features from v1.8
- allow elements of
Config.field
to update elements of aField
, #2461 by @samuelcolvin - fix validation with a
BaseModel
field and a custom root blazon, #2449 by @PrettyWood - expose
Pattern
encoder tofastapi
, #2444 by @PrettyWood - enable the Hypothesis plugin to generate a constrained float when the
multiple_of
argument is specified, #2442 by @tobi-lipede-oodle - Avoid
RecursionError
when using some types likeEnum
orLiteral
with generic models, #2436 by @PrettyWood - practise not overwrite declared
__hash__
in subclasses of a model, #2422 by @PrettyWood - prepare
mypy
complaints onPath
andUUID
related custom types, #2418 by @PrettyWood - Support properly variable length tuples of compound types, #2416 by @PrettyWood
v1.8 (2021-02-26)
Thank you lot to pydantic'due south sponsors: @jorgecarleitao, @BCarley, @chdsbd, @tiangolo, @matin, @linusg, @kevinalh, @koxudaxi, @timdrijvers, @mkeen, @meadsteve, @ginomempin, @primer-io, @and-semakin, @tomthorogood, @AjitZK, @westonsteimel, @Mazyod, @christippett, @CarlosDomingues, @Kludex, @r-m-north for their kind support.
Highlights
- Hypothesis plugin for testing, #2097 by @Zac-Hd
- support for
NamedTuple
andTypedDict
, #2216 past @PrettyWood - Support
Annotated
hints on model fields, #2147 by @JacobHayes -
frozen
parameter onConfig
to permit models to exist hashed, #1880 past @rhuille
Changes
- Breaking Change, remove sometime deprecation aliases from v1, #2415 by @samuelcolvin:
- remove notes on migrating to v1 in docs
- remove
Schema
which was replaced byField
- remove
Config.case_insensitive
which was replaced pastConfig.case_sensitive
(defaultFalse
) - remove
Config.allow_population_by_alias
which was replaced byConfig.allow_population_by_field_name
- remove
model.fields
which was replaced pastmodel.__fields__
- remove
model.to_string()
which was replaced bystr(model)
- remove
model.__values__
which was replaced bymodel.__dict__
- Breaking Change: e'er validate only first sublevel items with
each_item
. There were indeed some edge cases with some chemical compound types where the validated items were the last sublevel ones, #1933 by @PrettyWood - Update docs extensions to fix local syntax highlighting, #2400 past @daviskirk
- fix: allow
utils.lenient_issubclass
to handletyping.GenericAlias
objects similarlisting[str]
in python >= iii.9, #2399 by @daviskirk - Improve field declaration for pydantic
dataclass
by allowing the usage of pydanticField
or'metadata'
kwarg ofdataclasses.field
, #2384 past @PrettyWood - Making
typing-extensions
a required dependency, #2368 past @samuelcolvin - Make
resolve_annotations
more lenient, allowing for missing modules, #2363 past @samuelcolvin - Allow configuring models through class kwargs, #2356 by @Bobronium
- Prevent
Mapping
subclasses from always being coerced todict
, #2325 past @ofek - fix: allow
None
for typeOptional[conset / conlist]
, #2320 past @PrettyWood - Support empty tuple blazon, #2318 by @PrettyWood
- fix:
python_requires
metadata to require >=3.6.1, #2306 by @hukkinj1 - Properly encode
Decimal
with, or without any decimal places, #2293 by @hultner - fix: update
__fields_set__
inBaseModel.re-create(update=…)
, #2290 by @PrettyWood - prepare: proceed order of fields with
BaseModel.construct()
, #2281 by @PrettyWood - Support generating schema for Generic fields, #2262 by @maximberg
- Fix
validate_decorator
so**kwargs
doesn't exclude values when the keyword has the aforementioned name as the*args
or**kwargs
names, #2251 past @cybojenix - Prevent overriding positional arguments with keyword arguments in
validate_arguments
, as per behaviour with native functions, #2249 by @cybojenix - add together documentation for
con*
type functions, #2242 past @tayoogunbiyi - Support custom root blazon (aka
__root__
) when usingparse_obj()
with nested models, #2238 by @PrettyWood - Support custom root blazon (aka
__root__
) withfrom_orm()
, #2237 by @PrettyWood - ensure cythonized functions are left untouched when creating models, based on #1944 by @kollmats, #2228 by @samuelcolvin
- Resolve forward refs for stdlib dataclasses converted into pydantic ones, #2220 by @PrettyWood
- Add support for
NamedTuple
andTypedDict
types. Those two types are now handled and validated when used insideBaseModel
or pydanticdataclass
. 2 utils are also addedcreate_model_from_namedtuple
andcreate_model_from_typeddict
, #2216 past @PrettyWood - Practise non ignore annotated fields when blazon is
Union[Type[...], ...]
, #2213 by @PrettyWood - Heighten a user-friendly
TypeError
when aroot_validator
does not return adict
(due east.m.None
), #2209 past @masalim2 - Add a
FrozenSet[str]
type annotation to theallowed_schemes
statement on thestrict_url
field type, #2198 by @Midnighter - add
allow_mutation
constraint toField
, #2195 past @sblack-usu - Let
Field
with adefault_factory
to be used as an argument to a function decorated withvalidate_arguments
, #2176 by @thomascobb - Allow non-real secrets directory by merely issuing a warning, #2175 by @davidolrik
- fix URL regex to parse fragment without query string, #2168 past @andrewmwhite
- fix: ensure to always return i of the values in
Literal
field type, #2166 past @PrettyWood - Back up
typing.Annotated
hints on model fields. AField
may now exist set in the type hint withAnnotated[..., Field(...)
; all other annotations are ignored simply still visible withget_type_hints(..., include_extras=True)
, #2147 by @JacobHayes - Added
StrictBytes
type also every bitstrict=False
selection toConstrainedBytes
, #2136 by @rlizzo - added
Config.anystr_lower
andto_lower
kwarg toconstr
andconbytes
, #2134 by @tayoogunbiyi - Support evidently
typing.Tuple
type, #2132 past @PrettyWood - Add together a bound method
validate
to functions decorated withvalidate_arguments
to validate parameters without actually calling the office, #2127 by @PrettyWood - Add the ability to customize settings sources (add together / disable / change priority gild), #2107 by @kozlek
- Set mypy complaints about most custom pydantic types, #2098 by @PrettyWood
- Add a Hypothesis plugin for easier property-based testing with Pydantic's custom types - usage details here, #2097 by @Zac-HD
- add validator for
None
,NoneType
orLiteral[None]
, #2095 past @PrettyWood - Handle properly fields of blazon
Callable
with a default value, #2094 past @PrettyWood - Updated
create_model
render type notation to return type which inherits from__base__
argument, #2071 by @uriyyo - Add together merged
json_encoders
inheritance, #2064 by @art049 - allow overwriting
ClassVar
s in sub-models without having to re-annotate them, #2061 past @layday - add together default encoder for
Pattern
type, #2045 by @PrettyWood - Add
NonNegativeInt
,NonPositiveInt
,NonNegativeFloat
,NonPositiveFloat
, #1975 past @mdavis-xyz - Use % for percentage in string format of colors, #1960 past @EdwardBetts
- Fixed effect causing
KeyError
to be raised when building schema from multipleBaseModel
with the same names declared in separate classes, #1912 by @JSextonn - Add
rediss
(Redis over SSL) protocol toRedisDsn
Permit URLs withoutuser
part (east.yard.,rediss://:pass@localhost
), #1911 by @TrDex - Add a new
frozen
boolean parameter toConfig
(default:Faux
). Settingfrozen=Truthful
does everything thatallow_mutation=False
does, and also generates a__hash__()
method for the model. This makes instances of the model potentially hashable if all the attributes are hashable, #1880 by @rhuille - ready schema generation with multiple Enums having the aforementioned name, #1857 by @PrettyWood
- Added support for xiii/19 digits VISA credit cards in
PaymentCardNumber
type, #1416 past @AlexanderSov - prepare: prevent
RecursionError
while using recursiveGenericModel
due south, #1370 past @xppt - use
enum
fortyping.Literal
in JSON schema, #1350 by @PrettyWood - Fix: some recursive models did not require
update_forward_refs
and silently behaved incorrectly, #1201 by @PrettyWood - Fix bug where generic models with fields where the typevar is nested in some other type
a: Listing[T]
are considered to exist concrete. This allows these models to be subclassed and composed as expected, #947 past @daviskirk - Add
Config.copy_on_model_validation
flag. When fix toImitation
, pydantic will keep models used as fields untouched on validation instead of reconstructing (copying) them, #265 by @PrettyWood
v1.7.four (2021-05-11)
- Security fix: Fix
engagement
anddatetime
parsing so passing either'infinity'
orfloat('inf')
(or their negative values) does non cause an infinite loop, Come across security advisory CVE-2021-29510
v1.7.3 (2020-11-30)
Thanks to pydantic'due south sponsors: @timdrijvers, @BCarley, @chdsbd, @tiangolo, @matin, @linusg, @kevinalh, @jorgecarleitao, @koxudaxi, @primer-api, @mkeen, @meadsteve for their kind back up.
- fix: prepare right default value for required (optional) fields, #2142 by @PrettyWood
- fix: support
underscore_attrs_are_private
with generic models, #2138 by @PrettyWood - fix: update all modified field values in
root_validator
whenvalidate_assignment
is on, #2116 by @PrettyWood - Allow pickling of
pydantic.dataclasses.dataclass
dynamically created from a built-indataclasses.dataclass
, #2111 by @aimestereo - Gear up a regression where Enum fields would not propagate keyword arguments to the schema, #2109 by @bm424
- Ignore
__doc__
as individual attribute whenConfig.underscore_attrs_are_private
is set, #2090 by @PrettyWood
v1.7.2 (2020-11-01)
- set slow
GenericModel
concrete model creation, permitGenericModel
concrete proper noun reusing in module, #2078 by @Bobronium - keep the order of the fields when
validate_assignment
is set, #2073 by @PrettyWood - forward all the params of the stdlib
dataclass
when converted into pydanticdataclass
, #2065 past @PrettyWood
v1.7.1 (2020-10-28)
Cheers to pydantic's sponsors: @timdrijvers, @BCarley, @chdsbd, @tiangolo, @matin, @linusg, @kevinalh, @jorgecarleitao, @koxudaxi, @primer-api, @mkeen for their kind back up.
- gear up notation of
validate_arguments
when passing configuration equally argument, #2055 by @layday - Prepare mypy consignment error when using
PrivateAttr
, #2048 by @aphedges - fix
underscore_attrs_are_private
causingTypeError
when overriding__init__
, #2047 by @samuelcolvin - Stock-still regression introduced in v1.seven involving exception handling in field validators when
validate_assignment=True
, #2044 by @johnsabath - fix: pydantic
dataclass
tin can inherit from stdlibdataclass
andConfig.arbitrary_types_allowed
is supported, #2042 by @PrettyWood
v1.7 (2020-10-26)
Thank y'all to pydantic's sponsors: @timdrijvers, @BCarley, @chdsbd, @tiangolo, @matin, @linusg, @kevinalh, @jorgecarleitao, @koxudaxi, @primer-api for their kind support.
Highlights
- python 3.ix support, thanks @PrettyWood
- Individual model attributes, thanks @Bobronium
- "secrets files" back up in
BaseSettings
, thanks @mdgilene - convert stdlib dataclasses to pydantic dataclasses and employ stdlib dataclasses in models, thanks @PrettyWood
Changes
- Breaking Modify: remove
__field_defaults__
, adddefault_factory
support withBaseModel.construct
. Use.get_default()
method on fields in__fields__
aspect instead, #1732 by @PrettyWood - Rearrange CI to run linting as a split up chore, split install recipes for different tasks, #2020 by @samuelcolvin
- Allows subclasses of generic models to make some, or all, of the superclass's blazon parameters physical, while too defining new type parameters in the subclass, #2005 by @choogeboom
- Call validator with the right
values
parameter type inBaseModel.__setattr__
, whenvalidate_assignment = True
in model config, #1999 by @me-ransh - Forcefulness
fields.Undefined
to be a singleton object, fixing inherited generic model schemas, #1981 by @daviskirk - Include tests in source distributions, #1976 by @sbraz
- Add power to use
min_length/max_length
constraints with secret types, #1974 by @uriyyo - As well check
root_validators
whenvalidate_assignment
is on, #1971 by @PrettyWood - Fix const validators not running when custom validators are present, #1957 by @hmvp
- add
deque
to field types, #1935 by @wozniakty - add together basic support for python 3.9, #1832 by @PrettyWood
- Fix typo in the anchor of exporting_models.md#modelcopy and incorrect description, #1821 by @KimMachineGun
- Added power for
BaseSettings
to read "undercover files", #1820 by @mdgilene - add
parse_raw_as
utility function, #1812 by @PrettyWood - Support home directory relative paths for
dotenv
files (e.yard.~/.env
), #1803 by @PrettyWood - Clarify documentation for
parse_file
to bear witness that the argument should exist a file path non a file-like object, #1794 past @mdavis-xyz - Ready faux positive from mypy plugin when a class nested inside a
BaseModel
is namedModel
, #1770 by @selimb - add basic support of Pattern type in schema generation, #1767 past @PrettyWood
- Support custom title, clarification and default in schema of enums, #1748 by @PrettyWood
- Properly represent
Literal
Enums whenuse_enum_values
is True, #1747 by @noelevans - Allows timezone information to be added to strings to be formatted as fourth dimension objects. Permitted formats are
Z
for UTC or an offset for accented positive or negative fourth dimension shifts. Or the timezone data can be omitted, #1744 by @noelevans - Add stub
__init__
with python 3.6 signature forForwardRef
, #1738 by @sirtelemak - Fix behaviour with forward refs and optional fields in nested models, #1736 by @PrettyWood
- add
Enum
andIntEnum
every bit valid types for fields, #1735 by @PrettyWood - Alter default value of
__module__
argument ofcreate_model
fromNone
to'pydantic.main'
. Prepare reference of created concrete model to it'south module to let pickling (not applied to models created in functions), #1686 by @Bobronium - Add together private attributes back up, #1679 past @Bobronium
- add together
config
to@validate_arguments
, #1663 past @samuelcolvin - Permit descendant Settings models to override env variable names for the fields defined in parent Settings models with
env
in theirConfig
. Previously onlyenv_prefix
configuration pick was applicable, #1561 by @ojomio - Back up
ref_template
when creating schema$ref
south, #1479 by @kilo59 - Add a
__call__
stub toPyObject
then that mypy will know that information technology is callable, #1352 past @brianmaissy -
pydantic.dataclasses.dataclass
decorator now supports congenital-indataclasses.dataclass
. It is hence possible to convert an existingdataclass
easily to add pydantic validation. Moreover nested dataclasses are besides supported, #744 past @PrettyWood
v1.six.two (2021-05-xi)
- Security gear up: Fix
date
anddatetime
parsing so passing either'infinity'
orfloat('inf')
(or their negative values) does not cause an infinite loop, See security advisory CVE-2021-29510
v1.six.1 (2020-07-15)
- prepare validation and parsing of nested models with
default_factory
, #1710 by @PrettyWood
v1.6 (2020-07-11)
Thank you to pydantic's sponsors: @matin, @tiangolo, @chdsbd, @jorgecarleitao, and i anonymous sponsor for their kind support.
- Alter validators for
conlist
andconset
to not havealways=True
, #1682 by @samuelcolvin - add port cheque to
AnyUrl
(can't exceed 65536) ports are 16 insigned $.25:0 <= port <= ii**16-1
src: rfc793 header format, #1654 by @flapili - Document default
regex
anchoring semantics, #1648 by @yurikhan - Use
chain.from_iterable
in class_validators.py. This is a faster and more idiomatic style of usingitertools.chain
. Instead of calculating all the items in the iterable and storing them in retentiveness, they are computed one-past-ane and never stored as a huge listing. This can relieve on both runtime and memory infinite, #1642 past @absurd-RR - Add
conset()
, analogous toconlist()
, #1623 by @patrickkwang - make pydantic errors (un)pickable, #1616 by @PrettyWood
- Allow custom encoding for
dotenv
files, #1615 by @PrettyWood - Ensure
SchemaExtraCallable
is ever defined to go type hints on BaseConfig, #1614 past @PrettyWood - Update datetime parser to support negative timestamps, #1600 by @mlbiche
- Update mypy, remove
AnyType
alias forType[Any]
, #1598 by @samuelcolvin - Accommodate handling of root validators so that errors are aggregated from all failing root validators, instead of reporting on only the first root validator to fail, #1586 by @beezee
- Make
__modify_schema__
on Enums apply to the enum schema rather than fields that use the enum, #1581 past @therefromhere - Gear up behavior of
__all__
key when used in conjunction with index keys in advanced include/exclude of fields that are sequences, #1579 by @xspirus - Subclass validators practice non run when referencing a
List
field defined in a parent class wheneach_item=True
. Added an instance to the docs illustrating this, #1566 by @samueldeklund - alter
schema.field_class_to_schema
to back upfrozenset
in schema, #1557 past @wangpeibao - Telephone call
__modify_schema__
just for the field schema, #1552 by @PrettyWood - Movement the consignment of
field.validate_always
infields.py
then thealways
parameter of validators work on inheritance, #1545 past @dcHHH - Added support for UUID instantiation through sixteen byte strings such as
b'\x12\x34\x56\x78' * 4
. This was washed to supportBINARY(xvi)
columns in sqlalchemy, #1541 past @shawnwall - Add a exam assertion that
default_factory
tin render a singleton, #1523 by @therefromhere - Add
NameEmail.__eq__
so duplicateNameEmail
instances are evaluated as equal, #1514 past @stephen-bunn - Add together datamodel-code-generator link in pydantic document site, #1500 by @koxudaxi
- Added a "Discussion of Pydantic" section to the documentation, with a link to "Pydantic Introduction" video by Alexander Hultnér, #1499 by @hultner
- Avert some side effects of
default_factory
by calling information technology only once if possible and past not setting a default value in the schema, #1491 by @PrettyWood - Added docs about dumping dataclasses to JSON, #1487 past @mikegrima
- Make
BaseModel.__signature__
class-only, so getting__signature__
from model case will heightenAttributeError
, #1466 by @Bobronium - include
'format': 'password'
in the schema for clandestine types, #1424 by @atheuz - Change schema constraints on
ConstrainedFloat
so thatexclusiveMinimum
and minimum are not included in the schema if they are equal to-math.inf
andexclusiveMaximum
andmaximum
are non included if they are equal tomath.inf
, #1417 by @vdwees - Squash internal
__root__
dicts in.dict()
(and, by extension, in.json()
), #1414 by @patrickkwang - Move
const
validator to post-validators so information technology validates the parsed value, #1410 by @selimb - Set up model validation to handle nested literals, eastward.g.
Literal['foo', Literal['bar']]
, #1364 by @DBCerigo - Remove
user_required = True
fromRedisDsn
, neither user nor countersign are required, #1275 by @samuelcolvin - Remove extra
allOf
from schema for fields withUnion
and customField
, #1209 by @mostaphaRoudsari - Updates OpenAPI schema generation to output all enums as separate models. Instead of inlining the enum values in the model schema, models at present use a
$ref
property to point to the enum definition, #1173 past @calvinwyoung
v1.v.1 (2020-04-23)
- Signature generation with
extra: let
never uses a field name, #1418 by @prettywood - Avoid mutating
Field
default value, #1412 by @prettywood
v1.5 (2020-04-eighteen)
- Brand includes/excludes arguments for
.dict()
,._iter()
, ..., immutable, #1404 by @AlexECX - E'er use a field's real name with includes/excludes in
model._iter()
, regardless ofby_alias
, #1397 by @AlexECX - Update constr regex instance to include start and end lines, #1396 past @lmcnearney
- Confirm that shallow
model.copy()
does make a shallow copy of attributes, #1383 by @samuelcolvin - Renaming
model_name
argument ofprincipal.create_model()
to__model_name
to allow usingmodel_name
as a field name, #1367 past @kittipatv - Supervene upon raising of exception to silent passing for non-Var attributes in mypy plugin, #1345 past @b0g3r
- Remove
typing_extensions
dependency for python iii.eight, #1342 by @prettywood - Make
SecretStr
andSecretBytes
initialization idempotent, #1330 by @atheuz - certificate making secret types dumpable using the json method, #1328 by @atheuz
- Movement all testing and build to github deportment, add windows and macos binaries, thank you lot @StephenBrown2 for much help, #1326 by @samuelcolvin
- gear up card number length check in
PaymentCardNumber
,PaymentCardBrand
at present inherits fromstr
, #1317 by @samuelcolvin - Have
BaseModel
inherit fromRepresentation
to brand mypy happy when overriding__str__
, #1310 by @FuegoFro - Permit
None
as input to all optional list fields, #1307 past @prettywood - Add
datetime
field todefault_factory
example, #1301 past @StephenBrown2 - Let subclasses of known types to be encoded with superclass encoder, #1291 past @StephenBrown2
- Exclude exported fields from all elements of a list/tuple of submodels/dicts with
'__all__'
, #1286 by @masalim2 - Add together pydantic.colour.Color objects equally available input for Colour fields, #1258 by @leosussan
- In examples, type nullable fields as
Optional
, so that these are valid mypy annotations, #1248 by @kokes - Make
pattern_validator()
accept pre-compiledPattern
objects. Fixstr_validator()
return type tostr
, #1237 by @adamgreg - Document how to manage Generics and inheritance, #1229 by @esadruhn
-
update_forward_refs()
method of BaseModel now copies__dict__
of grade module instead of modyfying it, #1228 past @paul-ilyin - Support instance methods and class methods with
@validate_arguments
, #1222 by @samuelcolvin - Add
default_factory
argument toField
to create a dynamic default value by passing a naught-argument callable, #1210 by @prettywood - add support for
NewType
ofList
,Optional
, etc, #1207 by @Kazy - fix mypy signature for
root_validator
, #1192 past @samuelcolvin - Fixed parsing of nested 'custom root blazon' models, #1190 past @Shados
- Add together
validate_arguments
function decorator which checks the arguments to a function matches type annotations, #1179 by @samuelcolvin - Add together
__signature__
to models, #1034 by @Bobronium - Refactor
._iter()
method, 10x speed boost fordict(model)
, #1017 by @Bobronium
v1.4 (2020-01-24)
- Breaking Alter: alias precedence logic changed so aliases on a field always take priority over an alias from
alias_generator
to avoid buggy/unexpected behaviour, see here for details, #1178 by @samuelcolvin - Add support for unicode and punycode in TLDs, #1182 by @jamescurtin
- Fix
cls
argument in validators during assignment, #1172 past @samuelcolvin - completing Luhn algorithm for
PaymentCardNumber
, #1166 by @cuencandres - add support for generics that implement
__get_validators__
like a custom data type, #1159 past @tiangolo - add support for space generators with
Iterable
, #1152 by @tiangolo - fix
url_regex
to accept schemas with+
,-
and.
afterwards the first grapheme, #1142 by @samuelcolvin - move
version_info()
toversion.py
, suggest its utilize in issues, #1138 past @samuelcolvin - Improve pydantic import time by roughly 50% past deferring some module loading and regex compilation, #1127 by @samuelcolvin
- Prepare
EmailStr
andNameEmail
to have instances of themselves in cython, #1126 by @koxudaxi - Laissez passer model class to the
Config.schema_extra
callable, #1125 by @therefromhere - Fix regex for username and password in URLs, #1115 by @samuelcolvin
- Add support for nested generic models, #1104 by @dmontagu
- add
__all__
to__init__.py
to prevent "implicit reexport" errors from mypy, #1072 by @samuelcolvin - Add back up for using "dotenv" files with
BaseSettings
, #1011 by @acnebs
v1.3 (2019-12-21)
- Change
schema
andschema_model
to handle dataclasses past using their__pydantic_model__
characteristic, #792 past @aviramha - Added choice for
root_validator
to be skipped if values validation fails using keywordskip_on_failure=True
, #1049 past @aviramha - Allow
Config.schema_extra
to be a callable so that the generated schema tin can be post-processed, #1054 by @selimb - Update mypy to version 0.750, #1057 past @dmontagu
- Trick Cython into allowing str subclassing, #1061 by @skewty
- Forbid blazon attributes being added to schema unless the attribute
__schema_attributes__
isTrue
, #1064 past @samuelcolvin - Modify
BaseModel.parse_file
to applyConfig.json_loads
, #1067 by @kierandarcy - Fix for optional
Json
fields, #1073 by @volker48 - Change the default number of threads used when compiling with cython to i, let override via the
CYTHON_NTHREADS
environment variable, #1074 past @samuelcolvin - Run FastAPI tests during Pydantic'south CI tests, #1075 by @tiangolo
- My mypy strictness constraints, and associated tweaks to type annotations, #1077 by @samuelcolvin
- Add
__eq__
to SecretStr and SecretBytes to allow "value equals", #1079 by @sbv-trueenergy - Fix schema generation for nested None case, #1088 by @lutostag
- Consistent checks for sequence like objects, #1090 by @samuelcolvin
- Fix
Config
inheritance onBaseSettings
when used withenv_prefix
, #1091 past @samuelcolvin - Fix for
__modify_schema__
when it conflicted withfield_class_to_schema*
, #1102 by @samuelcolvin - docs: Fix explanation of case sensitive surroundings variable names when populating
BaseSettings
subclass attributes, #1105 by @tribals - Rename django-residuum-framework benchmark in documentation, #1119 by @frankie567
v1.2 (2019-11-28)
- Possible Breaking Change: Add support for required
Optional
withname: Optional[AnyType] = Field(...)
and refactorModelField
creation to preserverequired
parameter value, #1031 by @tiangolo; run across here for details - Add benchmarks for
cattrs
, #513 by @sebastianmika - Add
exclude_none
option todict()
and friends, #587 past @niknetniko - Add benchmarks for
valideer
, #670 by @gsakkis - Add
parse_obj_as
andparse_file_as
functions for ad-hoc parsing of data into arbitrary pydantic-compatible types, #934 past @dmontagu - Add together
allow_reuse
statement to validators, thus allowing validator reuse, #940 past @dmontagu - Add together support for mapping types for custom root models, #958 by @dmontagu
- Mypy plugin back up for dataclasses, #966 by @koxudaxi
- Add together support for dataclasses default factory, #968 by @ahirner
- Add a
ByteSize
type for converting byte string (1GB
) to apparently bytes, #977 past @dgasmith - Set mypy complaint near
@root_validator(pre=True)
, #984 by @samuelcolvin - Add manylinux binaries for python iii.8 to pypi, besides support manylinux2010, #994 by @samuelcolvin
- Adds ByteSize conversion to another unit, #995 past @dgasmith
- Prepare
__str__
and__repr__
inheritance for models, #1022 by @samuelcolvin - add testimonials section to docs, #1025 by @sullivancolin
- Add support for
typing.Literal
for Python 3.8, #1026 past @dmontagu
v1.1.1 (2019-eleven-20)
- Fix bug where use of complex fields on sub-models could cause fields to exist incorrectly configured, #1015 past @samuelcolvin
v1.i (2019-xi-07)
- Add a mypy plugin for type checking
BaseModel.__init__
and more, #722 by @dmontagu - Alter return type typehint for
GenericModel.__class_getitem__
to forbid PyCharm warnings, #936 by @dmontagu - Prepare usage of
Any
to allowNone
, also supportTypeVar
thus allowing employ of un-parameterised collection types due east.g.Dict
andList
, #962 by @samuelcolvin - Ready
FieldInfo
on subfields to set schema generation for complex nested types, #965 by @samuelcolvin
v1.0 (2019-10-23)
- Breaking Change: deprecate the
Model.fields
holding, utilizeModel.__fields__
instead, #883 past @samuelcolvin - Breaking Change: Change the precedence of aliases so child model aliases override parent aliases, including using
alias_generator
, #904 by @samuelcolvin - Breaking modify: Rename
skip_defaults
toexclude_unset
, and add ability to exclude actual defaults, #915 by @dmontagu - Add
**kwargs
topydantic.principal.ModelMetaclass.__new__
and then__init_subclass__
can take custom parameters on extendedBaseModel
classes, #867 by @retnikt - Fix field of a blazon that has a default value, #880 past @koxudaxi
- Utilize
FutureWarning
instead ofDeprecationWarning
whenallonym
instead ofenv
is used for settings models, #881 past @samuelcolvin - Fix effect with
BaseSettings
inheritance andalias
getting fix toNone
, #882 past @samuelcolvin - Modify
__repr__
and__str__
methods to exist consistent beyond all public classes, add together__pretty__
to support python-devtools, #884 by @samuelcolvin - deprecation warning for
case_insensitive
onBaseSettings
config, #885 by @samuelcolvin - For
BaseSettings
merge environment variables and in-lawmaking values recursively, as long as they create a valid object when merged together, to allow splitting init arguments, #888 by @idmitrievsky - alter hugger-mugger types example, #890 by @ashears
- Modify the signature of
Model.construct()
to be more user-friendly, documentconstruct()
usage, #898 past @samuelcolvin - Add example for the
construct()
method, #907 by @ashears - Ameliorate apply of
Field
constraints on complex types, raise an fault if constraints are not enforceable, also support tuples with an ellipsisTuple[X, ...]
,Sequence
andFrozenSet
in schema, #909 by @samuelcolvin - update docs for bool missing valid value, #911 by @trim21
- Better
str
/repr
logic forModelField
, #912 by @samuelcolvin - Fix
ConstrainedList
, update schema generation to reflectmin_items
andmax_items
Field()
arguments, #917 by @samuelcolvin - Allow abstracts sets (eg. dict keys) in the
include
andexclude
arguments ofdict()
, #921 by @samuelcolvin - Ready JSON serialization errors on
ValidationError.json()
past usingpydantic_encoder
, #922 past @samuelcolvin - Clarify usage of
remove_untouched
, improve error message for types with no validators, #926 by @retnikt
v1.0b2 (2019-10-07)
- Mark
StrictBool
typecheck every bitbool
to let for default values without mypy errors, #690 past @dmontagu - Transfer the documentation build from sphinx to mkdocs, re-write much of the documentation, #856 by @samuelcolvin
- Add back up for custom naming schemes for
GenericModel
subclasses, #859 by @dmontagu - Add
if TYPE_CHECKING:
to the excluded lines for examination coverage, #874 by @dmontagu - Rename
allow_population_by_alias
toallow_population_by_field_name
, remove unnecessary warning virtually it, #875 by @samuelcolvin
v1.0b1 (2019-10-01)
- Breaking Change: rename
Schema
toField
, make it a role to placate mypy, #577 by @samuelcolvin - Breaking Change: modify parsing behavior for
bool
, #617 by @dmontagu - Breaking Change:
get_validators
is no longer recognised, utilise__get_validators__
.Config.ignore_extra
andConfig.allow_extra
are no longer recognised, utiliseConfig.extra
, #720 past @samuelcolvin - Breaking Change: change default config settings for
BaseSettings
;case_insensitive
renamed tocase_sensitive
, default inverse tocase_sensitive = False
,env_prefix
default inverse to''
- e.thousand. no prefix, #721 by @dmontagu - Breaking alter: Implement
root_validator
and rename root errors from__obj__
to__root__
, #729 by @samuelcolvin - Breaking Change: alter the behaviour of
dict(model)
so that sub-models are nolonger converted to dictionaries, #733 by @samuelcolvin - Breaking alter: Added
initvars
support topost_init_post_parse
, #748 by @Raphael-C-Almeida - Breaking Change: Make
BaseModel.json()
only serialize the__root__
fundamental for models with custom root, #752 by @dmontagu - Breaking Change: complete rewrite of
URL
parsing logic, #755 by @samuelcolvin - Breaking Alter: preserve superclass annotations for field-determination when not provided in bracket, #757 by @dmontagu
- Breaking Change:
BaseSettings
now uses the specialenv
settings to define which environment variables to read, not aliases, #847 by @samuelcolvin - add together back up for
assert
statements inside validators, #653 past @abdusco - Update documentation to specify the use of
pydantic.dataclasses.dataclass
and subclassingpydantic.BaseModel
, #710 past @maddosaurus - Allow custom JSON decoding and encoding via
json_loads
andjson_dumps
Config
properties, #714 by @samuelcolvin - make all annotated fields occur in the gild declared, #715 by @dmontagu
- use pytest to exam
mypy
integration, #735 by @dmontagu - add
__repr__
method toErrorWrapper
, #738 by @samuelcolvin - Added support for
FrozenSet
members in dataclasses, and a better error when attempting to utilise types from thetyping
module that are not supported by Pydantic, #745 by @djpetti - add documentation for Pycharm Plugin, #750 by @koxudaxi
- set cleaved examples in the docs, #753 by @dmontagu
- moving typing related objects into
pydantic.typing
, #761 past @samuelcolvin - Minor performance improvements to
ErrorWrapper
,ValidationError
and datetime parsing, #763 by @samuelcolvin - Improvements to
datetime
/date
/fourth dimension
/timedelta
types: more descriptive errors, change errors tovalue_error
nottype_error
, back up bytes, #766 by @samuelcolvin - prepare fault messages for
Literal
types with multiple immune values, #770 by @dmontagu - Improved auto-generated
title
field in JSON schema past converting underscore to space, #772 by @skewty - back up
mypy --no-implicit-reexport
for dataclasses, besides respect--no-implicit-reexport
in pydantic itself, #783 by @samuelcolvin - add the
PaymentCardNumber
type, #790 past @matin - Fix const validations for lists, #794 past @hmvp
- Set
additionalProperties
to false in schema for models with extra fields disallowed, #796 by @Code0x58 -
EmailStr
validation method now returns local part case-sensitive per RFC 5321, #798 past @henriklindgren - Added ability to validate strictness to
ConstrainedFloat
,ConstrainedInt
andConstrainedStr
and addedStrictFloat
andStrictInt
classes, #799 by @DerRidda - Meliorate handling of
None
andOptional
, supersedewhole
witheach_item
(inverse meaning, defaultFalse
) on validators, #803 past @samuelcolvin - add support for
Type[T]
blazon hints, #807 by @timonbimon - Performance improvements from removing
change_exceptions
, change how pydantic fault are constructed, #819 by @samuelcolvin - Fix the error message arising when a
BaseModel
-blazon model field causes aValidationError
during parsing, #820 by @dmontagu - allow
getter_dict
onConfig
, modifyGetterDict
to be more like aMapping
object and thus easier to work with, #821 past @samuelcolvin - Only bank check
TypeVar
param on baseGenericModel
form, #842 by @zpencerq - rename
Model._schema_cache
->Model.__schema_cache__
,Model._json_encoder
->Model.__json_encoder__
,Model._custom_root_type
->Model.__custom_root_type__
, #851 past @samuelcolvin
v0.32.2 (2019-08-17)
(Docs are available here)
- set
__post_init__
usage with dataclass inheritance, fix #739 by @samuelcolvin - fix required fields validation on GenericModels classes, #742 by @amitbl
- fix defining custom
Schema
onGenericModel
fields, #754 by @amitbl
v0.32.1 (2019-08-08)
- do non validate actress fields when
validate_assignment
is on, #724 by @YaraslauZhylko
v0.32 (2019-08-06)
- add together model proper noun to
ValidationError
error message, #676 by @dmontagu - breaking alter: remove
__getattr__
and rename__values__
to__dict__
onBaseModel
, deprecation warning on use__values__
attr, attributes admission speed increased upwards to fourteen times, #712 past @Bobronium - support
ForwardRef
(without self-referencing annotations) in Python 3.6, #706 past @koxudaxi - implement
schema_extra
inConfig
sub-class, #663 by @tiangolo
v0.31.1 (2019-07-31)
- fix json generation for
EnumError
, #697 by @dmontagu - update numerous dependencies
v0.31 (2019-07-24)
- better support for floating betoken
multiple_of
values, #652 by @justindujardin - fix schema generation for
NewType
andLiteral
, #649 by @dmontagu - fix
alias_generator
and field config conflict, #645 by @gmetzker and #658 by @Bobronium - more detailed bulletin for
EnumError
, #673 by @dmontagu - add avant-garde exclude back up for
dict
,json
andcopy
, #648 by @Bobronium - fix bug in
GenericModel
for models with concrete parameterized fields, #672 by @dmontagu - add documentation for
Literal
type, #651 by @dmontagu - add
Config.keep_untouched
for custom descriptors support, #679 by @Bobronium - apply
inspect.cleandoc
internally to go model clarification, #657 by @tiangolo - add together
Colour
to schema generation, past @euri10 - add documentation for Literal type, #651 past @dmontagu
v0.30.1 (2019-07-15)
- set so nested classes which inherit and modify
__init__
are correctly processed while still allowingself
as a parameter, #644 by @lnaden and @dgasmith
v0.xxx (2019-07-07)
- enforce unmarried quotes in code, #612 by @samuelcolvin
- fix infinite recursion with dataclass inheritance and
__post_init__
, #606 by @Hanaasagi - fix default values for
GenericModel
, #610 by @dmontagu - analyze that self-referencing models crave python 3.7+, #616 by @vlcinsky
- prepare truncate for types, #611 past @dmontagu
- add
alias_generator
support, #622 by @Bobronium - set up unparameterized generic type schema generation, #625 by @dmontagu
- fix schema generation with multiple/circular references to the same model, #621 by @tiangolo and @wongpat
- support custom root types, #628 past @koxudaxi
- support
self
as a field proper noun inparse_obj
, #632 by @samuelcolvin
v0.29 (2019-06-19)
- support dataclasses.InitVar, #592 past @pfrederiks
- Updated documentation to elucidate the usage of
Union
when defining multiple types under an attribute's annotation and showcase how the type-order tin affect marshalling of provided values, #594 by @somada141 - add together
conlist
type, #583 by @hmvp - add support for generics, #595 by @dmontagu
v0.28 (2019-06-06)
- fix support for JSON Schema generation when using models with round references in Python three.7, #572 past @tiangolo
- support
__post_init_post_parse__
on dataclasses, #567 past @sevaho - allow dumping dataclasses to JSON, #575 past @samuelcolvin and @DanielOberg
- ORM mode, #562 by @samuelcolvin
- fix
pydantic.compiled
on ipython, #573 by @dmontagu and @samuelcolvin - add
StrictBool
blazon, #579 past @cazgp
v0.27 (2019-05-thirty)
- breaking change
_pydantic_post_init
to execute dataclass' original__post_init__
earlier validation, #560 by @HeavenVolkoff - fix handling of generic types without specified parameters, #550 by @dmontagu
- breaking change (possibly): this is the start release compiled with cython, encounter the docs and delight submit an issue if you lot run into bug
v0.27.0a1 (2019-05-26)
- fix JSON Schema for
list
,tuple
, andset up
, #540 past @tiangolo - compiling with cython,
manylinux
binaries, some other performance improvements, #548 past @samuelcolvin
v0.26 (2019-05-22)
- fix to schema generation for
IPvAnyAddress
,IPvAnyInterface
,IPvAnyNetwork
#498 by @pilosus - ready variable length tuples support, #495 by @pilosus
- prepare return type hint for
create_model
, #526 by @dmontagu - Breaking Change: fix
.dict(skip_keys=Truthful)
skipping values set via alias (this involves changingvalidate_model()
to e'er returnsTuple[Dict[str, Any], Set up[str], Optional[ValidationError]]
), #517 past @sommd - prepare to schema generation for
IPv4Address
,IPv6Address
,IPv4Interface
,IPv6Interface
,IPv4Network
,IPv6Network
#532 by @euri10 - add
Colour
type, #504 by @pilosus and @samuelcolvin
v0.25 (2019-05-05)
- Improve documentation on cocky-referencing models and annotations, #487 by @theenglishway
- fix
.dict()
with actress keys, #490 past @JaewonKim - support
const
keyword inSchema
, #434 by @Sean1708
v0.24 (2019-04-23)
- fix treatment
ForwardRef
in sub-types, likeWedlock
, #464 by @tiangolo - fix clandestine serialization, #465 by @atheuz
- Support custom validators for dataclasses, #454 by @primal100
- fix
parse_obj
to cope with dict-like objects, #472 past @samuelcolvin - prepare to schema generation in nested dataclass-based models, #474 by @NoAnyLove
- fix
json
forPath
,FilePath
, andDirectoryPath
objects, #473 by @mikegoodspeed
v0.23 (2019-04-04)
- improve documentation for contributing section, #441 past @pilosus
- improve README.rst to include essential data nigh the package, #446 by @pilosus
-
IntEnum
support, #444 by @potykion - gear up PyObject callable value, #409 past @pilosus
- ready
black
deprecation warnings after update, #451 by @pilosus - set up
ForwardRef
collection bug, #450 by @tigerwings - Back up specialized
ClassVars
, #455 by @tyrylu - set JSON serialization for
ipaddress
types, #333 by @pilosus - add together
SecretStr
andSecretBytes
types, #452 past @atheuz
v0.22 (2019-03-29)
- add
IPv{4,6,Whatsoever}Network
andIPv{4,6,Any}Interface
types fromipaddress
stdlib, #333 by @pilosus - add docs for
datetime
types, #386 past @pilosus - ready to schema generation in dataclass-based models, #408 by @pilosus
- prepare path in nested models, #437 by @kataev
- add
Sequence
back up, #304 by @pilosus
v0.21.0 (2019-03-15)
- fix typo in
NoneIsNotAllowedError
message, #414 by @YaraslauZhylko - add
IPvAnyAddress
,IPv4Address
andIPv6Address
types, #333 by @pilosus
v0.20.1 (2019-02-26)
- fix type hints of
parse_obj
and similar methods, #405 past @erosennin - fix submodel validation, #403 by @samuelcolvin
- right type hints for
ValidationError.json
, #406 by @layday
v0.20.0 (2019-02-eighteen)
- set tests for python three.8, #396 by @samuelcolvin
- Adds fields to the
dir
method for autocompletion in interactive sessions, #398 by @dgasmith - support
ForwardRef
(and thereforefrom __future__ import annotations
) with dataclasses, #397 by @samuelcolvin
v0.20.0a1 (2019-02-xiii)
- breaking modify (perchance): more sophisticated argument parsing for validators, any subset of
values
,config
andfield
is at present permitted, eg.(cls, value, field)
, however the variadic key word argument ("**kwargs
") must exist calledkwargs
, #388 by @samuelcolvin - breaking change: Adds
skip_defaults
argument toBaseModel.dict()
to allow skipping of fields that were non explicitly set, signature ofModel.construct()
changed, #389 by @dgasmith - add
py.typed
marking file for PEP-561 back up, #391 by @je-l - Gear up
extra
behaviour for multiple inheritance/mix-ins, #394 by @YaraslauZhylko
v0.19.0 (2019-02-04)
- Back up
Callable
type hint, fix #279 by @proofit404 - Gear up schema for fields with
validator
decorator, fix #375 by @tiangolo - Add
multiple_of
constraint toConstrainedDecimal
,ConstrainedFloat
,ConstrainedInt
and their related typescondecimal
,confloat
, andconint
#371, thank you @StephenBrown2 - Deprecated
ignore_extra
andallow_extra
Config fields in favor ofextra
, #352 by @liiight - Add blazon annotations to all functions, exam fully with mypy, #373 by @samuelcolvin
- fix for 'missing' fault with
validate_all
orvalidate_always
, #381 past @samuelcolvin - Alter the 2d/millisecond watershed for date/datetime parsing to
2e10
, #385 past @samuelcolvin
v0.18.2 (2019-01-22)
- Fix to schema generation with
Optional
fields, fix #361 by @samuelcolvin
v0.18.one (2019-01-17)
- add
ConstrainedBytes
andconbytes
types, #315 @Gr1N - adding
MANIFEST.in
to include license in packet.tar.gz
, #358 by @samuelcolvin
v0.18.0 (2019-01-13)
- breaking change: don't telephone call validators on keys of dictionaries, #254 past @samuelcolvin
- Fix validators with
always=Truthful
when the default isNone
or the type is optional, besides preventwhole
validators being called for sub-fields, set #132 past @samuelcolvin - improve documentation for settings priority and allow it to be easily inverse, #343 by @samuelcolvin
- fix
ignore_extra=False
andallow_population_by_alias=True
, set #257 by @samuelcolvin - breaking change: Set
BaseConfig
attributesmin_anystr_length
andmax_anystr_length
toNone
past default, ready #349 in #350 by @tiangolo - add support for postponed annotations, #348 by @samuelcolvin
v0.17.0 (2018-12-27)
- fix schema for
timedelta
as number, #325 by @tiangolo - foreclose validators being called repeatedly subsequently inheritance, #327 past @samuelcolvin
- preclude indistinguishable validator check in ipython, set #312 by @samuelcolvin
- add "Using Pydantic" section to docs, #323 past @tiangolo & #326 by @samuelcolvin
- fix schema generation for fields annotated equally
: dict
,: listing
,: tuple
and: set
, #330 & #335 by @nkonin - add together support for constrained strings every bit dict keys in schema, #332 by @tiangolo
- support for passing Config class in dataclasses decorator, #276 by @jarekkar (breaking change: this supersedes the
validate_assignment
argument withconfig
) - support for nested dataclasses, #334 by @samuelcolvin
- better errors when getting an
ImportError
withPyObject
, #309 past @samuelcolvin - rename
get_validators
to__get_validators__
, deprecation warning on use of one-time proper noun, #338 by @samuelcolvin - back up
ClassVar
by excluding such attributes from fields, #184 by @samuelcolvin
v0.16.1 (2018-12-ten)
- fix
create_model
to correctly utilise the passed__config__
, #320 by @hugoduncan
v0.16.0 (2018-12-03)
- breaking change: refactor schema generation to be compatible with JSON Schema and OpenAPI specs, #308 past @tiangolo
- add
schema
toschema
module to generate top-level schemas from base models, #308 by @tiangolo - add boosted fields to
Schema
form to declare validation forstr
and numeric values, #311 by @tiangolo - rename
_schema
toschema
on fields, #318 by @samuelcolvin - add together
case_insensitive
option toBaseSettings
Config
, #277 by @jasonkuhrt
v0.15.0 (2018-11-xviii)
- move codebase to apply black, #287 by @samuelcolvin
- prepare alias utilize in settings, #286 by @jasonkuhrt and @samuelcolvin
- fix datetime parsing in
parse_date
, #298 past @samuelcolvin - let dataclass inheritance, set up #293 by @samuelcolvin
- prepare
PyObject = None
, fix #305 by @samuelcolvin - allow
Pattern
blazon, fix #303 by @samuelcolvin
v0.14.0 (2018-10-02)
- dataclasses decorator, #269 by @Gaunt and @samuelcolvin
v0.13.1 (2018-09-21)
- prepare issue where int_validator doesn't bandage a
bool
to anint
#264 past @nphyatt - add deep copy support for
BaseModel.copy()
#249, @gangefors
v0.13.0 (2018-08-25)
- raise an exception if a field's proper noun shadows an existing
BaseModel
attribute #242 - add
UrlStr
andurlstr
types #236 - timedelta json encoding ISO8601 and total seconds, custom json encoders #247, by @cfkanesan and @samuelcolvin
- permit
timedelta
objects as values for properties of blazontimedelta
(matchesdatetime
etc. beliefs) #247
v0.12.ane (2018-07-31)
- fix schema generation for fields defined using
typing.Whatever
#237
v0.12.0 (2018-07-31)
- add
by_alias
argument in.dict()
and.json()
model methods #205 - add together Json type support #214
- back up tuples #227
- major improvements and changes to schema #213
v0.11.2 (2018-07-05)
- add
NewType
support #115 - fix
listing
,set
&tuple
validation #225 - split out
validate_model
method, allow errors to be returned along with valid values #221
v0.xi.1 (2018-07-02)
- back up Python iii.7 #216, thanks @layday
- Allow arbitrary types in model #209, thanks @oldPadavan
v0.xi.0 (2018-06-28)
- make
list
,tuple
andset
types stricter #86 - breaking change: remove msgpack parsing #201
- add together
FilePath
andDirectoryPath
types #ten - model schema generation #190
- JSON serialisation of models and schemas #133
v0.10.0 (2018-06-11)
- add
Config.allow_population_by_alias
#160, thank you @bendemaree - breaking change: new errors format #179, thanks @Gr1N
- breaking change: removed
Config.min_number_size
andConfig.max_number_size
#183, thanks @Gr1N - breaking change: correct behaviour of
lt
andgt
arguments toconint
etc. #188 for the old behaviour usele
andge
#194, thank you @jaheba - added error context and ability to redefine mistake bulletin templates using
Config.error_msg_templates
#183, thanks @Gr1N - set typo in validator exception #150
- copy defaults to model values, and so unlike models don't share objects #154
v0.ix.1 (2018-05-10)
- allow custom
get_field_config
on config classes #159 - add together
UUID1
,UUID3
,UUID4
andUUID5
types #167, thank you @Gr1N - modify some inconsistent docstrings and annotations #173, thank you @YannLuo
- set blazon annotations for exotic types #171, cheers @Gr1N
- re-apply type validators in exotic types #171
- scheduled monthly requirements updates #168
- add together
Decimal
,ConstrainedDecimal
andcondecimal
types #170, thanks @Gr1N
v0.9.0 (2018-04-28)
- tweak email-validator import error bulletin #145
- fix parse mistake of
parse_date()
andparse_datetime()
when input is 0 #144, thanks @YannLuo - add
Config.anystr_strip_whitespace
andstrip_whitespace
kwarg toconstr
, by default values isFalse
#163, thanks @Gr1N - add
ConstrainedFloat
,confloat
,PositiveFloat
andNegativeFloat
types #166, thank you @Gr1N
v0.8.0 (2018-03-25)
- fix type notation for
inherit_config
#139 - breaking modify: bank check for invalid field names in validators #140
- validate attributes of parent models #141
- breaking change: email validation now uses email-validator #142
v0.7.1 (2018-02-07)
- fix bug with
create_model
modifying the base form
v0.7.0 (2018-02-06)
- added compatibility with abstruse base classes (ABCs) #123
- add
create_model
method #113 #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 unproblematic dict #126 - add
Config.use_enum_values
#127 - add together wildcard validators of the form
@validate('*')
#128
v0.six.4 (2018-02-01)
- allow python date and times objects #122
v0.6.3 (2017-xi-26)
- fix direct install without
README.rst
present
v0.half-dozen.ii (2017-11-13)
- errors for invalid validator use
- safer check for complex models in
Settings
v0.6.one (2017-11-08)
- foreclose indistinguishable validators, #101
- add
always
kwarg to validators, #102
v0.6.0 (2017-11-07)
- consignment validation #94, thanks petroswork!
- JSON in surround variables for complex types, #96
- add
validator
decorators for complex validation, #97 - depreciate
values(...)
and replace with.dict(...)
, #99
v0.five.0 (2017-10-23)
- add
UUID
validation #89 - remove
index
andrails
from error object (json) if they're null #90 - improve the error text when a listing is provided rather than a dict #ninety
- add together benchmarks table to docs #91
v0.4.0 (2017-07-08)
- bear witness length in string validation error
- fix aliases in config during inheritance #55
- simplify error display
- use unicode ellipsis in
truncate
- add
parse_obj
,parse_raw
andparse_file
helper functions #58 - switch annotation merely 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 operation improvement #44 - immutable helper methods
construct()
andcopy()
#53 - allow pickling of models #53
-
setattr
is removed every bit__setattr__
is now intelligent #44 -
raise_exception
removed, Models at present always raise exceptions #44 - instance method validators removed
- django-restful-framework benchmarks added #47
- fix inheritance bug #49
- brand str blazon stricter and then listing, dict etc are not coerced to strings. #52
- add together
StrictStr
which only always strings every bit input #52
v0.ii.one (2017-06-07)
- pypi and travis together messed up the deploy of
v0.two
this should prepare it
v0.two.0 (2017-06-07)
- breaking change:
values()
on a model is now a method not a property, takesinclude
andexclude
arguments - allow annotation only fields to support mypy
- add pretty
to_string(pretty=True)
method for models
v0.i.0 (2017-06-03)
- add docs
- add history
Source: https://pypi.org/project/pydantic/
0 Response to "error uploading datetime object from python sqlalchemy"
ارسال یک نظر