Skip to content

Commit

Permalink
Merge branch 'release/0.28.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
ri-gilfanov committed Jul 18, 2021
2 parents ae4e0c1 + 6ef4fb2 commit 19940c6
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 36 deletions.
24 changes: 12 additions & 12 deletions aiohttp_sqlalchemy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,17 @@
DuplicateAppKeyError,
DuplicateRequestKeyError,
)
from aiohttp_sqlalchemy.handlers import (
from aiohttp_sqlalchemy.middlewares import sa_middleware
from aiohttp_sqlalchemy.typedefs import TBind, TBinds, TSessionFactory, TTarget
from aiohttp_sqlalchemy.utils import (
get_session,
get_session_factory,
init_db,
sa_init_db,
sa_session,
sa_session_factory,
)
from aiohttp_sqlalchemy.web_handlers import (
ItemAddMixin,
ItemDeleteMixin,
ItemEditMixin,
Expand All @@ -43,18 +53,8 @@
SAModelViewMixin,
SAPrimaryKeyMixin,
)
from aiohttp_sqlalchemy.middlewares import sa_middleware
from aiohttp_sqlalchemy.typedefs import TBind, TBinds, TSessionFactory, TTarget
from aiohttp_sqlalchemy.utils import (
get_session,
get_session_factory,
init_db,
sa_init_db,
sa_session,
sa_session_factory,
)

__version__ = '0.27.0'
__version__ = '0.28.0'

__all__ = [
'DEFAULT_KEY',
Expand Down
2 changes: 1 addition & 1 deletion aiohttp_sqlalchemy/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from aiohttp_sqlalchemy.handlers import (
from aiohttp_sqlalchemy.web_handlers import (
SABaseView,
SAItemAddMixin,
SAItemDeleteMixin,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
class SAMixin(ahth.ContextMixin, metaclass=ABCMeta):
sa_session_key: str = SA_DEFAULT_KEY

def sa_session(self, key: Optional[str] = None) -> AsyncSession:
def get_sa_session(self, key: Optional[str] = None) -> AsyncSession:
return get_session(self.request, key or self.sa_session_key)


Expand All @@ -23,12 +23,12 @@ class SAModelMixin(SAMixin, metaclass=ABCMeta):


class SAModelDeleteMixin(SAModelMixin):
def get_sa_delete_stmt(self, model: Any = None) -> Delete:
def get_delete_stmt(self, model: Any = None) -> Delete:
return delete(model or self.sa_model)


class SAModelEditMixin(SAModelMixin):
def get_sa_update_stmt(self, model: Any = None) -> Update:
def get_update_stmt(self, model: Any = None) -> Update:
return update(model or self.sa_model)


Expand All @@ -43,17 +43,17 @@ class PrimaryKeyMixin(ahth.PrimaryKeyMixin, SAModelMixin, metaclass=ABCMeta):

class ItemAddMixin(SAModelMixin, ahth.ItemMixin, metaclass=ABCMeta):
def sa_add(self, *, key: Optional[str] = None) -> None:
self.sa_session(key).add(self.item)
self.get_sa_session(key).add(self.item)


class ItemDeleteMixin(
SAModelDeleteMixin,
PrimaryKeyMixin,
metaclass=ABCMeta,
):
def get_sa_delete_stmt(self, model: Any = None) -> Delete:
def get_delete_stmt(self, model: Any = None) -> Delete:
return super(). \
get_sa_delete_stmt(model). \
get_delete_stmt(model). \
where(self.sa_pk_attr == self.pk)


Expand All @@ -65,7 +65,7 @@ class ItemEditMixin(
):
def get_sa_edit_stmt(self, model: Any = None) -> Update:
return super(). \
get_sa_update_stmt(model). \
get_update_stmt(model). \
where(self.sa_pk_attr == self.pk)


Expand All @@ -75,7 +75,7 @@ class ItemViewMixin(
PrimaryKeyMixin,
metaclass=ABCMeta,
):
def get_sa_view_stmt(self, model: Any = None) -> Select:
def get_select_stmt(self, model: Any = None) -> Select:
return super(). \
get_sa_select_stmt(model). \
where(self.sa_pk_attr == self.pk)
Expand All @@ -85,7 +85,7 @@ class ListAddMixin(ahth.ListMixin, SAModelMixin, metaclass=ABCMeta):
items: List[Any]

def sa_add_all(self, *, key: Optional[str] = None) -> None:
self.sa_session(key).add_all(self.items)
self.get_sa_session(key).add_all(self.items)


class ListDeleteMixin(ahth.ListMixin, SAModelDeleteMixin, metaclass=ABCMeta):
Expand Down
2 changes: 1 addition & 1 deletion docs/advansed.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ You can apply ``sa_decorator(key)`` with class based views. For example:
class SpecificHandler(web.View, ahsa.SAMixin):
@property
def specific_session(self):
return self.sa_session(SPECIFIC_DB_KEY)
return self.get_sa_session(SPECIFIC_DB_KEY)
@ahsa.sa_decorator(SPECIFIC_DB_KEY)
async def get(self):
Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Class based views
class MyClassBasedView(web.View, ahsa.SAMixin):
async def get(self):
db_session = self.sa_session()
db_session = self.get_sa_session()
async with db_session.begin():
# some your code
Expand Down
13 changes: 13 additions & 0 deletions docs/releases.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
========
Releases
========
Version 0.28
------------
**Changed**

* Renamed ``handlers`` module to ``web_handlers``;
* Renamed ``sa_session`` method to ``get_sa_session`` in ``SAMixin``;
* Renamed ``get_sa_delete_stmt`` method to ``get_delete_stmt``
in ``SAModelDeleteMixin`` and ``ItemDeleteMixin``;
* Renamed ``get_sa_update_stmt`` method to ``get_update_stmt``
in ``SAModelEditMixin`` and ``ItemEditMixin``;
* Renamed ``get_sa_view_stmt`` method to ``get_select_stmt``
in ``SAModelViewMixin`` and ``ItemViewMixin``.

Version 0.27
------------
**Added**
Expand Down
4 changes: 2 additions & 2 deletions examples/test_example.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ class ClassBasedView(web.View, SAMixin):
@sa_decorator(THIRD_KEY)
@sa_decorator(FOURTH_KEY)
async def get(self):
await add_instance(self.sa_session(choice(KEY_LIST)))
await add_instance(self.get_sa_session(choice(KEY_LIST)))
return web.json_response(
{key: await select_instances(self.sa_session(key))
{key: await select_instances(self.get_sa_session(key))
for key in KEY_LIST}
)

Expand Down
8 changes: 4 additions & 4 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "aiohttp-sqlalchemy"
version = "0.27.0"
version = "0.28.0"
description = "SQLAlchemy 1.4 / 2.0 support for aiohttp."
authors = [
"Ruslan Ilyasovich Gilfanov <ri.gilfanov@yandex.ru>",
Expand Down Expand Up @@ -34,7 +34,7 @@ repository = "https://github.com/ri-gilfanov/aiohttp-sqlalchemy"
[tool.poetry.dependencies]
python = "^3.7"
aiohttp = "^3.7.4.post0"
aiohttp-things = ">=0.10.0"
aiohttp-things = ">=0.12.0"
SQLAlchemy = "^1.4.21"
aiomysql = { version = ">=0.0.21", optional = true }
aiosqlite = { version = ">=0.17.0", optional = true }
Expand Down
8 changes: 4 additions & 4 deletions tests/test_views.py → tests/test_web_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ def test_sa_session(
) -> None:
mocked_request[SA_DEFAULT_KEY] = session
view = SABaseView(mocked_request)
assert view.sa_session() is session
assert view.get_sa_session() is session
with pytest.raises(TypeError):
view.sa_session('wrong key')
view.get_sa_session('wrong key')


def test_instance_add(
Expand Down Expand Up @@ -56,7 +56,7 @@ class ItemDelete(web.View, ItemDeleteMixin):
sa_model = Model

view = ItemDelete(mocked_request)
view.get_sa_delete_stmt()
view.get_delete_stmt()


def test_edit_stmt(mocked_request: Request, base_model: orm.Mapper) -> None:
Expand All @@ -82,7 +82,7 @@ class InstanceView(web.View, ItemViewMixin):
sa_model = Model

view = InstanceView(mocked_request)
view.get_sa_view_stmt()
view.get_select_stmt()


def test_list_add(
Expand Down

0 comments on commit 19940c6

Please sign in to comment.