46 Commits

Author SHA1 Message Date
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
dda5e24e94 Prepare 0.12.0 release (#892) 2022-10-21 19:53:00 +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
fd0f40afd0 support(bulk-create): add raise_error flag when bulk-create empty models (#853)
* add raise_error flag when bulk-create empty models

* if not raise_error, return

* fix ut cov

* raise exception when it's empty
2022-09-28 12:54:49 +02:00
e923513681 Fix Limit 0 QuerySet Empty List (#767)
* fix: debug condition check not none limit count

* test: write a test for check zero limit empty list

* fix: debug assert check empty list with is keyword
2022-07-29 17:23:10 +02:00
ebf7c6e06f add enum field (#626)
* add enum field

* add decorator for asyncio

* fix enum typing, additional tests, add docs

* add more tests

Co-authored-by: collerek <collerek@gmail.com>
2022-04-27 12:01:00 +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
8376b6635e Merge pull request #557 from MojixCoder/master
Update get_or_create method
2022-03-28 13:04:55 +02:00
a7e78bbf8c Fix collerek/ormar#588 Bug in queryset count() method 2022-03-09 17:51:34 -05:00
f26fafe04c fix json nullable column 2022-02-25 10:46:33 +01:00
cd6d9c85af Lint code base using black 2022-02-06 19:20:27 +03:30
4431a643d5 Update get_or_create method and its tests 2022-02-06 19:14:17 +03:30
2517572a14 Reformat project 2022-02-01 10:33:29 +03:30
fc32001fe7 Update get_or_create method 2022-02-01 09:44:07 +03:30
0e167dc89f use existing encode_json to avoid code duplication, rename queryset customization param and move it to Meta, move docs to models from inheritance 2022-01-26 17:59:00 +01:00
6297846819 orjson test and doc 2022-01-21 10:03:00 +08:00
6299ea4383 can custom query_cls 2022-01-18 16:41:22 +08:00
9ce61d2269 fix type hint 2022-01-18 15:55:18 +08:00
51606a6321 fix 2022-01-18 15:54:21 +08:00
bf6ee9ce35 add encoding 2022-01-18 15:52:10 +08:00
02df4300dd fix json to bytes when bulk-create 2022-01-18 15:45:15 +08:00
5677bda054 fix json fields in bulk operations 2022-01-14 18:27:49 +01:00
7f517c9bdb Merge branch 'master' of https://github.com/collerek/ormar into check_timezones_filters 2022-01-14 17:54:20 +01:00
bf3b36194b bump databases, remove skip on sqlite test 2022-01-14 16:54:26 +01:00
bca6b6eef0 add bulk_post_update: signals 2022-01-14 18:26:11 +08:00
5b7d2d23cb add tests 2022-01-14 15:49:26 +08:00
646a901af5 clean unused code 2022-01-06 19:35:13 +01:00
c8586e5b8e rc for skip of literal binds 2022-01-06 18:22:07 +01:00
f245e91740 #455 fix improper quoting of on clause 2021-12-16 18:19:55 +01:00
b2541bed1e Added poetry integration.
Description:
* Fixed github actions;
* Removed requirements.txt;
* Fixed CONTRIBUTING.md;
* Fixed black and flake8.

Signed-off-by: Pavel <win10@list.ru>
2021-10-08 16:56:59 +04:00
89c05ecf54 add querysetproxy methods and tests 2021-06-08 14:54:16 +02:00
d441c36d01 finish implementing values, missing docstrings and docs 2021-06-07 17:42:30 +02:00
13a8655126 exclude through models 2021-06-06 15:58:38 +02:00
955ac48cdd wip - refactor of alias resolver - through models columns with fields are not properly handled yet 2021-06-05 18:53:15 +02:00
b1b3d5cd92 first ugly version of values and values_list - to refactor and check with m2m 2021-06-04 18:21:16 +02:00
c8ca6edb22 fix for not saving related model in reverse rel 2021-06-02 13:05:10 +02:00
f52797fb06 more tests for excluding parent fields, finished docs 2021-06-02 10:16:47 +02:00
62c70250a9 Fix for #214 2021-06-02 02:16:23 -04:00
5e38426694 finish release notes, add more test 2021-04-20 11:52:41 +02:00
38a094baf7 modify workflow 2021-04-04 17:39:09 +02:00
593d233a46 fix too long fk names 2021-04-04 17:27:34 +02:00
a940fcad6e fix merging lists of deeply nested reverse relations 2021-04-03 19:50:48 +02:00
749975d665 fix merging non relation list fields 2021-03-31 17:07:42 +02:00
4dc11b0de4 exclude pk_only models from beeing save_related 2021-03-30 17:54:28 +02:00
04047e4cd9 change order in save_related -> first upsert self then follow 2021-03-30 17:33:30 +02:00
da05e5ba1d split tests into packages 2021-03-30 12:48:39 +02:00