37 Commits

Author SHA1 Message Date
318fe54832 Fix add_field_serializer_for_reverse_relations clearing validators (#1302)
* Fix add_field_serializer_for_reverse_relations clearing validators

* add test to check that validators are not removed

* compatibility with old python

* fix test default values

* fix coverage and cleanup

---------

Co-authored-by: collerek <collerek@gmail.com>
2024-06-10 10:43:56 +02:00
500625f0ec WIP - Pydantic v2 support (#1238)
* WIP

* WIP - make test_model_definition tests pass

* WIP - make test_model_methods pass

* WIP - make whole test suit at least run - failing 49/443 tests

* WIP fix part of the getting pydantic tests as types of fields are now kept in core schema and not on fieldsinfo

* WIP fix validation in update by creating individual fields validators, failing 36/443

* WIP fix __pydantic_extra__ in intializing model, fix test related to pydantic config checks, failing 32/442

* WIP - fix enum schema in model_json_schema, failing 31/442

* WIP - fix copying through model, fix setting pydantic fields on through, fix default config and inheriting from it, failing 26/442

* WIP fix tests checking pydantic schema, fix excluding parent fields, failing 21/442

* WIP some missed files

* WIP - fix validators inheritance and fix validators in generated pydantic, failing 17/442

* WIP - fix through models setting - only on reverse side of relation, but always on reverse side, failing 15/442

* WIP - fix through models setting - only on reverse side of relation, but always on reverse side, failing 15/442

* WIP - working on proper populating __dict__ for relations for new schema dumping, some work on openapi docs, failing 13/442

* WIP - remove property fields as pydantic has now computed_field on its own, failing 9/442

* WIP - fixes in docs, failing 8/442

* WIP - fix tests for largebinary schema, wrapped bytes fields fail in pydantic, will be fixed in pydantic-core, remaining is circural schema for related models, failing 6/442

* WIP - fix to pk only models in schemas

* Getting test suites to pass (#1249)

* wip, fixing tests

* iteration, fixing some more tests

* iteration, fixing some more tests

* adhere to comments

* adhere to comments

* remove unnecessary dict call, re-add getattribute for testing

* todo for reverse relationship

* adhere to comments, remove prints

* solve circular refs

* all tests pass 🎉

* remove 3.7 from tests

* add lint and type check jobs

* reforat with ruff, fix jobs

* rename jobs

* fix imports

* fix evaluate in py3.8

* partially fix coverage

* fix coverage, add more tests

* fix test ids

* fix test ids

* fix lint, fix docs, make docs fully working scripts, add test docs job

* fix pyproject

* pin py ver in test docs

* change dir in test docs

* fix pydantic warning hack

* rm poetry call in test_docs

* switch to pathlib in test docs

* remove coverage req test docs

* fix type check tests, fix part of types

* fix/skip next part of types

* fix next part of types

* fix next part of types

* fix coverage

* fix coverage

* fix type (bit dirty 🤷)

* fix some code smells

* change pre-commit

* tweak workflows

* remove no root from tests

* switch to full python path by passing sys.executable

* some small refactor in new base model, one sample test, change makefile

* small refactors to reduce complexity of methods

* temp add tests for prs against pydantic_v2

* remove all references to __fields__

* remove all references to construct, deprecate the method and update model_construct to be in line with pydantic

* deprecate dict and add model_dump, todo switch to model_dict in calls

* fix tests

* change to union

* change to union

* change to model_dump and model_dump_json from dict and json deprecated methods, deprecate them in ormar too

* finish switching dict() -> model_dump()

* finish switching json() -> model_dump_json()

* remove fully pydantic_only

* switch to extra for payment card, change missed json calls

* fix coverage - no more warnings internal

* fix coverage - no more warnings internal - part 2

* split model_construct into own and pydantic parts

* split determine pydantic field type

* change to new field validators

* fix benchmarks, add codspeed instead of pytest-benchmark, add action and gh workflow

* restore pytest-benchmark

* remove codspeed

* pin pydantic version, restore codspeed

* change on push to pydantic_v2 to trigger first one

* Use lifespan function instead of event (#1259)

* check return types

* fix imports order, set warnings=False on json that passes the dict, fix unnecessary loop in one of the test

* remove references to model's meta as it's now ormar config, rename related methods too

* filter out pydantic serializer warnings

* remove choices leftovers

* remove leftovers after property_fields, keep only enough to exclude them in initialization

* add migration guide

* fix meta references

* downgrade databases for now

* Change line numbers in documentation (#1265)

* proofread and fix the docs, part 1

* proofread and fix the docs for models

* proofread and fix the docs for fields

* proofread and fix the docs for relations

* proofread and fix rest of the docs, add release notes for 0.20

* create tables in new docs src

* cleanup old deps, uncomment docs publish on tag

* fix import reorder

---------

Co-authored-by: TouwaStar <30479449+TouwaStar@users.noreply.github.com>
Co-authored-by: Goran Mekić <meka@tilda.center>
2024-03-23 19:28:28 +01:00
b1ab0de4d4 Bump supported fastapi versions (#1110)
* Bump supported fastapi version to <=0.97, change all fastapi tests from starlette client to httpx.AsyncClient

* Add lifecycle manager to fastapi tests

* Fix coverage

* Add python 3.11 to test suite, bump version
2023-06-18 18:52:06 +02:00
3661967a27 Bump dependencies (#874)
* fix pytest-asynio bump to 0.19

* bump mypy

* fix coverage of async fixtures
2022-10-11 16:29:41 +02:00
6af92aa893 Fix enum schema (#715)
* fix schema with enum fields - issue #699

* fix drivers dependencies - make them optional

* fix command

* provide extras

* add bolean field to related model

* add test with select related and boolean

* new test case based on issue

* fix bool issue in postgres limit queries - issue #704

* fix coverage

* bump version and add release info
2022-06-26 19:36:13 +02:00
90f78e2fa7 Draft 0.11.0 (#594)
* fix for #584

* fix for #580

* fix typing

* connect to db in test

* refactor test

* remove async mark

* connect client

* fix mypy

* fix mypy

* update deps

* check py3.10?

* remove py3.6, bump version
2022-03-28 18:47:35 +02:00
fc32001fe7 Update get_or_create method 2022-02-01 09:44:07 +03:30
15be5170f3 fix #409 - nullable large binary fields 2021-12-16 14:44:01 +01:00
9559c0f7f6 inherit choices validators and class validators for fields in generated pydantic models 2021-10-11 16:22:50 +02:00
f6458be157 fix coverage 2021-10-11 12:22:47 +02:00
d8f0dc92f0 refactor choices validation from root validator to field validator 2021-10-10 14:11:25 +02:00
b637fc0774 remove .vscode settings, re-dump orjson choices to fix choices, move mypy config into pyproject.toml 2021-10-08 20:14:03 +02:00
1da9111dbd add extra to Model.Meta, update docs and bump version 2021-09-26 14:07:47 +02:00
521b9e6c12 fix for obsolete pydantic parameters 2021-08-06 16:03:29 +02:00
7e242f4fd3 add:SmallInteger() 2021-08-06 15:57:07 +08:00
7baaee63ce add:SmallInteger() 2021-08-06 11:43:51 +08:00
172a6a2be6 bug fixes 2021-06-22 12:58:39 +02:00
2d0ba2383a fix headers for fastapi 0.65.2+ 2021-06-09 12:01:15 +02:00
7a84577613 remove manual ids from get_pydantic tests 2021-05-31 19:09:29 +02:00
64e4288358 expand docs on get_pydantic 2021-05-31 19:04:01 +02:00
5cbac6583e wip work on expanding fastapi docs 2021-05-30 15:58:18 +02:00
88a49e67dd check modyfing annotations hack for mypy 2021-05-25 13:33:52 +02:00
b643c884ac add fastapi tests for get_pydantic 2021-05-24 18:04:41 +02:00
f93ab413de add get_pydantic and basic tests 2021-05-23 16:44:24 +02:00
a28ab0a8a2 fixes for #199 and unreported choices bug 2021-05-18 16:16:12 +02:00
7d94e13d21 add missing connection in tests 2021-05-18 13:38:02 +02:00
57803ac8e6 fix for default values in pk models 2021-05-18 13:34:02 +02:00
0527c5fb82 refactor into descriptors, cleanup, docs update 2021-05-17 17:21:10 +02:00
4c79ce5a5e WIP super dirty - change to descriptors and different tries 2021-05-16 20:42:07 +02:00
70ac1e3361 add excludes for pks and through models in dict 2021-05-07 18:38:44 +02:00
18706d884c add also basic examples for native pydantic fields including models to not skip them 2021-04-30 18:36:25 +02:00
12c002776b add examples to openapi schema, some perf improvements 2021-04-30 16:46:41 +02:00
11ed5fd322 add large binary field, tests and docs 2021-04-28 17:06:15 +02:00
7a27778b44 add and/or/not to filtergroups, add left and right shift to operators, add some tests, add *args to other functions that read data and use filter 2021-04-19 19:49:42 +02:00
1c24ade8c8 fix __all__ error in exclude, update docs 2021-04-16 14:14:24 +02:00
b3b1c156b5 add skip_reverse parameter, add links to related libs, fix weakref error, fix through error with extra=forbid 2021-04-11 18:43:23 +02:00
da05e5ba1d split tests into packages 2021-03-30 12:48:39 +02:00