]> www.average.org Git - loctrkd.git/blobdiff - loctrkd/protomodule.py
Implement sending commands from the web interface
[loctrkd.git] / loctrkd / protomodule.py
index 1a6f0fc5ada46a73cb83d1536c9ad0d3d717d6c6..a1698f2fde7ae52389a62b16dccf265122bacc93 100644 (file)
@@ -88,6 +88,10 @@ class ProtoClass(Protocol, metaclass=_MetaProto):
     IN_KWARGS: Tuple[Tuple[str, Callable[[Any], Any], Any], ...] = ()
     OUT_KWARGS: Tuple[Tuple[str, Callable[[Any], Any], Any], ...] = ()
 
+    @classmethod
+    def proto_name(cls) -> str:
+        ...
+
     class In:
         def __init__(self, *args: Any, **kwargs: Any) -> None:
             ...
@@ -118,6 +122,8 @@ class ProtoClass(Protocol, metaclass=_MetaProto):
 
 
 class ProtoModule:
+    __name__: str
+
     class Stream:
         def recv(self, segment: bytes) -> List[Union[bytes, str]]:
             ...
@@ -129,6 +135,9 @@ class ProtoModule:
     def enframe(buffer: bytes, imei: Optional[str] = None) -> bytes:
         ...
 
+    class DecodeError(Exception):
+        ...
+
     @staticmethod
     def exposed_protos() -> List[Tuple[str, bool]]:
         ...
@@ -164,3 +173,9 @@ class ProtoModule:
     @staticmethod
     def class_by_prefix(prefix: str) -> Union[Type[ProtoClass], List[str]]:
         ...
+
+    @staticmethod
+    def make_response(
+        cmd: str, imei: str, **kwargs: Any
+    ) -> Optional[ProtoClass.Out]:
+        ...