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.
This commit is contained in:
Goffi 2023-04-08 13:54:42 +02:00
commit 6a6f15707a

View file

@ -80,67 +80,67 @@ class XEP_0471:
self._sfs = host.plugins["XEP-0447"]
self._a = host.plugins["XEP-0470"]
# self._i = host.plugins.get("EMAIL_INVITATION")
host.registerNamespace("events", NS_EVENTS)
host.register_namespace("events", NS_EVENTS)
self._a.register_attachment_handler("rsvp", NS_EVENTS, self.rsvp_get, self.rsvp_set)
# host.plugins["PUBSUB_INVITATION"].register(NS_EVENTS, self)
host.bridge.addMethod(
"eventsGet",
host.bridge.add_method(
"events_get",
".plugin",
in_sign="ssasss",
out_sign="s",
method=self._events_get,
async_=True,
)
host.bridge.addMethod(
"eventCreate",
host.bridge.add_method(
"event_create",
".plugin",
in_sign="sssss",
out_sign="",
method=self._event_create,
async_=True,
)
host.bridge.addMethod(
"eventModify",
host.bridge.add_method(
"event_modify",
".plugin",
in_sign="sssss",
out_sign="",
method=self._event_modify,
async_=True,
)
host.bridge.addMethod(
"eventInviteeGet",
host.bridge.add_method(
"event_invitee_get",
".plugin",
in_sign="sssasss",
out_sign="s",
method=self._event_invitee_get,
async_=True,
)
host.bridge.addMethod(
"eventInviteeSet",
host.bridge.add_method(
"event_invitee_set",
".plugin",
in_sign="sssss",
out_sign="",
method=self._event_invitee_set,
async_=True,
)
host.bridge.addMethod(
"eventInviteesList",
host.bridge.add_method(
"event_invitees_list",
".plugin",
in_sign="sss",
out_sign="a{sa{ss}}",
method=self._eventInviteesList,
method=self._event_invitees_list,
async_=True,
),
host.bridge.addMethod(
"eventInvite",
host.bridge.add_method(
"event_invite",
".plugin",
in_sign="sssss",
out_sign="",
method=self._invite,
async_=True,
)
host.bridge.addMethod(
"eventInviteByEmail",
host.bridge.add_method(
"event_invite_by_email",
".plugin",
in_sign="ssssassssssss",
out_sign="",
@ -148,10 +148,10 @@ class XEP_0471:
async_=True,
)
def getHandler(self, client):
def get_handler(self, client):
return EventsHandler(self)
def _parseEventElt(self, event_elt):
def _parse_event_elt(self, event_elt):
"""Helper method to parse event element
@param (domish.Element): event_elt
@ -191,7 +191,7 @@ class XEP_0471:
try:
elt = next(event_elt.elements(NS_EVENT, uri_type))
uri = data[uri_type + "_uri"] = elt["uri"]
uri_data = xmpp_uri.parseXMPPUri(uri)
uri_data = xmpp_uri.parse_xmpp_uri(uri)
if uri_data["type"] != "pubsub":
raise ValueError
except StopIteration:
@ -349,7 +349,7 @@ class XEP_0471:
if rsvp_form is None:
log.warning(f"RSVP form is missing: {rsvp_elt.toXml()}")
continue
rsvp_data = xml_tools.dataForm2dataDict(rsvp_form)
rsvp_data = xml_tools.data_form_2_data_dict(rsvp_form)
if rsvp_lang:
rsvp_data["language"] = rsvp_lang
event_data.setdefault("rsvp", []).append(rsvp_data)
@ -419,7 +419,7 @@ class XEP_0471:
def _events_get(
self, service: str, node: str, event_ids: List[str], extra: str, profile_key: str
):
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
d = defer.ensureDeferred(
self.events_get(
client,
@ -449,7 +449,7 @@ class XEP_0471:
"""
if service is None:
service = client.jid.userhostJID()
items, __ = await self._p.getItems(
items, __ = await self._p.get_items(
client, service, node, item_ids=events_ids, extra=extra
)
events = []
@ -471,7 +471,7 @@ class XEP_0471:
event_id: str = "",
profile_key: str = C.PROF_KEY_NONE
):
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
return defer.ensureDeferred(
self.event_create(
client,
@ -523,7 +523,7 @@ class XEP_0471:
If several locations are used, they must have distinct IDs
rsvp(list[dict])
RSVP data. The dict is a data dict as used in
sat.tools.xml_tools.dataDict2dataForm with some extra keys.
sat.tools.xml_tools.data_dict_2_data_form with some extra keys.
The "attending" key is automatically added if it's not already present,
except if the "no_default" key is present. Thus, an empty dict can be used
to use default RSVP.
@ -702,7 +702,7 @@ class XEP_0471:
"required": True
})
rsvp_data["namespace"] = NS_RSVP
rsvp_form = xml_tools.dataDict2dataForm(rsvp_data)
rsvp_form = xml_tools.data_dict_2_data_form(rsvp_data)
rsvp_elt.addChild(rsvp_form.toElement())
for node_type in ("invitees", "comments", "blog", "schedule"):
@ -790,7 +790,7 @@ class XEP_0471:
item_elt = pubsub.Item(id=event_id, payload=event_elt)
options = {self._p.OPT_ACCESS_MODEL: self._p.ACCESS_WHITELIST}
await self._p.createIfNewNode(
await self._p.create_if_new_node(
client, service, nodeIdentifier=node, options=options
)
await self._p.publish(client, service, node, items=[item_elt])
@ -805,7 +805,7 @@ class XEP_0471:
node: str,
profile_key: str = C.PROF_KEY_NONE
) -> None:
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
defer.ensureDeferred(
self.event_modify(
client,
@ -855,7 +855,7 @@ class XEP_0471:
rsvp_form = data_form.findForm(rsvp_elt, NS_RSVP)
if rsvp_form is not None:
data["rsvp"] = rsvp_data = dict(rsvp_form)
self._a.setTimestamp(rsvp_elt, rsvp_data)
self._a.set_timestamp(rsvp_elt, rsvp_data)
def rsvp_set(
self,
@ -890,7 +890,7 @@ class XEP_0471:
extra: str,
profile_key: str
) -> defer.Deferred:
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
if invitees_s:
invitees = [jid.JID(i) for i in invitees_s]
else:
@ -923,7 +923,7 @@ class XEP_0471:
@param node: PubSub node of the event
@param item: PubSub item of the event
@param invitees: if set, only retrieve RSVPs from those guests
@param extra: extra data used to retrieve items as for [getAttachments]
@param extra: extra data used to retrieve items as for [get_attachments]
@return: mapping of invitee bare JID to their RSVP
an empty dict is returned if nothing has been answered yed
"""
@ -931,7 +931,7 @@ class XEP_0471:
service = client.jid.userhostJID()
if node is None:
node = NS_EVENTS
attachments, metadata = await self._a.getAttachments(
attachments, metadata = await self._a.get_attachments(
client, service, node, item, invitees, extra
)
ret = {}
@ -952,7 +952,7 @@ class XEP_0471:
rsvp_s: str,
profile_key: str
):
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
return defer.ensureDeferred(
self.event_invitee_set(
client,
@ -989,15 +989,15 @@ class XEP_0471:
"extra": {"rsvp": rsvp}
})
def _eventInviteesList(self, service, node, profile_key):
def _event_invitees_list(self, service, node, profile_key):
service = jid.JID(service) if service else None
node = node if node else NS_EVENT
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
return defer.ensureDeferred(
self.eventInviteesList(client, service, node)
self.event_invitees_list(client, service, node)
)
async def eventInviteesList(self, client, service, node):
async def event_invitees_list(self, client, service, node):
"""Retrieve attendance from event node
@param service(unicode, None): PubSub service
@ -1005,7 +1005,7 @@ class XEP_0471:
@return (dict): a dict with current attendance status,
an empty dict is returned if nothing has been answered yed
"""
items, metadata = await self._p.getItems(client, service, node)
items, metadata = await self._p.get_items(client, service, node)
invitees = {}
for item in items:
try:
@ -1025,7 +1025,7 @@ class XEP_0471:
invitees[item["id"]] = data
return invitees
async def invitePreflight(
async def invite_preflight(
self,
client: SatXMPPEntity,
invitee_jid: jid.JID,
@ -1048,17 +1048,17 @@ class XEP_0471:
invitees_node = event_data["invitees_node"]
blog_service = jid.JID(event_data["blog_service"])
blog_node = event_data["blog_node"]
await self._p.setNodeAffiliations(
await self._p.set_node_affiliations(
client, invitees_service, invitees_node, {invitee_jid: "publisher"}
)
log.debug(
f"affiliation set on invitee node (jid: {invitees_service}, "
f"node: {invitees_node!r})"
)
await self._p.setNodeAffiliations(
await self._p.set_node_affiliations(
client, blog_service, blog_node, {invitee_jid: "member"}
)
blog_items, __ = await self._b.mbGet(client, blog_service, blog_node, None)
blog_items, __ = await self._b.mb_get(client, blog_service, blog_node, None)
for item in blog_items:
try:
@ -1071,13 +1071,13 @@ class XEP_0471:
)
)
else:
await self._p.setNodeAffiliations(
await self._p.set_node_affiliations(
client, comments_service, comments_node, {invitee_jid: "publisher"}
)
log.debug(_("affiliation set on blog and comments nodes"))
def _invite(self, invitee_jid, service, node, item_id, profile):
return self.host.plugins["PUBSUB_INVITATION"]._sendPubsubInvitation(
return self.host.plugins["PUBSUB_INVITATION"]._send_pubsub_invitation(
invitee_jid, service, node, item_id or NS_EVENT, profile_key=profile
)
@ -1085,7 +1085,7 @@ class XEP_0471:
name="", host_name="", language="", url_template="",
message_subject="", message_body="",
profile_key=C.PROF_KEY_NONE):
client = self.host.getClient(profile_key)
client = self.host.get_client(profile_key)
kwargs = {
"profile": client.profile,
"emails_extra": [str(e) for e in emails_extra],
@ -1121,7 +1121,7 @@ class XEP_0471:
_('"XEP-0277" (blog) plugin is needed for this feature')
)
service = service or client.jid.userhostJID()
event_uri = xmpp_uri.buildXMPPUri(
event_uri = xmpp_uri.build_xmpp_uri(
"pubsub", path=service.full(), node=node, item=id_
)
kwargs["extra"] = {"event_uri": event_uri}
@ -1146,7 +1146,7 @@ class XEP_0471:
link_elt["service"] = service.full()
link_elt["node"] = node
link_elt["item"] = item_id
__, event_data = self._parseEventElt(event_elt)
__, event_data = self._parse_event_elt(event_elt)
try:
name = event_data["name"]
except KeyError: