* 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>
* fix prefetch related merging same relations refering to the same children models
* change to List for p3.8
* adapt refactored prefetch query from abandoned composite_key branch and make sure new test passes
* remove unused code, add missing test for prefetch related with self reference models
* 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>
* Split _on_clause() from_clause parameter into separate table and column strings
* Fix quoting for left side and order action, add test
* Improve join quoting, add more quoting tests
* 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
* Add benchmarking test suite
* Improve amortized time of model relation loads with a large number of rows
* Improve performance of loading models with many related models
* Improve performance of loading models with many related models to O(N)ish
* Fix bug where N model creation with shared related model would build in N^2 time
* Lower blocking time for queryset results
* Add docstrings and streamline hash code
Co-authored-by: haydeec1 <Eric.Haydel@jhuapl.edu>
* Fix property_fields not being inherited. Fix for #774.
* Fix coverage
* Fix coverage by removing set attribute update - during inheriting the current property fields are not set yet.
* Allow for __force_save__ in Model.upsert() method to save the models despite they already have a pk set. On integrity Error proceed to update the model, so in worst case two db calls will be made.
* Fix coverage
* Change implementation to checking if the row exists as postgres leaves hanging invalid transaction on integrity error. On force_save always check if row exists and then save/update (so always two queries).
* 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
* feat: add type hint for items in iterators for m2m relations
* chore: make flake8 happy
- rename some variables
- reorder some imports
* switch to typing.List
Co-authored-by: Benjamin Mollier <benjamin.mollier@meetap.de>
Co-authored-by: collerek <collerek@gmail.com>
* feat: add action enum class to referential actions
* feat: write validation func for action name string
* test: write test for validation referential action
* fix: backend database running for action test
* fix: set the string type of value enum class
* fix: debuging return statement type for validation
* fix: return non empty for empty action
* refactor: change in line return if statement
* fix: add iterate method in read document md
* fix: update foreign key docstring types
* docs: write documention of refernal actions
* docs: complete referential actions descriptions
* refactor: rename and reposition referential action
* refactor: change validate referential action func
* test: add assert check for really deleted rows
* fix: debug error problem in renamed enum class
* fix: apply black formatted codes
* docs: update the document for referential actions
* docs: added note for server default argument
Co-authored-by: collerek <collerek@gmail.com>
* feat: add check columns class
* feat: write document of check columns part
* test: write a test for check columns constraints
* fix: debuging test exception raise mysql
* fix: set pragma no cover to ignore cov
* fix: ignore pytest raise in python 3.x not 10
* feat: set constraint name for check columns
* refactor: support index and check overwrites
* fix: debuging check constraint arguments
* fix: debug coverage all code tests
* fix: pass the map of type constraint to counter
* refactor: edit check name replace sapce underline
* refactor: write new function copy constraints
* test: write test for invalid constraint type
* fix: debug text cluase replaced names
* fix: set pragma no cover for result returned
* refactor: no coverage for main if statement
* perf: change get constraint copy func code
* fix: fix bug in mypy typing check
* feat: add iterator function with sample docstring
* feat: implement the iterator queryset method
* feat: completed the docstring of iterator method
* test: write test function to check iterator result
* refactor: use iterate method instead fetch_all
* fix: debuging syntax error in kwargs of iterator
* feat: write a base sample doc for iterator method
* refactor: add ouput comment iterator docs example
* refactor: check change pk yield ormar model
* test: write new test to coverage iterator queryset
* fix: debuging new user model class 3 number
* fix: iterate on user3 model class
* fix: debug id field in user3 model by main user
* fix: remove prefetch_related for iterator method
* fix: debug mypy test for type annotation
* fix: added type annotation for rows variable
* simplify row checks as processing is expensive, raise exception on prefetch_related with iterator
* fix coverage
* fix mypy, bump mypy in pre-commit to newest version
* refactor: update document and test uuid pk type
* feat: write docs of iterate in quesrysetproxy
* feat: write iterate method querysetproxy tests
* fix: debuging new test written uuid pk
* refactor: seperate iterate test modules
* refactor: change description and handle empty set
* feat: added iterate method in readme files
* fix: set pragma: no cover for raised test
Co-authored-by: collerek <collerek@gmail.com>
* 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
* add __cache__ property into PydanticMixin
* add new test for exclude fields on relations
* fix the return type from __cache__ property
* run pre-commit lints/checks
Co-authored-by: collerek <collerek@gmail.com>
* 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