diff sat/plugins/plugin_misc_lists.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 26c3e1bc7fb7
children
line wrap: on
line diff
--- a/sat/plugins/plugin_misc_lists.py	Fri Apr 07 15:18:39 2023 +0200
+++ b/sat/plugins/plugin_misc_lists.py	Sat Apr 08 13:54:42 2023 +0200
@@ -208,16 +208,16 @@
         log.info(_("Pubsub lists plugin initialization"))
         self.host = host
         self._s = self.host.plugins["XEP-0346"]
-        self.namespace = self._s.getSubmittedNS(APP_NS_TICKETS)
-        host.registerNamespace("tickets", APP_NS_TICKETS)
-        host.registerNamespace("tickets_type", NS_TICKETS_TYPE)
+        self.namespace = self._s.get_submitted_ns(APP_NS_TICKETS)
+        host.register_namespace("tickets", APP_NS_TICKETS)
+        host.register_namespace("tickets_type", NS_TICKETS_TYPE)
         self.host.plugins["PUBSUB_INVITATION"].register(
             APP_NS_TICKETS, self
         )
         self._p = self.host.plugins["XEP-0060"]
         self._m = self.host.plugins["XEP-0277"]
-        host.bridge.addMethod(
-            "listGet",
+        host.bridge.add_method(
+            "list_get",
             ".plugin",
             in_sign="ssiassss",
             out_sign="s",
@@ -232,68 +232,68 @@
                 default_node=self.namespace,
                 form_ns=APP_NS_TICKETS,
                 filters={
-                    "author": self._s.valueOrPublisherFilter,
-                    "created": self._s.dateFilter,
-                    "updated": self._s.dateFilter,
-                    "time_limit": self._s.dateFilter,
+                    "author": self._s.value_or_publisher_filter,
+                    "created": self._s.date_filter,
+                    "updated": self._s.date_filter,
+                    "time_limit": self._s.date_filter,
                 },
                 profile_key=profile_key),
             async_=True,
         )
