X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomtask%2Fdb.py;fp=plomtask%2Fdb.py;h=3a661d37758f579a9cac09dc90b86f07f0572e04;hb=49edaa072a3574f2303828e62c6a72f0d0bcec2c;hp=8e5529062ae18c60a2ed222deb27305f9c18e54c;hpb=3a74c67ef298d16e7a7e5dd030e1fd813f42f0b4;p=plomtask diff --git a/plomtask/db.py b/plomtask/db.py index 8e55290..3a661d3 100644 --- a/plomtask/db.py +++ b/plomtask/db.py @@ -209,7 +209,13 @@ class BaseModel(Generic[BaseModelId]): @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) @@ -254,7 +260,7 @@ class BaseModel(Generic[BaseModelId]): 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_)