diff sat/plugins/plugin_exp_jingle_stream.py @ 4037:524856bd7b19

massive refactoring to switch from camelCase to snake_case: historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a pre-PEP8 code, to use the same coding style as in Twisted. However, snake_case is more readable and it's better to follow PEP8 best practices, so it has been decided to move on full snake_case. Because Libervia has a huge codebase, this ended with a ugly mix of camelCase and snake_case. To fix that, this patch does a big refactoring by renaming every function and method (including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case. This is a massive change, and may result in some bugs.
author Goffi <goffi@goffi.org>
date Sat, 08 Apr 2023 13:54:42 +0200
parents be6d91572633
children 877145b4ba01
line wrap: on
line diff
--- a/sat/plugins/plugin_exp_jingle_stream.py	Fri Apr 07 15:18:39 2023 +0200
+++ b/sat/plugins/plugin_exp_jingle_stream.py	Sat Apr 08 13:54:42 2023 +0200
@@ -60,7 +60,7 @@
     def __init__(self):
         self.pause = False
 
-    def setPause(self, paused):
+    def set_pause(self, paused):
         # in Python 2.x, Twisted classes are old style
         # so we can use property and setter
         if paused:
@@ -78,10 +78,10 @@
     def connectionMade(self):
         if self.factory.client_conn is not None:
             self.transport.loseConnection()
-        self.factory.setClientConn(self)
+        self.factory.set_client_conn(self)
 
     def dataReceived(self, data):
-        self.factory.writeToConsumer(data)
+        self.factory.write_to_consumer(data)
 
     def sendData(self, data):
         self.transport.write(data)
@@ -92,9 +92,9 @@
             return
 
         if reason.type == error.ConnectionDone:
-            self.factory.streamFinished()
+            self.factory.stream_finished()
         else:
-            self.factory.streamFailed(reason)
+            self.factory.stream_failed(reason)
 
 
 @interface.implementer(stream.IStreamProducer)
@@ -109,15 +109,15 @@
     def __init__(self):
         self.client_conn = None
 
-    def setClientConn(self, stream_protocol):
+    def set_client_conn(self, stream_protocol):
         # in Python 2.x, Twisted classes are old style
         # so we can use property and setter
         assert self.client_conn is None
         self.client_conn = stream_protocol
         if self.consumer is None:
-            self.client_conn.setPause(True)
+            self.client_conn.set_pause(True)
 
