Commit Graph

1106 Commits

Author SHA1 Message Date
Shahriyar Rzayev 7108652d0b Renamed schema variable name to schema_ as there is a schema function defined (#2724)
* Renamed schema variable name to schema_ as there is a schema function already defined

* Same approach in enum_process_schema()

* added changes file

* Update changes/2724-shahriyarr.md

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

* last shadow rename

Co-authored-by: Samuel Colvin <samcolvin@gmail.com>
Co-authored-by: PrettyWood <em.jolibois@gmail.com>
2021-09-04 04:35:54 +02:00
Yurii Karabas 0d1ed534ac Fix mypy plugin issue with self field (#2743)
* Fix mypy issue with self field

* Add docs
2021-09-04 04:15:49 +02:00
Samuel Colvin 8c6b9ca285 prevent StrictStr allowing Enum values (#2729)
* prevent StrictStr allowing Enum values

* add change

* bump
2021-09-04 04:13:32 +02:00
Eric Jolibois f9c65c5b88 fix: add/fix BaseConfig type annotations (#2720) 2021-09-04 04:13:20 +02:00
Eric Jolibois bd61f1b6ee fix: stop calling parent class root_validator if overridden (#2670)
* fix: stop calling parent class `root_validator` if overridden

* refactor: better name, default and typing
2021-09-04 03:55:11 +02:00
maximberg 93aed51183 Advanced use of generic fields in schema generation (#2375)
* Added schema generation for Generic fields with tests.
Fixed test_assert_raises_validation_error.

* Added schema generation for Generic fields with tests.
Fixed test_assert_raises_validation_error.

* tested on python 3.6, 3.7, 3.8, 3.9

* tested on python 3.6, 3.7, 3.8, 3.9

* restore formatting

* fix mistakes

* formatting

* formatting

* formatting

* fixed coverage

* changes file

* changes file

* remove redundant len

* Update pydantic/schema.py

Co-authored-by: Maz Jaleel <mazjaleel@gmail.com>

* Generic fields with params

* Generic fields with params

* Fix my previous test

* formatting

* merging with nested models-generics

* formatting

* formatting

* rewording

Co-authored-by: Maxim Berg <berg@petrostyle.com>
Co-authored-by: Maz Jaleel <mazjaleel@gmail.com>
Co-authored-by: PrettyWood <em.jolibois@gmail.com>
2021-09-04 02:58:43 +02:00
Eric Jolibois f49887cb44 fix: coverage (#3169) 2021-09-04 02:28:39 +02:00
Vasilis Gerakaris 8417b3bb5c add FileUrl type for file:// schemes, add host_required parameter (#2434)
* add `FileUrl` type for `file://` schemes

Also add a `host_required` parameter, True by default,
False in `FileUrl` and `RedisDsn`.

* chore: useless extra in assert statement

Co-authored-by: PrettyWood <em.jolibois@gmail.com>
2021-09-04 02:10:25 +02:00
Mikhail Sitnikov 65fc336cf3 added KafkaDsn to networks.py and add default ports for HttpUrl (#2447)
* added KafkaDsn to network

* added short description to chandes folder

* added default non-displayable ports to HttpUrl model

* added info to changes folder

* fix: support non default ports in HttpUrl

* fix pr issues

* remove noqa

* add more typing by @PrettyWood

* add default http and https ports to `HttpUrl` model

* fix mypy

* chore: do not add implementation details

Co-authored-by: PrettyWood <em.jolibois@gmail.com>
2021-09-04 01:46:55 +02:00
Fernando ike 1a9f59dc1e Support postgresql+asyncpg schema for PostgresDsn (#2567)
* Added suport to postgresql async driver

* Added postgres+asyncpg in the doc.

* Added changes file

* Added postgresql+pg8000 schema

* ran make format

* Update docs/usage/types.md

Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>

* Changed from schema to scheme

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

* fixed typo scheme

* fixed merge schema

* changed to one line description

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

* added others DBAPI dialects.

* Added two # by PrettyWood

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

* fix typo by PrettyWood

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

* Fixed typo by PrettyWood

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

* added postgresql+psycopg2 in changes dir

* Fixed typo by @samuelcolvin

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

* docs: fix typo

* chore: sort alphabetically

Co-authored-by: Fernando Ike <fernando.ike@maburix.com>
Co-authored-by: Stephen Brown II <Stephen.Brown2@gmail.com>
Co-authored-by: Eric Jolibois <em.jolibois@gmail.com>
Co-authored-by: Samuel Colvin <samcolvin@gmail.com>
2021-09-04 01:19:54 +02:00
Nuno André 5549e8d379 Fix recursive ORM parsing error (#2718)
The _ORM mode_ doesn't parse dictionaries if it's not explicitly called.
2021-09-04 00:47:11 +02:00
Davis Kirkendall 3d287594e0 Allow collections.abc.Callable to be used as type in python 3.9 (#2519)
* Allow collections.abc.Callable to be used as type in python 3.9

* Add is_none_type as function to check none types by identity

* Modify `typing.is_none_type` to work in python 3.6 and 3.7

* Add tests for none types in typing.py

* Apply review comments on #2519
* Add different implementations depending on python version
* Add tests for is_none_type

* Add change entry

* Fix field info repr

* Remove unneeded try/except for python < 3.8

* Add comment explaining alternative is_none_type implementation

* fix: typo

Co-authored-by: PrettyWood <em.jolibois@gmail.com>
2021-09-04 00:25:28 +02:00
Christian Clauss 90080ba0de Fix typos discovered by codespell (#3096) 2021-09-04 00:05:36 +02:00
Eric Jolibois 796a7531cd chore(deps): bump requirements (#3166)
* chore(deps): bump requirements

* chore(deps-dev): bump lint requirements

* chore(deps-dev): add test requirements

* chore(deps-dev): last bumps

* fix: mypy update

* chore: docs bumps
2021-09-03 23:47:51 +02:00
Eric Jolibois 21d002ec6e chore(ci): update to python 3.10.0-rc.1 (#3085)
* refactor: rename `is_union` into `is_union_origin`

* fix: "new" union and generic types are not the same as `typing.GenericAlias`

* chore: rename param

* fix(ci): name changed for 3.10

* fix: mypy
2021-09-03 22:56:11 +02:00
Eric Jolibois 5ccbdcb590 chore(ci): remove warning filter for fastapi tests (#3001)
Now that https://github.com/tiangolo/fastapi/pull/2790 has been merged
in master, we don't need to filter those warnings anymore
2021-07-19 23:59:08 +01:00
Eric Jolibois 0c26c1c4e2 chore(ci): update python 3.10 version (#3000)
* chore(ci): update python 3.10 version

* Revert "fix: enum repr is different with 3.10+"

This reverts commit b1c8d9ef1396959ff9d88bb2ed16d99dd3146151.
2021-07-19 20:25:05 +02:00
Eric Jolibois 945bc1161f fix(ci): ignore pytest warning for fastapi tests (#2999) 2021-07-19 19:59:08 +02:00
Eric Jolibois 4a54f393ad Add python 3.10 support (#2885)
* refactor: extra `BaseConfig` and `Extra` in dedicated `config` module

* refactor: clean useless `#noqa: F401`

* refactor: clean useless `#noqa: F811`

* refactor: replace enum check

Error with 3.10
> DeprecationWarning: accessing one member from another is not supported

* refactor: avoid using `distutils` directly

error with python 3.10
> DeprecationWarning: The distutils package is deprecated and slated
> for removal in Python 3.12.
> Use setuptools or check PEP 632 for potential alternatives

* fix: `__annotations__` always exists

* fix: origin of `typing.Hashable` is not `None`

* ci: add run with 3.10.0b2

* docs: add 3.10

* feat: support `|` union operator properly

`|` operator has origin `types.Union` (and not `typing.Union`)

* fix: enum repr is different with 3.10+

* fix: error message changed a bit

change from basic `__init__` to `test_hashable_required.<locals>.MyDataclass.__init__()` (with `__qualname__`)

* fix:  always exists and is not inherited anymore

* fix: avoid calling `asyncio.get_event_loop` directly

With python 3.10, calling it results in
> DeprecationWarning: There is no current event loop

* fix(ci): do not run 3.10 on linux for now

For now it can not be compiled.
Let's just skip the check on linux for now instead of tuning the CI pipeline

* fix(ci): ignore DeprecationWarning raised by `mypy` on windows

* docs: add change file
2021-07-19 14:23:07 +01:00
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