]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
refactor(pool): define scheduler task as dataclass
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sun, 8 Oct 2023 09:45:28 +0000 (11:45 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 11 Oct 2023 21:45:39 +0000 (23:45 +0200)
psycopg_pool/psycopg_pool/_task.py

index 41976501417bc5ea4779a3f4d910a9a56ecf6fcb..9169f759cb80cdb1f9dff13d332e0595a731e81c 100644 (file)
@@ -4,24 +4,11 @@ Task for Scheduler and AsyncScheduler
 
 # Copyright (C) 2023 The Psycopg Team
 
-from typing import Any, Callable, Optional, NamedTuple
+from typing import Any, Callable, Optional
+from dataclasses import dataclass, field
 
 
-class Task(NamedTuple):
+@dataclass(order=True)
+class Task:
     time: float
-    action: Optional[Callable[[], Any]]
-
-    def __eq__(self, other: "Task") -> Any:  # type: ignore[override]
-        return self.time == other.time
-
-    def __lt__(self, other: "Task") -> Any:  # type: ignore[override]
-        return self.time < other.time
-
-    def __le__(self, other: "Task") -> Any:  # type: ignore[override]
-        return self.time <= other.time
-
-    def __gt__(self, other: "Task") -> Any:  # type: ignore[override]
-        return self.time > other.time
-
-    def __ge__(self, other: "Task") -> Any:  # type: ignore[override]
-        return self.time >= other.time
+    action: Optional[Callable[[], Any]] = field(compare=False)