add support for sqlalchemy >=1.4
This commit is contained in:
@ -3,7 +3,7 @@
|
|||||||
## ✨ Features
|
## ✨ Features
|
||||||
|
|
||||||
* Allow overwriting the default pydantic type for model fields [#312](https://github.com/collerek/ormar/issues/285)
|
* Allow overwriting the default pydantic type for model fields [#312](https://github.com/collerek/ormar/issues/285)
|
||||||
|
* Add support for `sqlalchemy` >=1.4 (requires `databases` >= 0.5.0) [#142](https://github.com/collerek/ormar/issues/142)
|
||||||
|
|
||||||
# 0.10.16
|
# 0.10.16
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,11 @@ from typing import (
|
|||||||
cast,
|
cast,
|
||||||
)
|
)
|
||||||
|
|
||||||
import sqlalchemy
|
try:
|
||||||
|
from sqlalchemy.engine.result import ResultProxy
|
||||||
|
except ImportError: # pragma: no cover
|
||||||
|
from sqlalchemy.engine.result import Row as ResultProxy # type: ignore
|
||||||
|
|
||||||
|
|
||||||
from ormar.models import NewBaseModel # noqa: I202
|
from ormar.models import NewBaseModel # noqa: I202
|
||||||
from ormar.models.excludable import ExcludableItems
|
from ormar.models.excludable import ExcludableItems
|
||||||
@ -25,7 +29,7 @@ class ModelRow(NewBaseModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def from_row( # noqa: CFQ002
|
def from_row( # noqa: CFQ002
|
||||||
cls,
|
cls,
|
||||||
row: sqlalchemy.engine.ResultProxy,
|
row: ResultProxy,
|
||||||
source_model: Type["Model"],
|
source_model: Type["Model"],
|
||||||
select_related: List = None,
|
select_related: List = None,
|
||||||
related_models: Any = None,
|
related_models: Any = None,
|
||||||
@ -59,7 +63,7 @@ class ModelRow(NewBaseModel):
|
|||||||
:param source_model: model on which relation was defined
|
:param source_model: model on which relation was defined
|
||||||
:type source_model: Type[Model]
|
:type source_model: Type[Model]
|
||||||
:param row: raw result row from the database
|
:param row: raw result row from the database
|
||||||
:type row: sqlalchemy.engine.result.ResultProxy
|
:type row: ResultProxy
|
||||||
:param select_related: list of names of related models fetched from database
|
:param select_related: list of names of related models fetched from database
|
||||||
:type select_related: List
|
:type select_related: List
|
||||||
:param related_models: list or dict of related models
|
:param related_models: list or dict of related models
|
||||||
@ -153,7 +157,7 @@ class ModelRow(NewBaseModel):
|
|||||||
def _populate_nested_models_from_row( # noqa: CFQ002
|
def _populate_nested_models_from_row( # noqa: CFQ002
|
||||||
cls,
|
cls,
|
||||||
item: dict,
|
item: dict,
|
||||||
row: sqlalchemy.engine.ResultProxy,
|
row: ResultProxy,
|
||||||
source_model: Type["Model"],
|
source_model: Type["Model"],
|
||||||
related_models: Any,
|
related_models: Any,
|
||||||
excludable: ExcludableItems,
|
excludable: ExcludableItems,
|
||||||
@ -183,7 +187,7 @@ class ModelRow(NewBaseModel):
|
|||||||
:param item: dictionary of already populated nested models, otherwise empty dict
|
:param item: dictionary of already populated nested models, otherwise empty dict
|
||||||
:type item: Dict
|
:type item: Dict
|
||||||
:param row: raw result row from the database
|
:param row: raw result row from the database
|
||||||
:type row: sqlalchemy.engine.result.ResultProxy
|
:type row: ResultProxy
|
||||||
:param related_models: list or dict of related models
|
:param related_models: list or dict of related models
|
||||||
:type related_models: Union[Dict, List]
|
:type related_models: Union[Dict, List]
|
||||||
:return: dictionary with keys corresponding to model fields names
|
:return: dictionary with keys corresponding to model fields names
|
||||||
@ -263,7 +267,7 @@ class ModelRow(NewBaseModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def _populate_through_instance( # noqa: CFQ002
|
def _populate_through_instance( # noqa: CFQ002
|
||||||
cls,
|
cls,
|
||||||
row: sqlalchemy.engine.ResultProxy,
|
row: ResultProxy,
|
||||||
item: Dict,
|
item: Dict,
|
||||||
related: str,
|
related: str,
|
||||||
excludable: ExcludableItems,
|
excludable: ExcludableItems,
|
||||||
@ -275,7 +279,7 @@ class ModelRow(NewBaseModel):
|
|||||||
Normally it's child class, unless the query is from queryset.
|
Normally it's child class, unless the query is from queryset.
|
||||||
|
|
||||||
:param row: row from db result
|
:param row: row from db result
|
||||||
:type row: sqlalchemy.engine.ResultProxy
|
:type row: ResultProxy
|
||||||
:param item: parent item dict
|
:param item: parent item dict
|
||||||
:type item: Dict
|
:type item: Dict
|
||||||
:param related: current relation name
|
:param related: current relation name
|
||||||
@ -301,7 +305,7 @@ class ModelRow(NewBaseModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def _create_through_instance(
|
def _create_through_instance(
|
||||||
cls,
|
cls,
|
||||||
row: sqlalchemy.engine.ResultProxy,
|
row: ResultProxy,
|
||||||
through_name: str,
|
through_name: str,
|
||||||
related: str,
|
related: str,
|
||||||
excludable: ExcludableItems,
|
excludable: ExcludableItems,
|
||||||
@ -343,7 +347,7 @@ class ModelRow(NewBaseModel):
|
|||||||
def extract_prefixed_table_columns(
|
def extract_prefixed_table_columns(
|
||||||
cls,
|
cls,
|
||||||
item: dict,
|
item: dict,
|
||||||
row: sqlalchemy.engine.result.ResultProxy,
|
row: ResultProxy,
|
||||||
table_prefix: str,
|
table_prefix: str,
|
||||||
excludable: ExcludableItems,
|
excludable: ExcludableItems,
|
||||||
) -> Dict:
|
) -> Dict:
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
databases[sqlite]>=0.3.2,<=0.4.1
|
databases[sqlite]>=0.3.2,<0.5.1
|
||||||
databases[postgresql]>=0.3.2,<=0.4.1
|
databases[postgresql]>=0.3.2,<0.5.1
|
||||||
databases[mysql]>=0.3.2,<=0.4.1
|
databases[mysql]>=0.3.2,<0.5.1
|
||||||
pydantic >=1.6.1,!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<=1.8.2
|
pydantic >=1.6.1,!=1.7,!=1.7.1,!=1.7.2,!=1.7.3,!=1.8,!=1.8.1,<=1.8.2
|
||||||
sqlalchemy>=1.3.18,<=1.3.23
|
sqlalchemy>=1.3.18,<=1.4.23
|
||||||
typing_extensions>=3.7,<=3.7.4.3
|
typing_extensions>=3.7,<=3.7.4.3
|
||||||
orjson
|
orjson
|
||||||
cryptography
|
cryptography
|
||||||
|
|||||||
Reference in New Issue
Block a user