-        host.bridge.addMethod(
-            "listSet",
+        host.bridge.add_method(
+            "list_set",
             ".plugin",
             in_sign="ssa{sas}ssss",
             out_sign="s",
             method=self._set,
             async_=True,
         )
-        host.bridge.addMethod(
-            "listDeleteItem",
+        host.bridge.add_method(
+            "list_delete_item",
             ".plugin",
             in_sign="sssbs",
             out_sign="",
             method=self._delete,
             async_=True,
         )
-        host.bridge.addMethod(
-            "listSchemaGet",
+        host.bridge.add_method(
+            "list_schema_get",
             ".plugin",
             in_sign="sss",
             out_sign="s",
-            method=lambda service, nodeIdentifier, profile_key: self._s._getUISchema(
+            method=lambda service, nodeIdentifier, profile_key: self._s._get_ui_schema(
                 service, nodeIdentifier, default_node=self.namespace,
                 profile_key=profile_key),
             async_=True,
         )
-        host.bridge.addMethod(
-            "listsList",
+        host.bridge.add_method(
+            "lists_list",
             ".plugin",
             in_sign="sss",
             out_sign="s",
-            method=self._listsList,
+            method=self._lists_list,
             async_=True,
         )
-        host.bridge.addMethod(
-            "listTemplatesNamesGet",
+        host.bridge.add_method(
+            "list_templates_names_get",
             ".plugin",
             in_sign="ss",
             out_sign="s",
-            method=self._getTemplatesNames,
+            method=self._get_templates_names,
         )
-        host.bridge.addMethod(
-            "listTemplateGet",
+        host.bridge.add_method(
+            "list_template_get",
             ".plugin",
             in_sign="sss",
             out_sign="s",
-            method=self._getTemplate,
+            method=self._get_template,
         )
-        host.bridge.addMethod(
-            "listTemplateCreate",
+        host.bridge.add_method(
+            "list_template_create",
             ".plugin",
             in_sign="ssss",
             out_sign="(ss)",
-            method=self._createTemplate,
+            method=self._create_template,
             async_=True,
         )
 
@@ -309,7 +309,7 @@
         item_elt: domish.Element
     ) -> None:
         try:
-            schema = await self._s.getSchemaForm(client, service, node)
+            schema = await self._s.get_schema_form(client, service, node)
         except Exception as e:
             log.warning(f"Can't retrive node schema as {node!r} [{service}]: {e}")
         else:
@@ -323,7 +323,7 @@
 
     def _set(self, service, node, values, schema=None, item_id=None, extra_s='',
              profile_key=C.PROF_KEY_NONE):
-        client, service, node, schema, item_id, extra = self._s.prepareBridgeSet(
+        client, service, node, schema, item_id, extra = self._s.prepare_bridge_set(
             service, node, schema, item_id, extra_s, profile_key
         )
         d = defer.ensureDeferred(self.set(
@@ -346,22 +346,22 @@
             'created' and 'updated' will be forced to current time:
                 - 'created' is set if item_id is None, i.e. if it's a new ticket
                 - 'updated' is set everytime
-        @param extra(dict, None): same as for [XEP-0060.sendItem] with additional keys:
+        @param extra(dict, None): same as for [XEP-0060.send_item] with additional keys:
             - update(bool): if True, get previous item data to merge with current one
                 if True, item_id must be set
-        other arguments are same as for [self._s.sendDataFormItem]
+        other arguments are same as for [self._s.send_data_form_item]
         @return (unicode): id of the created item
         """
         if not node:
             node = self.namespace
 
         if not item_id:
-            comments_service = await self._m.getCommentsService(client, service)
+            comments_service = await self._m.get_comments_service(client, service)
 
             # we need to use uuid for comments node, because we don't know item id in
             # advance (we don't want to set it ourselves to let the server choose, so we
             # can have a nicer id if serial ids is activated)
-            comments_node = self._m.getCommentsNode(
+            comments_node = self._m.get_comments_node(
                 node + "_" + str(shortuuid.uuid())
             )
             options = {
@@ -372,7 +372,7 @@
                 self._p.OPT_PUBLISH_MODEL: self._p.ACCESS_OPEN,
             }
             await self._p.createNode(client, comments_service, comments_node, options)
-            values["comments_uri"] = uri.buildXMPPUri(
+            values["comments_uri"] = uri.build_xmpp_uri(
                 "pubsub",
                 subtype="microblog",
                 path=comments_service.full(),
@@ -386,7 +386,7 @@
     def _delete(
         self, service_s, nodeIdentifier, itemIdentifier, notify, profile_key
     ):
-        client = self.host.getClient(profile_key)
+        client = self.host.get_client(profile_key)
         return defer.ensureDeferred(self.delete(
             client,
             jid.JID(service_s) if service_s else None,
@@ -405,26 +405,26 @@
     ) -> None:
         if not node:
             node = self.namespace
-        return await self._p.retractItems(
+        return await self._p.retract_items(
             service, node, (itemIdentifier,), notify, client.profile
         )
 
-    def _listsList(self, service, node, profile):
+    def _lists_list(self, service, node, profile):
         service = jid.JID(service) if service else None
         node = node or None
-        client = self.host.getClient(profile)
-        d = defer.ensureDeferred(self.listsList(client, service, node))
+        client = self.host.get_client(profile)
+        d = defer.ensureDeferred(self.lists_list(client, service, node))
         d.addCallback(data_format.serialise)
         return d
 
-    async def listsList(
+    async def lists_list(
         self, client, service: Optional[jid.JID], node: Optional[str]=None
     ) -> List[dict]:
         """Retrieve list of pubsub lists registered in personal interests
 
         @return list: list of lists metadata
         """
-        items, metadata = await self.host.plugins['LIST_INTEREST'].listInterests(
+        items, metadata = await self.host.plugins['LIST_INTEREST'].list_interests(
             client, service, node, namespace=APP_NS_TICKETS)
         lists = []
         for item in items:
@@ -454,34 +454,34 @@
 
         return lists
 
-    def _getTemplatesNames(self, language, profile):
-        client = self.host.getClient(profile)
-        return data_format.serialise(self.getTemplatesNames(client, language))
+    def _get_templates_names(self, language, profile):
+        client = self.host.get_client(profile)
+        return data_format.serialise(self.get_templates_names(client, language))
 
-    def getTemplatesNames(self, client, language: str) -> list:
+    def get_templates_names(self, client, language: str) -> list:
         """Retrieve well known list templates"""
 
         templates = [{"id": tpl_id, "name": d["name"], "icon": d["icon"]}
                      for tpl_id, d in TEMPLATES.items()]
         return templates
 
-    def _getTemplate(self, name, language, profile):
-        client = self.host.getClient(profile)
-        return data_format.serialise(self.getTemplate(client, name, language))
+    def _get_template(self, name, language, profile):
+        client = self.host.get_client(profile)
+        return data_format.serialise(self.get_template(client, name, language))
 
-    def getTemplate(self, client, name: str, language: str) -> dict:
+    def get_template(self, client, name: str, language: str) -> dict:
         """Retrieve a well known template"""
         return TEMPLATES[name]
 
-    def _createTemplate(self, template_id, name, access_model, profile):
-        client = self.host.getClient(profile)
-        d = defer.ensureDeferred(self.createTemplate(
+    def _create_template(self, template_id, name, access_model, profile):
+        client = self.host.get_client(profile)
+        d = defer.ensureDeferred(self.create_template(
             client, template_id, name, access_model
         ))
         d.addCallback(lambda node_data: (node_data[0].full(), node_data[1]))
         return d
 
-    async def createTemplate(
+    async def create_template(
         self, client, template_id: str, name: str, access_model: str
     ) -> Tuple[jid.JID, str]:
         """Create a list from a template"""
@@ -493,12 +493,12 @@
             0,
             {"type": "hidden", "name": NS_TICKETS_TYPE, "value": template_id}
         )
-        schema = xml_tools.dataDict2dataForm(
+        schema = xml_tools.data_dict_2_data_form(
             {"namespace": APP_NS_TICKETS, "fields": fields}
         ).toElement()
 
         service = client.jid.userhostJID()
-        node = self._s.getSubmittedNS(f"{APP_NS_TICKETS}_{name}")
+        node = self._s.get_submitted_ns(f"{APP_NS_TICKETS}_{name}")
         options = {
             self._p.OPT_ACCESS_MODEL: access_model,
         }
@@ -507,11 +507,11 @@
             # XXX: should node options be in TEMPLATE?
             options[self._p.OPT_OVERWRITE_POLICY] = self._p.OWPOL_ANY_PUB
         await self._p.createNode(client, service, node, options)
-        await self._s.setSchema(client, service, node, schema)
+        await self._s.set_schema(client, service, node, schema)
         list_elt = domish.Element((APP_NS_TICKETS, "list"))
         list_elt["type"] = template_id
         try:
-            await self.host.plugins['LIST_INTEREST'].registerPubsub(
+            await self.host.plugins['LIST_INTEREST'].register_pubsub(
                 client, APP_NS_TICKETS, service, node, creator=True,
                 name=name, element=list_elt)
         except Exception as e: