Skip to content

Commit

Permalink
Merge branch 'release/0.23.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
ri-gilfanov committed Jul 14, 2021
2 parents c5ff5d9 + 213ef74 commit 91d7b70
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 39 deletions.
33 changes: 23 additions & 10 deletions aiohttp_sqlalchemy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,12 @@
SAInstanceMixin,
SAInstanceView,
SAInstanceViewMixin,
SAItemAddMixin,
SAItemDeleteMixin,
SAItemEditMixin,
SAItemMixin,
SAItemView,
SAItemViewMixin,
SAListAddMixin,
SAListDeleteMixin,
SAListEditMixin,
Expand All @@ -52,7 +56,7 @@
SAView,
)

__version__ = '0.22.0.post0'
__version__ = '0.23.0'

__all__ = [
'DEFAULT_KEY',
Expand All @@ -61,6 +65,24 @@
'SAAbstractView',
'SABaseView',
'SA_DEFAULT_KEY',

'SAModelMixin',
'SAModelDeleteMixin',
'SAModelEditMixin',
'SAModelViewMixin',

'SAItemMixin',
'SAItemAddMixin',
'SAItemDeleteMixin',
'SAItemEditMixin',
'SAItemViewMixin',

'SAListMixin',
'SAListAddMixin',
'SAListDeleteMixin',
'SAListEditMixin',
'SAListViewMixin',

'SAInstanceAddMixin',
'SAInstanceDeleteMixin',
'SAInstanceEditMixin',
Expand All @@ -69,17 +91,8 @@
'SAInstanceViewMixin',
'SAItemMixin',
'SAItemView',
'SAListAddMixin',
'SAListDeleteMixin',
'SAListEditMixin',
'SAListMixin',
'SAListViewMixin',
'SAMixin',
'SAModelDeleteMixin',
'SAModelEditMixin',
'SAModelMixin',
'SAModelView',
'SAModelViewMixin',
'SAPrimaryKeyMixin',
'SAView',
'bind',
Expand Down
28 changes: 19 additions & 9 deletions aiohttp_sqlalchemy/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,6 @@ class SAInstanceMixin(InstanceMixin, SAModelMixin, metaclass=ABCMeta):
"""


class SAInstanceAddMixin(SAInstanceMixin, metaclass=ABCMeta):
def sa_add(self, *, key: Optional[str] = None) -> None:
self.sa_session(key).add(self.instance)


class SAPrimaryKeyMixin(PrimaryKeyMixin, SAModelMixin, metaclass=ABCMeta):
"""
Primary key mixin for deleting, editing and viewing a single instance
Expand All @@ -71,7 +66,17 @@ class SAPrimaryKeyMixin(PrimaryKeyMixin, SAModelMixin, metaclass=ABCMeta):
sa_pk_attr: Any = getattr(SAModelMixin.sa_model, 'pk', None)


class SAInstanceDeleteMixin(
class SAItemMixin(SAModelMixin, metaclass=ABCMeta):
pass


class SAItemAddMixin(SAItemMixin, SAInstanceMixin, metaclass=ABCMeta):
def sa_add(self, *, key: Optional[str] = None) -> None:
self.sa_session(key).add(self.instance)


class SAItemDeleteMixin(
SAItemMixin,
SAModelDeleteMixin,
SAPrimaryKeyMixin,
metaclass=ABCMeta,
Expand All @@ -82,7 +87,8 @@ def get_sa_delete_stmt(self, model: Any = None) -> Delete:
where(self.sa_pk_attr == self.pk)


class SAInstanceEditMixin(
class SAItemEditMixin(
SAItemMixin,
SAInstanceMixin,
SAModelEditMixin,
SAPrimaryKeyMixin,
Expand All @@ -94,7 +100,8 @@ def get_sa_edit_stmt(self, model: Any = None) -> Update:
where(self.sa_pk_attr == self.pk)


class SAInstanceViewMixin(
class SAItemViewMixin(
SAItemMixin,
SAInstanceMixin,
SAModelViewMixin,
SAPrimaryKeyMixin,
Expand Down Expand Up @@ -143,7 +150,10 @@ class SAInstanceView(View, SAInstanceMixin, metaclass=ABCMeta):

# Synonyms
SAAbstractView = SAMixin
SAItemMixin = SAInstanceMixin
SAItemView = SAInstanceView
SAOneModelMixin = SAModelMixin
SAView = SAModelView
SAInstanceAddMixin = SAItemAddMixin
SAInstanceDeleteMixin = SAItemDeleteMixin
SAInstanceEditMixin = SAItemEditMixin
SAInstanceViewMixin = SAItemViewMixin
8 changes: 4 additions & 4 deletions docs/reference.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,22 @@ Instance mixins
:members:
:show-inheritance:

.. autoclass:: aiohttp_sqlalchemy.SAInstanceAddMixin
.. autoclass:: aiohttp_sqlalchemy.SAItemAddMixin
:inherited-members:
:members:
:show-inheritance:

.. autoclass:: aiohttp_sqlalchemy.SAInstanceDeleteMixin
.. autoclass:: aiohttp_sqlalchemy.SAItemDeleteMixin
:inherited-members:
:members:
:show-inheritance:

.. autoclass:: aiohttp_sqlalchemy.SAInstanceEditMixin
.. autoclass:: aiohttp_sqlalchemy.SAItemEditMixin
:inherited-members:
:members:
:show-inheritance:

.. autoclass:: aiohttp_sqlalchemy.SAInstanceViewMixin
.. autoclass:: aiohttp_sqlalchemy.SAItemViewMixin
:inherited-members:
:members:
:show-inheritance:
Expand Down
31 changes: 24 additions & 7 deletions docs/releases.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
========
Releases
========
Version 0.23
------------
**Add**
* ``SAItemMixin`` as a separate mixin;
* ``SAInstanceAddMixin`` as a synonym for ``SAItemAddMixin``;
* ``SAInstanceDeleteMixin`` as a synonym for ``SAItemDeleteMixin``;
* ``SAInstanceEditMixin`` as a synonym for ``SAItemEditMixin``;
* ``SAInstanceViewMixin`` as a synonym for ``SAItemViewMixin``;

**Changed**

* ``SAInstanceAddMixin`` renamed to ``SAItemAddMixin``;
* ``SAInstanceDeleteMixin`` renamed to ``SAItemDeleteMixin``;
* ``SAInstanceEditMixin`` renamed to ``SAItemEditMixin``;
* ``SAInstanceViewMixin`` renamed to ``SAItemViewMixin``;
* ``SAItemMixin`` is no longer a synonym for ``SAInstanceMixin``.

Version 0.22
------------
**Added**
Expand Down Expand Up @@ -28,8 +45,8 @@ Version 0.21

**Added**

* Synonym ``SAItemMixin`` for ``SAInstanceMixin``;
* Synonym ``SAItemView`` for ``SAInstanceView``.
* ``SAItemMixin`` as a synonym for ``SAInstanceMixin``;
* ``SAItemView`` as a synonym for ``SAInstanceView``.

Version 0.20
------------
Expand All @@ -42,8 +59,8 @@ Version 0.19
------------
**Added**

* Synonym ``sa_session`` for ``get_session``;
* Synonym ``sa_session_factory`` for ``get_session_factory``.
* ``sa_session`` as a synonym for ``get_session``;
* ``sa_session_factory`` as a synonym for ``get_session_factory``.

**Changed**

Expand All @@ -54,7 +71,7 @@ Version 0.18.1
--------------
**Added**

* Synonym ``SAView`` for ``SAModelView``.
* ``SAView`` as a synonym for ``SAModelView``.

**Changed**

Expand All @@ -74,8 +91,8 @@ Version 0.17
------------
**Added**

* ``views.SAAbstractView`` synonym for ``views.SAMixin``;
* ``views.SAOneModelMixin`` synonym for ``views.SAModelMixin``;
* ``views.SAAbstractView`` as a synonym for ``views.SAMixin``;
* ``views.SAOneModelMixin`` as a synonym for ``views.SAModelMixin``;

**Changed**

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "aiohttp-sqlalchemy"
version = "0.22.0.post0"
version = "0.23.0"
description = "SQLAlchemy 1.4 / 2.0 support for aiohttp."
authors = [
"Ruslan Ilyasovich Gilfanov <ri.gilfanov@yandex.ru>",
Expand Down
16 changes: 8 additions & 8 deletions tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
from aiohttp_sqlalchemy import (
SA_DEFAULT_KEY,
SABaseView,
SAInstanceAddMixin,
SAInstanceDeleteMixin,
SAInstanceEditMixin,
SAInstanceViewMixin,
SAItemAddMixin,
SAItemDeleteMixin,
SAItemEditMixin,
SAItemViewMixin,
SAListAddMixin,
)

Expand All @@ -37,7 +37,7 @@ class Model(base_model): # type: ignore

pk = sa.Column(sa.Integer, primary_key=True)

class InstanceAdd(web.View, SAInstanceAddMixin):
class InstanceAdd(web.View, SAItemAddMixin):
sa_model = Model

mocked_request[SA_DEFAULT_KEY] = session
Expand All @@ -52,7 +52,7 @@ class Model(base_model): # type: ignore

pk = sa.Column(sa.Integer, primary_key=True)

class InstanceDelete(web.View, SAInstanceDeleteMixin):
class InstanceDelete(web.View, SAItemDeleteMixin):
sa_model = Model

view = InstanceDelete(mocked_request)
Expand All @@ -65,7 +65,7 @@ class Model(base_model): # type: ignore

pk = sa.Column(sa.Integer, primary_key=True)

class InstanceEdit(web.View, SAInstanceEditMixin):
class InstanceEdit(web.View, SAItemEditMixin):
sa_model = Model

view = InstanceEdit(mocked_request)
Expand All @@ -78,7 +78,7 @@ class Model(base_model): # type: ignore

pk = sa.Column(sa.Integer, primary_key=True)

class InstanceView(web.View, SAInstanceViewMixin):
class InstanceView(web.View, SAItemViewMixin):
sa_model = Model

view = InstanceView(mocked_request)
Expand Down

0 comments on commit 91d7b70

Please sign in to comment.