From 86d3824c95429fefab24976a229a21cd226681d5 Mon Sep 17 00:00:00 2001
From: Tomperez98 <tomasperezalvarez@gmail.com>
Date: Mon, 6 Jan 2025 16:14:34 -0500
Subject: [PATCH] Remove batch commands

---
 src/resonate/actions.py             |  6 +++---
 src/resonate/context.py             | 22 +++++-----------------
 src/resonate/dataclasses.py         |  3 ---
 src/resonate/processor/traits.py    |  4 ++--
 src/resonate/queue.py               |  4 ++--
 src/resonate/task_sources/traits.py |  4 ++--
 src/resonate/traits.py              |  2 +-
 7 files changed, 15 insertions(+), 30 deletions(-)

diff --git a/src/resonate/actions.py b/src/resonate/actions.py
index 6bd8f1a3..3c58e1a7 100644
--- a/src/resonate/actions.py
+++ b/src/resonate/actions.py
@@ -5,7 +5,7 @@
 
 from typing_extensions import Self
 
-from resonate.dataclasses import BatchCommand, DurablePromise
+from resonate.dataclasses import DurablePromise
 from resonate.options import Options
 
 if TYPE_CHECKING:
@@ -49,7 +49,7 @@ def to_rfi(self) -> RFI:
 @final
 @dataclass
 class LFC:
-    unit: Invocation[Any] | BatchCommand
+    unit: Invocation[Any]
     opts: Options = field(default=Options())
 
     def options(
@@ -86,7 +86,7 @@ def options(self) -> Self:
 @final
 @dataclass
 class LFI:
-    unit: Invocation[Any] | BatchCommand
+    unit: Invocation[Any]
     opts: Options = field(default=Options())
 
     def options(
diff --git a/src/resonate/context.py b/src/resonate/context.py
index 1bf0482e..f0c34f6e 100644
--- a/src/resonate/context.py
+++ b/src/resonate/context.py
@@ -11,7 +11,7 @@
     RFC,
     RFI,
 )
-from resonate.dataclasses import BatchCommand, DurablePromise, Invocation, RegisteredFn
+from resonate.dataclasses import DurablePromise, Invocation, RegisteredFn
 from resonate.time import now
 
 if TYPE_CHECKING:
@@ -133,8 +133,6 @@ def rfi(
     ) -> RFI:
         return self.rfc(func_or_cmd, *args, **kwargs).to_rfi()
 
-    @overload
-    def lfi(self, cmd: BatchCommand, /) -> LFI: ...
     @overload
     def lfi(
         self,
@@ -161,10 +159,7 @@ def lfi(
     ) -> LFI: ...
     def lfi(
         self,
-        func_or_cmd: DurableCoro[P, T]
-        | DurableFn[P, T]
-        | BatchCommand
-        | RegisteredFn[P, T],
+        func_or_cmd: DurableCoro[P, T] | DurableFn[P, T] | RegisteredFn[P, T],
         /,
         *args: P.args,
         **kwargs: P.kwargs,
@@ -180,8 +175,6 @@ def lfi(
         """
         return self.lfc(func_or_cmd, *args, **kwargs).to_lfi()
 
-    @overload
-    def lfc(self, func: BatchCommand, /) -> LFC: ...
     @overload
     def lfc(
         self,
@@ -208,10 +201,7 @@ def lfc(
     ) -> LFC: ...
     def lfc(
         self,
-        func_or_cmd: DurableCoro[P, T]
-        | DurableFn[P, T]
-        | BatchCommand
-        | RegisteredFn[P, T],
+        func_or_cmd: DurableCoro[P, T] | DurableFn[P, T] | RegisteredFn[P, T],
         /,
         *args: P.args,
         **kwargs: P.kwargs,
@@ -222,10 +212,8 @@ def lfc(
         LFC and await for the result of the execution. It's syntax
         sugar for `yield (yield ctx.lfi(...))`
         """
-        unit: BatchCommand | Invocation[Any]
-        if isinstance(func_or_cmd, BatchCommand):
-            unit = func_or_cmd
-        elif isinstance(func_or_cmd, RegisteredFn):
+        unit: Invocation[Any]
+        if isinstance(func_or_cmd, RegisteredFn):
             unit = Invocation(func_or_cmd.fn, *args, **kwargs)
         else:
             unit = Invocation(func_or_cmd, *args, **kwargs)
diff --git a/src/resonate/dataclasses.py b/src/resonate/dataclasses.py
index a677121a..71c95ab2 100644
--- a/src/resonate/dataclasses.py
+++ b/src/resonate/dataclasses.py
@@ -160,9 +160,6 @@ def __init__(
         self.kwargs = kwargs
 
 
-class BatchCommand: ...
-
-
 class DurablePromise:
     def __init__(
         self,
diff --git a/src/resonate/processor/traits.py b/src/resonate/processor/traits.py
index 53694942..ea198998 100644
--- a/src/resonate/processor/traits.py
+++ b/src/resonate/processor/traits.py
@@ -3,12 +3,12 @@
 from abc import ABC, abstractmethod
 from typing import TYPE_CHECKING, Any
 
-from resonate.traits import SubSystem
+from resonate.traits import Subsystem
 
 if TYPE_CHECKING:
     from resonate.dataclasses import SQE
 
 
-class IProcessor(SubSystem, ABC):
+class IProcessor(Subsystem, ABC):
     @abstractmethod
     def enqueue(self, sqe: SQE[Any]) -> None: ...
diff --git a/src/resonate/queue.py b/src/resonate/queue.py
index 4c90d212..99520a55 100644
--- a/src/resonate/queue.py
+++ b/src/resonate/queue.py
@@ -8,7 +8,7 @@
 from typing import Optional, TypeVar, final
 
 from resonate.cmd_queue import CommandQ, Invoke
-from resonate.traits import SubSystem
+from resonate.traits import Subsystem
 
 T = TypeVar("T")
 
@@ -22,7 +22,7 @@ def _secs_to_ns(secs: float) -> float:
 
 
 @final
-class DelayQueue(SubSystem):
+class DelayQueue(Subsystem):
     def __init__(self) -> None:
         self._inq = Queue[Optional[tuple[Invoke, float]]]()
         self._delayed: list[tuple[float, Invoke]] = []
diff --git a/src/resonate/task_sources/traits.py b/src/resonate/task_sources/traits.py
index bcb02120..e0f323fb 100644
--- a/src/resonate/task_sources/traits.py
+++ b/src/resonate/task_sources/traits.py
@@ -3,10 +3,10 @@
 from abc import ABC, abstractmethod
 from typing import Any
 
-from resonate.traits import SubSystem
+from resonate.traits import Subsystem
 
 
-class ITaskSource(SubSystem, ABC):
+class ITaskSource(Subsystem, ABC):
     @abstractmethod
     def set_pid(self, pid: str) -> None: ...
     @abstractmethod
diff --git a/src/resonate/traits.py b/src/resonate/traits.py
index d1f661c6..d8f49722 100644
--- a/src/resonate/traits.py
+++ b/src/resonate/traits.py
@@ -7,7 +7,7 @@
     from resonate.cmd_queue import CommandQ
 
 
-class SubSystem(ABC):
+class Subsystem(ABC):
     @abstractmethod
     def start(self, cmd_queue: CommandQ) -> None: ...