Skip to content

Commit 7769137

Browse files
committed
Add Session Property (#17)
* Add session property.. * Remove final decorator..
1 parent c4b4057 commit 7769137

2 files changed

Lines changed: 14 additions & 4 deletions

File tree

pymfdata/rdb/repository.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313

1414
class AsyncRepository(Protocol[_MT, _T]):
15-
session: AsyncSession
15+
_session: AsyncSession
1616

1717
@property
1818
def _model(self):
@@ -22,6 +22,11 @@ def _model(self):
2222
def _pk_column(self) -> str:
2323
return inspect(self._model).primary_key[0].name
2424

25+
@property
26+
def session(self) -> AsyncSession:
27+
assert self._session is not None
28+
return self._session
29+
2530
async def delete(self, item: _MT):
2631
await self.session.delete(item)
2732

@@ -68,7 +73,7 @@ def update(self, item: _MT, req: dict):
6873

6974

7075
class SyncRepository(Protocol[_MT, _T]):
71-
session: Session
76+
_session: Session
7277

7378
@property
7479
def _model(self):
@@ -78,6 +83,11 @@ def _model(self):
7883
def _pk_column(self) -> str:
7984
return inspect(self._model).primary_key[0].name
8085

86+
@property
87+
def session(self) -> Session:
88+
assert self._session is not None
89+
return self._session
90+
8191
@final
8292
def count(self, **kwargs) -> int:
8393
return self._gen_query_for_param(**kwargs).count()

tests/rdb/domain/repository.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

77
class AsyncMemoRepository(AsyncRepository[MemoEntity, int]):
88
def __init__(self, session: Optional[AsyncSession]) -> None:
9-
self.session = session
9+
self._session = session
1010

1111

1212
class SyncMemoRepository(SyncRepository[MemoEntity, int]):
1313
def __init__(self, session: Optional[Session]) -> None:
14-
self.session = session
14+
self._session = session

0 commit comments

Comments
 (0)