diff libervia/backend/tools/common/data_format.py @ 4240:79c8a70e1813

backend, frontend: prepare remote control: This is a series of changes necessary to prepare the implementation of remote control feature: - XEP-0166: add a `priority` attribute to `ApplicationData`: this is needed when several applications are working in a same session, to know which one must be handled first. Will be used to make Remote Control have precedence over Call content. - XEP-0166: `_call_plugins` is now async and is not used with `DeferredList` anymore: the benefit to have methods called in parallels is very low, and it cause a lot of trouble as we can't predict order. Methods are now called sequentially so workflow can be predicted. - XEP-0167: fix `senders` XMPP attribute <=> SDP mapping - XEP-0234: preflight acceptance key is now `pre-accepted` instead of `file-accepted`, so the same key can be used with other jingle applications. - XEP-0167, XEP-0343: move some method to XEP-0167 - XEP-0353: use new `priority` feature to call preflight methods of applications according to it. - frontend (webrtc): refactor the sources/sink handling with a more flexible mechanism based on Pydantic models. It is now possible to have has many Data Channel as necessary, to have them in addition to A/V streams, to specify manually GStreamer sources and sinks, etc. - frontend (webrtc): rework of the pipeline to reduce latency. - frontend: new `portal_desktop` method. Screenshare portal handling has been moved there, and RemoteDesktop portal has been added. - frontend (webrtc): fix `extract_ufrag_pwd` method. rel 436
author Goffi <goffi@goffi.org>
date Sat, 11 May 2024 13:52:41 +0200
parents 4b842c1fb686
children 0d7bb4df2343
line wrap: on
line diff
--- a/libervia/backend/tools/common/data_format.py	Sat May 11 13:25:45 2024 +0200
+++ b/libervia/backend/tools/common/data_format.py	Sat May 11 13:52:41 2024 +0200
@@ -128,14 +128,20 @@
                 else:
                     yield k[len(name) + 1 :], v
 
-def serialise(data):
+
+def serialise(data: Any) -> str:
     """Serialise data so it can be sent to bridge
 
-    @return(unicode): serialised data, can be transmitted as string to the bridge
+    @return: serialised data, can be transmitted as string to the bridge
     """
     return json.dumps(data, ensure_ascii=False, default=str)
 
-def deserialise(serialised_data: str, default: Any = None, type_check: type = dict):
+
+def deserialise(
+    serialised_data: str,
+    default: Any = None,
+    type_check: type = dict
+) -> Any:
     """Deserialize data from bridge
 
     @param serialised_data(unicode): data to deserialise