Commit Graph

1087 Commits

Author SHA1 Message Date
Marcelo Trylesinski a4cb4ee3bc feat: add PastDate and FutureDate types (#2425)
* feat: add PastDate and FutureDate types

* add changes file

* add tests

* fix: json schema

* fix: black format

* less code duplicated

* add dates on success.py

* fix past and future dates

* ♻️ Apply Samuel's comments

* 🚨 Satisfy flake8

* 🔥 Remove _DateValueError

* test: add last explicit case

Co-authored-by: PrettyWood <em.jolibois@gmail.com>
2021-06-04 23:30:25 +02:00
Peter Roelants 2e2edf4f11 Allow custom CFLAGS and update documentation on reducing size. (#2517)
Squashed commit Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-06-04 21:42:49 +02:00
Ratul Maharaj aca18a9863 Added Talk Python Episode 313 to docs (#2712)
* Added Talk Python Episode 313

* Added changes file

* Update docs/index.md

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>

* Fixed typo in Michael's name

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-06-04 19:41:01 +02:00
Eric Jolibois c489445cea fix: mypy plugin link in docs (#2869) 2021-06-01 23:01:39 +02:00
Rémi Benoit 920d71b708 Fix mypy plugin link in doc (#2747) 2021-06-01 22:35:10 +02:00
Eric Jolibois 2549c3012d build(deps-dev): bump dependencies (#2867)
black:              21.4b0 ->  21.5b2
flake8:              3.9.1 ->   3.9.2
hypothesis:         6.10.1 -> 6.13.10
mkdocs-material:     7.1.4 ->   7.1.6
pytest:              6.2.3 ->   6.2.4
pytest-cov:         2.11.1 ->  2.12.0
typing-extensions: 3.7.4.3 ->  3.10.0.0
2021-06-01 18:46:05 +02:00
Sebastián Ramírez c7d5259c0d 🔥 Unpin SQLAlchemy version for FastAPI tests (#2865)
as it is now pinned in FastAPI, and soon I will upgrade its version
2021-06-01 14:19:11 +02:00
Eric Jolibois babbd4c59d fix: attrs + cattrs benchmark (#2863) 2021-06-01 13:54:24 +02:00
Nuno André b718e8e626 Add GetterDict example (#2463)
* Add GetterDict example

* Update docs/usage/models.md

Co-authored-by: Samuel Colvin <samcolvin@gmail.com>

Co-authored-by: Samuel Colvin <samcolvin@gmail.com>
2021-05-12 15:25:17 +01:00
dependabot[bot] 6df783e9b4 build(deps): bump mkdocs-material from 7.1.3 to 7.1.4 (#2773)
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.3 to 7.1.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.3...7.1.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 21:40:27 +01:00
dependabot[bot] 34afae1e97 build(deps): bump pytest-mock from 3.6.0 to 3.6.1 (#2770)
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.6.0...v3.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-11 21:33:46 +01:00
Samuel Colvin 111ee2f5c9 V1.8.2 history (#2783)
* add change log for v1.8.2

* fix warning

* v1.6.2 and v1.7.4 to history
2021-05-11 21:28:16 +01:00
Samuel Colvin 7e83fdd256 Merge pull request from GHSA-5jqp-qgf6-3pvh
* fix infinite loop in datetime parsing

* add change description

* switch to set a max datetime number
2021-05-11 18:08:48 +01:00
Eric Jolibois a6154514c1 fix(schema): namedtuple with default (#2711)
Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2021-05-11 15:13:54 +01:00
Samuel Colvin 7a2bcd2f6a switch downloads badge to pepy.tech 2021-05-11 15:13:29 +01:00
Yurii Karabas 7ac1dc537a Fix repr tests (#2769) 2021-05-11 15:07:43 +01:00
layday 0bfc930274 Allow passing json_encoders in class kwargs (#2523)
* Test that `json_encoders` are respected from class kwargs

* Allow passing `json_encoders` in class kwargs

Fixes #2521.
2021-05-11 15:03:51 +01:00
Samuel Colvin 17eb82cd50 fixing tests (#2779) 2021-05-11 14:40:17 +01:00
Frank Epperlein 362f4a5163 add repr parameter to hide a field from repr() (#2593)
* add repr parameter to hide a field from repr()

* fix styling issues

… found by flake8.

* fix type annotation issues

* correctly name changes file

* test hiding default values from repr() of a Field

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-05-09 14:16:52 +01:00
Eric Jolibois 0b3c5631bd fix: generate a valid name in schema for Enum classes (#2582)
* fix: generate a valid name in schema for `Enum` classes

* test: add schema with generic enum

* (erase me): just to check fastapi tests

* Revert "(erase me): just to check fastapi tests"

This reverts commit f334c4b575d413639d26c17c2c36d30333afcf7c.

* fix linting 😴

Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2021-05-09 14:11:48 +01:00
Pax 68784f63c0 fix: provide __version__ attribute (#2573)
* fix: provide __version__ attribute

Pyinstaller is giving an error packaging a script that uses pydantic, "AttributeError: Module 'pydantic' has no attribute '__version__'"

See Issue #2572

* chore: add md file in changes folder

* test: __version__ attribute of pydantic module
2021-05-09 13:44:55 +01:00
Eric Jolibois 31c4efb7f0 fix: remove side effect of default_factory to always run it only once (#2566) 2021-05-09 13:35:15 +01:00
Davis Kirkendall e3b98a1db4 Support user defined generic field types in generic models. (#2554)
Work on #2465 (see comments)

Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2021-05-09 13:11:31 +01:00
Eric Jolibois 4753901151 fix(schema): JSON schema generation with a Literal of an enum member (#2536)
Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2021-05-09 12:20:54 +01:00
Yurii Karabas 0a5f0fae7a Fix issue with config decl at class level (#2532)
* Fix issue with config decl at class level

* Add changes

* Update pydantic/main.py

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>

* Update changes

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-05-09 12:05:48 +01:00
Christopher Evans 9cc6d44682 Allow for generation of a constrained decimal with decimal_places argument for hypothesis plugin (#2524)
* Add functionality to create a constrained decimal strategy when decimal_place argument is provided

* adding readme

* edit readme

* adding back confloattmul test

* Update changes/2524-cwe5590.md

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-05-09 11:57:14 +01:00
Samuel Colvin 046fc53324 disable "label-assign" for PR reviews again, :-( 2021-05-09 11:55:12 +01:00
Samuel Colvin 42033cfe1c try enabling "label-assign" for PR reviews 2021-05-09 11:05:41 +01:00
Søren Bjerregaard Vrist 08fc8302cf Add lookahead for ip check in AnyUrl (#2512) 2021-05-09 10:49:19 +01:00
Eric Jolibois 9cc19e9a8e fix: support arbitrary types with custom __eq__ (#2502) 2021-05-09 10:44:53 +01:00
Koudai Aono 07908b3846 Add "strict" argument to "conbytes" (#2490)
* Add "strict" argument to "conbytes"

* Add unittest

* Update changes/2489-koxudaxi.md

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-05-09 10:27:29 +01:00
Alexandre Gerona 9f654a1fb2 fix(encoder): serialize NameEmail to str (#2479) 2021-05-09 10:26:02 +01:00
Danielle Madeley 82fb6ebfc9 Generate schema for generic models (#2364) 2021-05-09 09:23:56 +01:00
Samuel Colvin 5921d5ec96 use latest label-and-assign docker image 2021-05-03 22:03:58 +01:00
Samuel Colvin c7aea15d2a remove unused step from label-and-assign 2021-05-03 18:17:44 +01:00
Samuel Colvin 298a54a024 add label-and-assign github action (#2739)
* add label-and-assign github action

* remove pull_request_review trigger :-(
2021-05-03 18:12:06 +01:00
krisaoe 42395056e1 Fix(docs): remove colon to separate unrelated clauses (#2733)
* Fix(docs): remove colon to separate unrelated clauses 

The colon at the end of the line "The fields which were supplied when user was initialised:" suggests that the code following it is related.
Changed it to a period.

* Include change summary readme.
2021-05-03 17:46:37 +01:00
dependabot[bot] 55e688a30d build(deps): bump black from 20.8b1 to 21.4b0 (#2700)
Bumps [black](https://github.com/psf/black) from 20.8b1 to 21.4b0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/master/CHANGES.md)
- [Commits](https://github.com/psf/black/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Samuel Colvin <s@muelcolvin.com>
2021-05-03 17:19:58 +01:00
dependabot[bot] d9cf604786 build(deps): bump pytest-mock from 3.5.1 to 3.6.0 (#2734)
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.5.1...v3.6.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-03 17:19:36 +01:00
dependabot[bot] 50ade2fa3a build(deps): bump python-dotenv from 0.17.0 to 0.17.1 (#2736)
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 0.17.0 to 0.17.1.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v0.17.0...v0.17.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-03 17:18:28 +01:00
Samuel Colvin 26faf8ab94 add token permissions to upload-previews 2021-05-02 11:54:04 +01:00
dependabot[bot] 157e115500 build(deps): bump hypothesis from 6.8.5 to 6.10.1 (#2728)
Bumps [hypothesis](https://github.com/HypothesisWorks/hypothesis) from 6.8.5 to 6.10.1.
- [Release notes](https://github.com/HypothesisWorks/hypothesis/releases)
- [Commits](https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.8.5...hypothesis-python-6.10.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-01 17:22:18 +01:00
Davis Kirkendall db697cc799 Add exclude as field parameter (#2231)
* Add exclude/include as field parameters

- Add "exclude" / "include" as a field parameter so that it can be
  configured using model config (or fields) instead of purely at
  `.dict` / `.json` export time.
- Unify merging logic of advanced include/exclude fields
- Add tests for merging logic and field/config exclude/include params
- Closes #660

* Precompute include/exclude fields for class

* Increase test coverage
* Remove (now) redundant type checks in Model._iter: New
  exclusion/inclusion algorithms guarantee that no sets are passed further down.

* Add docs for advanced field level exclude/include settings

* Minimal optimization for simple exclude/include export

Running benchmarks this vs. master is at:

this: pydantic best=33.225μs/iter avg=33.940μs/iter stdev=1.120μs/iter version=1.7.3
master: pydantic best=32.901μs/iter avg=33.276μs/iter stdev=0.242μs/iter version=1.7.3

* Apply review comments on exclude/enclude field arguments

* Fix/simplify type annotations
* Allow both ``True`` and ``Ellipsis`` to be used to indicate full field
  exclusion
* Reenable hypothesis plugin (removed by mistake)
* Update advanced include/include docs to use ``True`` instead of ``...``

* Move field info exclude/include updates into FieldInfo class

This way, the model field object does not need to concern itself with
dealing with field into specific fields.
(Same was done for alias in a previous commit).

* remove double back tick in markdown.

Co-authored-by: Samuel Colvin <samcolvin@gmail.com>
2021-05-01 16:45:37 +01:00
dependabot[bot] 822be39021 build(deps): bump cython from 0.29.22 to 0.29.23 (#2684)
Bumps [cython](https://github.com/cython/cython) from 0.29.22 to 0.29.23.
- [Release notes](https://github.com/cython/cython/releases)
- [Changelog](https://github.com/cython/cython/blob/master/CHANGES.rst)
- [Commits](https://github.com/cython/cython/compare/0.29.22...0.29.23)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-01 16:09:13 +01:00
dependabot[bot] a7fe5ea201 build(deps): bump mkdocs-material from 7.1.0 to 7.1.3 (#2699)
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 7.1.0 to 7.1.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/docs/changelog.md)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/7.1.0...7.1.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-01 16:08:19 +01:00
dependabot[bot] d34ea05f60 build(deps): bump flake8 from 3.9.0 to 3.9.1 (#2682)
Bumps [flake8](https://gitlab.com/pycqa/flake8) from 3.9.0 to 3.9.1.
- [Release notes](https://gitlab.com/pycqa/flake8/tags)
- [Commits](https://gitlab.com/pycqa/flake8/compare/3.9.0...3.9.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-01 16:06:54 +01:00
Yurii Karabas 5261fd05a0 Add missed assert statement (#2662) 2021-04-12 22:55:28 +02:00
Edd Salkield ae13be5b8c docs: minor typo correction (#2649) 2021-04-10 11:21:51 +02:00
Eric Jolibois 14f055e743 fix(docs): url schema -> scheme (#2634) 2021-04-05 15:36:21 +02:00
wackazong 7fb77a779a Documentation: Put examples for config to the start of the section (#2615)
* Put examples to the start of the section

I think this is where they belong, they were in the middle of the list of config options somewhere near the end.

* Add "options" in table of contents

* tweak

Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
2021-04-05 12:40:13 +02:00