prs-fleshgolem-2070: feat: sqlalchemy 2.0 (#2096)

* upgrade sqlalchemy to 2.0

* rewrite all db models to sqla 2.0 mapping api

* fix some importing and typing weirdness

* fix types of a lot of nullable columns

* remove get_ref methods

* fix issues found by tests

* rewrite all queries in repository_recipe to 2.0 style

* rewrite all repository queries to 2.0 api

* rewrite all remaining queries to 2.0 api

* remove now-unneeded __allow_unmapped__ flag

* remove and fix some unneeded cases of "# type: ignore"

* fix formatting

* bump black version

* run black

* can this please be the last one. okay. just. okay.

* fix repository errors

* remove return

* drop open API validator

---------

Co-authored-by: Sören Busch <fleshgolem@gmx.net>
This commit is contained in:
Hayden
2023-02-06 18:43:12 -09:00
committed by GitHub
parent 91cd00976a
commit 9e77a9f367
86 changed files with 1776 additions and 1572 deletions

View File

@@ -8,8 +8,7 @@ from typing import Any, TypeVar, cast
from dateutil import parser as date_parser
from dateutil.parser import ParserError
from humps import decamelize
from sqlalchemy import bindparam, text
from sqlalchemy.orm.query import Query
from sqlalchemy import Select, bindparam, text
from sqlalchemy.sql import sqltypes
from sqlalchemy.sql.expression import BindParameter
@@ -72,7 +71,7 @@ class QueryFilter:
return f"<<{joined}>>"
def filter_query(self, query: Query, model: type[Model]) -> Query:
def filter_query(self, query: Select, model: type[Model]) -> Select:
segments: list[str] = []
params: list[BindParameter] = []
for i, component in enumerate(self.filter_components):