-    def startStream(self, consumer):
+    def start_stream(self, consumer):
         if self.consumer is not None:
             raise exceptions.InternalError(
                 _("stream can't be used with multiple consumers")
@@ -127,17 +127,17 @@
         consumer.registerProducer(self, True)
         self.deferred = defer.Deferred()
         if self.client_conn is not None:
-            self.client_conn.setPause(False)
+            self.client_conn.set_pause(False)
         return self.deferred
 
-    def streamFinished(self):
+    def stream_finished(self):
         self.client_conn = None
         if self.consumer:
             self.consumer.unregisterProducer()
             self.port_listening.stopListening()
         self.deferred.callback(None)
 
-    def streamFailed(self, failure_):
+    def stream_failed(self, failure_):
         self.client_conn = None
         if self.consumer:
             self.consumer.unregisterProducer()
@@ -146,7 +146,7 @@
         elif self.producer:
             self.producer.stopProducing()
 
-    def stopStream(self):
+    def stop_stream(self):
         if self.client_conn is not None:
             self.client_conn.disconnect()
 
@@ -154,10 +154,10 @@
         self.producer = producer
 
     def pauseProducing(self):
-        self.client_conn.setPause(True)
+        self.client_conn.set_pause(True)
 
     def resumeProducing(self):
-        self.client_conn.setPause(False)
+        self.client_conn.set_pause(False)
 
     def stopProducing(self):
         if self.client_conn:
@@ -169,7 +169,7 @@
         except AttributeError:
             log.warning(_("No client connected, can't send data"))
 
-    def writeToConsumer(self, data):
+    def write_to_consumer(self, data):
         self.consumer.write(data)
 
 
@@ -180,23 +180,23 @@
         log.info(_("Plugin Stream initialization"))
         self.host = host
         self._j = host.plugins["XEP-0166"]  # shortcut to access jingle
-        self._j.registerApplication(NS_STREAM, self)
-        host.bridge.addMethod(
-            "streamOut",
+        self._j.register_application(NS_STREAM, self)
+        host.bridge.add_method(
+            "stream_out",
             ".plugin",
             in_sign="ss",
             out_sign="s",
-            method=self._streamOut,
+            method=self._stream_out,
             async_=True,
         )
 
     # jingle callbacks
 
-    def _streamOut(self, to_jid_s, profile_key):
-        client = self.host.getClient(profile_key)
-        return defer.ensureDeferred(self.streamOut(client, jid.JID(to_jid_s)))
+    def _stream_out(self, to_jid_s, profile_key):
+        client = self.host.get_client(profile_key)
+        return defer.ensureDeferred(self.stream_out(client, jid.JID(to_jid_s)))
 
-    async def streamOut(self, client, to_jid):
+    async def stream_out(self, client, to_jid):
         """send a stream
 
         @param peer_jid(jid.JID): recipient
@@ -230,7 +230,7 @@
         ))
         return str(port)
 
-    def jingleSessionInit(self, client, session, content_name, stream_object):
+    def jingle_session_init(self, client, session, content_name, stream_object):
         content_data = session["contents"][content_name]
         application_data = content_data["application_data"]
         assert "stream_object" not in application_data
@@ -239,7 +239,7 @@
         return desc_elt
 
     @defer.inlineCallbacks
-    def jingleRequestConfirmation(self, client, action, session, content_name, desc_elt):
+    def jingle_request_confirmation(self, client, action, session, content_name, desc_elt):
         """This method request confirmation for a jingle session"""
         content_data = session["contents"][content_name]
         if content_data["senders"] not in (
@@ -249,7 +249,7 @@
             log.warning("Bad sender, assuming initiator")
             content_data["senders"] = self._j.ROLE_INITIATOR
 
-        confirm_data = yield xml_tools.deferDialog(
+        confirm_data = yield xml_tools.defer_dialog(
             self.host,
             _(CONFIRM).format(peer=session["peer_jid"].full()),
             _(CONFIRM_TITLE),
@@ -274,10 +274,10 @@
         content_data["stream_object"] = factory
         finished_d = content_data["finished_d"] = defer.Deferred()
         args = [client, session, content_name, content_data]
-        finished_d.addCallbacks(self._finishedCb, self._finishedEb, args, None, args)
+        finished_d.addCallbacks(self._finished_cb, self._finished_eb, args, None, args)
         defer.returnValue(True)
 
-    def jingleHandler(self, client, action, session, content_name, desc_elt):
+    def jingle_handler(self, client, action, session, content_name, desc_elt):
         content_data = session["contents"][content_name]
         application_data = content_data["application_data"]
         if action in (self._j.A_ACCEPTED_ACK, self._j.A_SESSION_INITIATE):
@@ -287,19 +287,19 @@
             content_data["stream_object"] = application_data["stream_object"]
             finished_d = content_data["finished_d"] = defer.Deferred()
             args = [client, session, content_name, content_data]
-            finished_d.addCallbacks(self._finishedCb, self._finishedEb, args, None, args)
+            finished_d.addCallbacks(self._finished_cb, self._finished_eb, args, None, args)
         else:
             log.warning("FIXME: unmanaged action {}".format(action))
         return desc_elt
 
-    def _finishedCb(self, __, client, session, content_name, content_data):
+    def _finished_cb(self, __, client, session, content_name, content_data):
         log.info("Pipe transfer completed")
-        self._j.contentTerminate(client, session, content_name)
-        content_data["stream_object"].stopStream()
+        self._j.content_terminate(client, session, content_name)
+        content_data["stream_object"].stop_stream()
 
-    def _finishedEb(self, failure, client, session, content_name, content_data):
+    def _finished_eb(self, failure, client, session, content_name, content_data):
         log.warning("Error while streaming pipe: {}".format(failure))
-        self._j.contentTerminate(
+        self._j.content_terminate(
             client, session, content_name, reason=self._j.REASON_FAILED_TRANSPORT
         )
-        content_data["stream_object"].stopStream()
+        content_data["stream_object"].stop_stream()