@classmethod
def all(cls: type[BaseModelInstance],
db_conn: DatabaseConnection) -> list[BaseModelInstance]:
- """Collect all objects of class."""
+ """Collect all objects of class into list.
+
+ Note that this primarily returns the contents of the cache, and only
+ _expands_ that by additional findings in the DB. This assumes the
+ cache is always instantly cleaned of any items that would be removed
+ from the DB.
+ """
items: dict[BaseModelId, BaseModelInstance] = {}
for k, v in cls.get_cache().items():
assert isinstance(v, cls)
self.cache()
def remove(self, db_conn: DatabaseConnection) -> None:
- """Remove from DB."""
+ """Remove from DB and cache."""
assert isinstance(self.id_, int | str)
self.uncache()
db_conn.delete_where(self.table_name, 'id', self.id_)