Commit Graph

224 Commits

Author SHA1 Message Date
Samuel Colvin bff8a1789d single quotes in tests 2019-04-25 11:54:05 +01:00
jakeb a3d9ad16e7 Fix dict with extra keys (#490)
* Fix dict with extra keys (#489), fix #488

* Fix PR number

* Fix Config of MyModel not to inherit BaseConfig
2019-04-25 11:50:58 +01:00
Mike Goodspeed 0cfce77bb3 fix json for Path, FilePath, and DirectoryPath objects (#485)
* fix json for Path, FilePath, and DirectoryPath objects, fix #473

* convert to single spaces

* assert result to a string

* Update test_json.py

* encode entire Path hierarchy the same way
2019-04-23 15:09:09 +01:00
NoAnyLove 2ca81ed33f Fix nested dataclass schema (#475)
* Add test case for nested dataclass schema, fix #474

* Fix nested dataclass schema

* Fix mypy typing

* Update HISTORY.rst

* Code review updates
2019-04-18 10:10:36 +01:00
Samuel Colvin 65d717a7b7 fix parse_obj for dict-like object (#476)
* fix parse_obj for dict-like object, fix #472

* correct internal errors with parse_obj
2019-04-17 10:46:23 +01:00
primal100 50fd2c5b48 Validators for dataclasses (#454)
* Added validators for dataclass, fix #415

* Added dataclass validators

* Added dataclass validators

* Updated docs for added validating to dataclass

* Updated docs for added validating to dataclass

* Fixed line endings

* Set __validators__ type to Mapping instead of Dict

* Update History

* Use __mro__ instead of __bases__ for gather_validators

* Fix PR number

* Fix issue.rst header underline

* Fix HISTORY.rst merge conflict

* Fix utils.py merge conflict

* fix utils.py

* Rebase and other fixes

* Fix rebase and other issues

* Change history

* Remove unnecessary lines in main.py

* Rebase

* Update history

* Rename ModelType to ModelOrDc

* Added inheritance replace test

* More consiste dataclass validator tests

* fix history.

* Remove Optional ModelOrDc Type

* Fix ModelOrDc
2019-04-11 23:13:57 +01:00
Atheuz 449661b8cc fix: serialize secrets to json. (#465)
* fix: serialize secrets to json, fix #462

* feat: adjust documentation for secretstr.

* feat: undo unnecessary changes. keep tests.

* fix: tests were broken, now they're fixed again.

* feat: add display fn to SecretStr and SecretBytes, to be used for json output.

* fix: minor typo.

* fix: last few comments.
2019-04-11 19:32:28 +01:00
Sebastián Ramírez 63afb45d71 Update sub_types when calling update_forward_refs() (#464)
* Update sub_types when calling update_forward_refs(), fix #404

* Update History

* Handle deeply nested ForwardRef types in sub_types using recursion

* Move update_field_forward_refs to utils.py
2019-04-11 16:08:35 +01:00
Samuel Colvin ddbf2be9c9 uprev and improve makefile (#459) 2019-04-04 12:55:28 +01:00
Atheuz 4a8faca42e feat: add SecretStr and SecretBytes. (#452)
* feat: add SecretStr and SecretBytes.

* chore: update HISTORY.rst

* fix: file permissions were incorrect.

* feat: lint, format, fix comments.

* feat: changed inner type of SecretBytes in the schema to string as there is no bytes type in json.

* feat: remove format from secret str and secret bytes.

* feat: fix schema mapping.
2019-04-04 12:14:47 +01:00
Vitaly R. Samigullin 28191d594c Fix JSON serialization for ipaddress types (#457) 2019-04-04 10:03:51 +01:00
Vitaly R. Samigullin 9e12674827 PyObject callable values (#440)
* Support callable as PyObject field

* Add unittests for PyObject callable values

* Update HISTORY.rst

* PyObject minor fixes after code review (#409)
2019-04-04 10:00:55 +01:00
Samuel Colvin bbbc8987a8 Classvars (#455)
* Support specialized ClassVars, e. g. ClassVar[int] now works in a model, fix #435

* Use apostrophes and pass the test also on python 3.6, where ClassVar[int] is a ClassVar, not a _GenericAlias. Note that the == operator gives False in this case, so we must really compare the classes directly.

* Another attempt at the ClassVar check.

* Ran make format.

* Make mypy happy.

* add HISTORY
2019-04-03 11:58:28 +01:00
tigerwings 085fc84818 Fix ForwardRef collection bug (#450)
* fix ForwardRef collection bug, fix #439

* reformat codes

* minor document error

* add HISTORY.rst and simplified unit test

* restore the original example for ForwardRef
2019-04-03 11:14:11 +01:00
pyup.io bot 500a166056 Scheduled monthly dependency update for April (#449)
* Update sphinx from 1.8.4 to 2.0.0

* Update attrs from 18.2.0 to 19.1.0

* Update black from 18.9b0 to 19.3b0

* Update coverage from 4.5.2 to 4.5.3

* Update isort from 4.3.9 to 4.3.16

* Update pytest from 4.3.0 to 4.4.0

* Update pytest-isort from 0.2.1 to 0.3.1

* Update pytest-mock from 1.10.1 to 1.10.3
2019-04-02 10:44:26 +01:00
Nikita Leybovich 3a33d8db10 IntEnum support (#444)
* IntEnum support

* Update HISTORY.rst
2019-04-01 15:52:24 +01:00
Vitaly R. Samigullin 42bc8e4b43 Sequence support (#428)
fix #304

* Sequence support added

* Unittests for sequence added

* Fix HISTORY

* Sequence validation simplified

* Fix type conversion for Sequence
2019-03-29 10:17:23 +00:00
Denis Kataev fa65a07a0c Correct path in nested models (#437)
* Correct path in nested models

* History

* Fix code review
2019-03-28 15:26:06 +00:00
Vitaly R. Samigullin caaa16ee71 Dataclass schema attr (#438)
fix #408

* Fix default field value compatibility for dataclass-based models

* Add unittests for dataclass schema bugfix

* Update HISTORY
2019-03-28 12:56:58 +00:00
Vitaly R. Samigullin 0458f9ece9 IPv{4,6,Any}{Interface,Network} types added (#419)
* IPv{4,6,Any}{Network,Interface} types added, unittests and docs updated

* HISTORY.rst minor update

* Remove strict argument from IP network types

* IP Networks validators and type hints fixed

* tweak history
2019-03-20 18:13:04 +00:00
pyup.io bot 721f17d2b5 Scheduled monthly dependency update for March (#410)
* Update sphinx from 1.8.3 to 1.8.4

* Update flake8 from 3.7.4 to 3.7.7

* Update isort from 4.3.4 to 4.3.9

* Update mypy from 0.660 to 0.670

* Update pyflakes from 2.1.0 to 2.1.1

* Update pytest from 4.2.0 to 4.3.0

* Update pytest-mock from 1.10.0 to 1.10.1
2019-03-15 11:37:52 +00:00
Vitaly R. Samigullin f41e3afaa0 ipaddress.IPAddress support (#417)
* ipaddress-compatible types added, fix #333

* Unittests for ipaddress-types added

* Docs updated after ipaddress-types added

* HISTORY.rst updated to reflect ipaddress-related types introduction

* Fix docs table format

* Strings double quotes reverted

* ipaddress types support fixed, IPvAnyAddress type redefined

* Error handling fixed for ipaddress-related types

* Positive cases for IPv4Address and IPv6Address types in unittests added
2019-03-15 10:18:06 +00:00
Yaraslau Zhylko 37855aa90c fix typo in NoneIsNotAllowedError message (#414)
* fix typo in `NoneIsNotAllowedError` message

* Add HISTORY.rst entry
2019-03-07 13:33:58 +00:00
Samuel Colvin 951daa7c5f submodel validation, fix #403 (#407) 2019-02-25 15:22:19 +00:00
Andrey Golovizin e77bc00d6e Fix type hints of parse_obj and similar methods (#405) 2019-02-21 22:23:50 +00:00
Samuel Colvin 1161df3ca0 support ForwardRef on dataclasses (#399)
* support ForwardRef on dataclasses, fix #397

* explicit docs about when postponed annotations don't work
2019-02-18 08:41:35 +00:00
Daniel Smith 5438aa5c91 Allow autocompletion of fields (#398)
* Allows interactive usage to autocomplete fields

* History add now that PR # is available
2019-02-18 07:53:02 +00:00
Samuel Colvin 27323aa8b2 fix for python 3.8 (#396)
* fix for python 3.8

* history and tweak types in main.py
2019-02-15 18:29:13 +00:00
Yaraslau Zhylko d539bcd87d Fix extra behaviour for multiple inheritance/mix-ins (#394)
* Fix `extra` behaviour for multiple inheritance/mix-ins

* Update HISTORY
2019-02-13 15:40:38 +00:00
Daniel Smith 96e3e74262 Tracking for setting attributes (#389)
fix #378

* Tracking for setting attributes

* Fixes accidental leak of fields

* Allows defaults fields to be recursively set

* Docs and history for skip_defaults

* Mypy fix on calculate keys

* Update pydantic/main.py

Co-Authored-By: dgasmith <dgasmith@icloud.com>

* Update pydantic/main.py

Co-Authored-By: dgasmith <dgasmith@icloud.com>

* Update HISTORY.rst

Co-Authored-By: dgasmith <dgasmith@icloud.com>

* Cleanup pass based off review

* Simplifies constructors based on feedback

* Makes mypy happy with exlicit KeysView

* SetOrKeys and faster key search

* Formats files once more

* add tests for dict, pickle and construct

* fixes for dict, pickle and construct

* correct field_set for extra.ignore

* Fixes format
2019-02-13 15:10:45 +00:00
Samuel Colvin baade9a117 rebuild validator arguments (#388)
* rebuild validator arguments

* cleanup and tests

* update docs
2019-02-13 10:31:36 +00:00
Samuel Colvin 8fa1382beb change ms/s watershed for datetime parsing (#385)
* change ms/s watershed for datetime parsing

* more tests for ms, μs and ns

* fix formatting

* uprev
2019-02-04 22:09:51 +00:00
Samuel Colvin 04391da318 fix for 'missing' error with validate_all or validate_always (#381)
* fix for 'missing' error with validate_all or validate_always

* update HISTORY
2019-02-04 21:57:44 +00:00
Samuel Colvin 9ef401839b add type hints (#373)
* add type hints, fix #372

* fix tests and BaseModel inference

* fix #280

* fix dataclasses and docs

* more typing

* adding hints to fields.py

* type **EVERTHING*

* fix for 3.6

* small speed ups and some typ checks

* correct model.copy

* update history
2019-02-04 21:54:20 +00:00
pyup.io bot a85334682c Scheduled monthly dependency update for February (#382)
* Update flake8 from 3.6.0 to 3.7.4

* Update mypy from 0.650 to 0.660

* Update pycodestyle from 2.4.0 to 2.5.0

* Update pyflakes from 2.0.0 to 2.1.0

* Update pytest from 4.0.2 to 4.2.0

* Update pytest-cov from 2.6.0 to 2.6.1

* fix test linting
2019-02-04 20:31:42 +00:00
Or Carmi 9900c7f00c Refactored extra types to use a single enum (#352)
deprecated `ignore_extra` and `allow_extra` Config fields in favor of `extra`, fix #352

* refaactored extra types to use a single enum

* slightly simplified

* added tests

* fixed most stuff

* docs and some simplifications

* better assert

* changed enum and fixed logic

* trying to capture deprecation warning

* make format

* fixing tests and moving exta logic to __new__

* set_extra tests

* fox benchmarks

* formatting

* updated history

* docs

* added a negative tests

* reverted format changes

* format

* matched casing

* renamed values

* more fixes

* forgot values change

* another one

* weird stuff

* linting issue

* Update pydantic/main.py

Co-Authored-By: liiight <4374581+liiight@users.noreply.github.com>
2019-02-04 13:15:07 +00:00
Stephen Brown II 61e758965c Add multiple_of attribute to constrained numerics (#371)
* Add multiple_of attribute to constrained numerics

* Update HISTORY.rst

* make format

* Change limit_value -> multiple_of
2019-02-03 17:13:27 +00:00
Sebastián Ramírez 725e86a8f0 custom validators in schema (#375)
* Test NoneType directly in Field.include_in_schema and add test for validator

fix #363

* Update History
2019-01-30 10:31:45 +00:00
Artem Malyshev 987449a922 Support typing.Callable validation. (#364)
fix #279

* Support typing.Callable validation.

* Add myself to HISTORY.

* Prove it works with just Callable.

* Document callable validator behavior.

* Support differences in typing module between py36 and py37.

* Remove callable filed from JSON schema with warning.

* Update pydantic/schema.py

Co-Authored-By: proofit404 <proofit404@gmail.com>

* Update tests/test_callable.py

Co-Authored-By: proofit404 <proofit404@gmail.com>

* Update pydantic/validators.py

Co-Authored-By: proofit404 <proofit404@gmail.com>

* Update tests/test_callable.py

Co-Authored-By: proofit404 <proofit404@gmail.com>

* Move callables to the exotic types.

* Move Callable type choice to the import time.

* Move is_callable_type to the utils module.

* Raise warning at skip except.

* Update pydantic/schema.py

Co-Authored-By: proofit404 <proofit404@gmail.com>

* Update docs/index.rst

Co-Authored-By: proofit404 <proofit404@gmail.com>

* Update pydantic/schema.py

Co-Authored-By: proofit404 <proofit404@gmail.com>

* uprev

* Update index.rst (#370)

* Update history.rst

* Make the example a little more concise.

* Use callable import from the utils.

* Remove blank line.

* Remove duplication comments.

* fix history
2019-01-29 15:42:00 +00:00
Samuel Colvin 2fb0b26b81 tweak schema, fix #361 (#362) 2019-01-20 14:50:49 +00:00
Nikita Grishko 145f04cb5d add `ConstrainedBytes and conbytes` types #315 (#357)
fix #315
2019-01-17 13:57:49 +00:00
Samuel Colvin 25b5d98030 support postponed annotations and ForwardRef in python 3.7 (#348)
* support postponed annotations in python 3.7

* support for full ForwardRef

* tweak update_forward_refs

* better ForwardRef resolution

* remove debug, fix linting

* fix comments

* docs and history
2019-01-11 21:01:07 +00:00
Sebastián Ramírez 32d5cdcb30 Fix BaseConfig max_anystr_length default to fixed number to None (#350)
* Fix BaseConfig max_anystr_length default to fixed number to None

* Update History
2019-01-07 13:59:25 +00:00
Samuel Colvin 3c4c163dc5 fix allow_population_by_alias (#346)
* fix allow_population_by_alias, fix #257

* update history
2018-12-29 16:16:10 +00:00
Samuel Colvin 19320bf775 improve settings priority, (#343)
* improve settings priority, ref #341

* add HISTORY.rst

* move is_complex and rename _build_environ

* tweak
2018-12-29 12:31:53 +00:00
Samuel Colvin 0f7f8fcf14 allow validate_always with default=None (#344)
* allow validate alwasy with None, fix #132

* prevent whole validators being called on subitems

* improve Optional validators edge cases
2018-12-29 11:07:45 +00:00
Samuel Colvin eeb48fbeac don't call validators on keys of dictionaries, fix #254 (#342) 2018-12-28 16:07:48 +00:00
Samuel Colvin c2bae0a05d support ClassVar, (#339)
* support ClassVar, fix #184

* fix tests, update history
2018-12-27 20:44:02 +00:00
Samuel Colvin 9ad1a0ad24 reame get_validators > __get_validators__ (#338)
* reame get_validators > __get_validators__

* update docs
2018-12-27 20:30:41 +00:00
Никита Конин e28d689f8c Simple iterables schema generation (#335)
* add schema generation for `list`, `tuple` and `set`

* add #335 mention to HISTORY.rst
2018-12-27 20:18:58 +00:00