From 59279851a3673c8f20f4c2bb02942829fb6d60e5 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:23:33 +1100 Subject: [PATCH] tidy(item_storage): remove unused list and search methods --- .../item_storage/item_storage_base.py | 11 --- .../item_storage/item_storage_memory.py | 14 ---- .../item_storage/item_storage_sqlite.py | 44 ---------- tests/aa_nodes/test_sqlite.py | 80 ------------------- 4 files changed, 149 deletions(-) diff --git a/invokeai/app/services/item_storage/item_storage_base.py b/invokeai/app/services/item_storage/item_storage_base.py index 5e7f1f7435..bbe1b3dcff 100644 --- a/invokeai/app/services/item_storage/item_storage_base.py +++ b/invokeai/app/services/item_storage/item_storage_base.py @@ -3,8 +3,6 @@ from typing import Callable, Generic, TypeVar from pydantic import BaseModel -from invokeai.app.services.shared.pagination import PaginatedResults - T = TypeVar("T", bound=BaseModel) @@ -35,15 +33,6 @@ class ItemStorageABC(ABC, Generic[T]): """Deletes the item""" pass - @abstractmethod - def list(self, page: int = 0, per_page: int = 10) -> PaginatedResults[T]: - """Gets a paginated list of items""" - pass - - @abstractmethod - def search(self, query: str, page: int = 0, per_page: int = 10) -> PaginatedResults[T]: - pass - def on_changed(self, on_changed: Callable[[T], None]) -> None: """Register a callback for when an item is changed""" self._on_changed_callbacks.append(on_changed) diff --git a/invokeai/app/services/item_storage/item_storage_memory.py b/invokeai/app/services/item_storage/item_storage_memory.py index d86f8c6729..1958c3ee8b 100644 --- a/invokeai/app/services/item_storage/item_storage_memory.py +++ b/invokeai/app/services/item_storage/item_storage_memory.py @@ -3,7 +3,6 @@ from typing import Generic, Optional, TypeVar from pydantic import BaseModel from invokeai.app.services.item_storage.item_storage_base import ItemStorageABC -from invokeai.app.services.shared.pagination import PaginatedResults T = TypeVar("T", bound=BaseModel) @@ -27,16 +26,3 @@ class ItemStorageMemory(ItemStorageABC, Generic[T]): self._on_deleted(item_id) except KeyError: pass - - def list(self, page: int = 0, per_page: int = 10) -> PaginatedResults[T]: - # TODO: actually paginate? - return PaginatedResults( - items=list(self._items.values()), page=page, per_page=per_page, pages=1, total=len(self._items) - ) - - def search(self, query: str, page: int = 0, per_page: int = 10) -> PaginatedResults[T]: - # TODO: actually paginate? - # TODO: actually search? - return PaginatedResults( - items=list(self._items.values()), page=page, per_page=per_page, pages=1, total=len(self._items) - ) diff --git a/invokeai/app/services/item_storage/item_storage_sqlite.py b/invokeai/app/services/item_storage/item_storage_sqlite.py index c49d91f3c0..99df5486a4 100644 --- a/invokeai/app/services/item_storage/item_storage_sqlite.py +++ b/invokeai/app/services/item_storage/item_storage_sqlite.py @@ -4,7 +4,6 @@ from typing import Generic, Optional, TypeVar, get_args from pydantic import BaseModel, TypeAdapter -from invokeai.app.services.shared.pagination import PaginatedResults from invokeai.app.services.shared.sqlite.sqlite_database import SqliteDatabase from .item_storage_base import ItemStorageABC @@ -89,46 +88,3 @@ class SqliteItemStorage(ItemStorageABC, Generic[T]): finally: self._lock.release() self._on_deleted(id) - - def list(self, page: int = 0, per_page: int = 10) -> PaginatedResults[T]: - try: - self._lock.acquire() - self._cursor.execute( - f"""SELECT item FROM {self._table_name} LIMIT ? OFFSET ?;""", - (per_page, page * per_page), - ) - result = self._cursor.fetchall() - - items = [self._parse_item(r[0]) for r in result] - - self._cursor.execute(f"""SELECT count(*) FROM {self._table_name};""") - count = self._cursor.fetchone()[0] - finally: - self._lock.release() - - pageCount = int(count / per_page) + 1 - - return PaginatedResults[T](items=items, page=page, pages=pageCount, per_page=per_page, total=count) - - def search(self, query: str, page: int = 0, per_page: int = 10) -> PaginatedResults[T]: - try: - self._lock.acquire() - self._cursor.execute( - f"""SELECT item FROM {self._table_name} WHERE item LIKE ? LIMIT ? OFFSET ?;""", - (f"%{query}%", per_page, page * per_page), - ) - result = self._cursor.fetchall() - - items = [self._parse_item(r[0]) for r in result] - - self._cursor.execute( - f"""SELECT count(*) FROM {self._table_name} WHERE item LIKE ?;""", - (f"%{query}%",), - ) - count = self._cursor.fetchone()[0] - finally: - self._lock.release() - - pageCount = int(count / per_page) + 1 - - return PaginatedResults[T](items=items, page=page, pages=pageCount, per_page=per_page, total=count) diff --git a/tests/aa_nodes/test_sqlite.py b/tests/aa_nodes/test_sqlite.py index 32e8c98ac1..e61657e3cd 100644 --- a/tests/aa_nodes/test_sqlite.py +++ b/tests/aa_nodes/test_sqlite.py @@ -28,22 +28,6 @@ def test_sqlite_service_can_create_and_get(db: SqliteItemStorage[TestModel]): assert db.get("1") == TestModel(id="1", name="Test") -def test_sqlite_service_can_list(db: SqliteItemStorage[TestModel]): - db.set(TestModel(id="1", name="Test")) - db.set(TestModel(id="2", name="Test")) - db.set(TestModel(id="3", name="Test")) - results = db.list() - assert results.page == 0 - assert results.pages == 1 - assert results.per_page == 10 - assert results.total == 3 - assert results.items == [ - TestModel(id="1", name="Test"), - TestModel(id="2", name="Test"), - TestModel(id="3", name="Test"), - ] - - def test_sqlite_service_can_delete(db: SqliteItemStorage[TestModel]): db.set(TestModel(id="1", name="Test")) db.delete("1") @@ -73,67 +57,3 @@ def test_sqlite_service_calls_delete_callback(db: SqliteItemStorage[TestModel]): db.set(TestModel(id="1", name="Test")) db.delete("1") assert called - - -def test_sqlite_service_can_list_with_pagination(db: SqliteItemStorage[TestModel]): - db.set(TestModel(id="1", name="Test")) - db.set(TestModel(id="2", name="Test")) - db.set(TestModel(id="3", name="Test")) - results = db.list(page=0, per_page=2) - assert results.page == 0 - assert results.pages == 2 - assert results.per_page == 2 - assert results.total == 3 - assert results.items == [TestModel(id="1", name="Test"), TestModel(id="2", name="Test")] - - -def test_sqlite_service_can_list_with_pagination_and_offset(db: SqliteItemStorage[TestModel]): - db.set(TestModel(id="1", name="Test")) - db.set(TestModel(id="2", name="Test")) - db.set(TestModel(id="3", name="Test")) - results = db.list(page=1, per_page=2) - assert results.page == 1 - assert results.pages == 2 - assert results.per_page == 2 - assert results.total == 3 - assert results.items == [TestModel(id="3", name="Test")] - - -def test_sqlite_service_can_search(db: SqliteItemStorage[TestModel]): - db.set(TestModel(id="1", name="Test")) - db.set(TestModel(id="2", name="Test")) - db.set(TestModel(id="3", name="Test")) - results = db.search(query="Test") - assert results.page == 0 - assert results.pages == 1 - assert results.per_page == 10 - assert results.total == 3 - assert results.items == [ - TestModel(id="1", name="Test"), - TestModel(id="2", name="Test"), - TestModel(id="3", name="Test"), - ] - - -def test_sqlite_service_can_search_with_pagination(db: SqliteItemStorage[TestModel]): - db.set(TestModel(id="1", name="Test")) - db.set(TestModel(id="2", name="Test")) - db.set(TestModel(id="3", name="Test")) - results = db.search(query="Test", page=0, per_page=2) - assert results.page == 0 - assert results.pages == 2 - assert results.per_page == 2 - assert results.total == 3 - assert results.items == [TestModel(id="1", name="Test"), TestModel(id="2", name="Test")] - - -def test_sqlite_service_can_search_with_pagination_and_offset(db: SqliteItemStorage[TestModel]): - db.set(TestModel(id="1", name="Test")) - db.set(TestModel(id="2", name="Test")) - db.set(TestModel(id="3", name="Test")) - results = db.search(query="Test", page=1, per_page=2) - assert results.page == 1 - assert results.pages == 2 - assert results.per_page == 2 - assert results.total == 3 - assert results.items == [TestModel(id="3", name="Test")]