Skip to content

Commit 157facc

Browse files
authored
Merge pull request #26 from getmarkus/cm-branch-24
refactor: replace in-memory repository with collection repository
2 parents 921a6b0 + e3708c4 commit 157facc

File tree

6 files changed

+14
-9
lines changed

6 files changed

+14
-9
lines changed

app/interface_adapters/containers.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
from dependency_injector import containers, providers
22
from sqlmodel import Session
33

4-
from app.resource_adapters.persistence.in_memory.issues import InMemoryIssueRepository
4+
from app.resource_adapters.persistence.collections.issues import (
5+
CollectionIssueRepository,
6+
)
57
from app.resource_adapters.persistence.sqlmodel.database import get_engine
68
from app.resource_adapters.persistence.sqlmodel.issues import SQLModelIssueRepository
79
from config import settings
@@ -17,13 +19,13 @@ class Container(containers.DeclarativeContainer):
1719
# Repositories
1820
sqlmodel_repository = providers.Factory(SQLModelIssueRepository, session=db_session)
1921

20-
in_memory_repository = providers.Factory(InMemoryIssueRepository)
22+
collection_repository = providers.Factory(CollectionIssueRepository)
2123

2224
def get_model_config():
2325
return settings.model_config
2426

2527
issue_repository = providers.Selector(
2628
get_model_config,
2729
sqlmodel=sqlmodel_repository,
28-
**{"in-memory": in_memory_repository},
30+
**{"collection": collection_repository},
2931
)

app/resource_adapters/persistence/in_memory/__init__.py renamed to app/resource_adapters/persistence/collections/__init__.py

File renamed without changes.

app/resource_adapters/persistence/in_memory/issues.py renamed to app/resource_adapters/persistence/collections/issues.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44

55
from app.core.ports.repositories.issues import IssueRepository
66
from app.domain.issue import Issue
7-
from app.resource_adapters.persistence.in_memory.unit_of_work import InMemoryUnitOfWork
7+
from app.resource_adapters.persistence.collections.unit_of_work import (
8+
CollectionUnitOfWork,
9+
)
810

911

10-
class InMemoryIssueRepository(InMemoryUnitOfWork, IssueRepository):
12+
class CollectionIssueRepository(CollectionUnitOfWork, IssueRepository):
1113
def __init__(self) -> None:
1214
self.issues: List[Issue] = []
1315
# self.issues: dict[int, Issue] = {}

app/resource_adapters/persistence/in_memory/readme.md renamed to app/resource_adapters/persistence/collections/readme.md

File renamed without changes.

app/resource_adapters/persistence/in_memory/unit_of_work.py renamed to app/resource_adapters/persistence/collections/unit_of_work.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from app.core.repository import UnitOfWork
66

77

8-
class InMemoryUnitOfWork(UnitOfWork):
8+
class CollectionUnitOfWork(UnitOfWork):
99
def __init__(self) -> None:
1010
self.committed = False
1111

@@ -15,7 +15,7 @@ def commit(self) -> None:
1515
def rollback(self) -> None:
1616
self.committed = False
1717

18-
def __enter__(self) -> "InMemoryUnitOfWork":
18+
def __enter__(self) -> "CollectionUnitOfWork":
1919
logger.info("enter uow")
2020
return self
2121

settings.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
[default]
22
project_name = "python-template"
33
# dialect+driver://username:password@host:port/database
4+
# sqlite:// sqlite:///./issues.db
45
database_url = "sqlite:///./issues.db"
56
database_schema = ""
67
migrate_database = false
78
sqlite_wal_mode = false
8-
# in-memory, sqlmodel
9+
# collection, sqlmodel
910
model_config = "sqlmodel"
1011

1112
# CORS Settings
@@ -38,7 +39,7 @@ cors_allow_methods = [
3839
# sqlite:///./test.db sqlite://
3940
database_url = "sqlite://"
4041
database_schema = ""
41-
# in-memory, sqlmodel
42+
# collection, sqlmodel
4243
model_config = "sqlmodel"
4344
migrate_database = false
4445
sqlite_wal_mode = false

0 commit comments

Comments
 (0)