diff sat/tools/common/uri.py @ 2624:56f94936df1e

code style reformatting using black
author Goffi <goffi@goffi.org>
date Wed, 27 Jun 2018 20:14:46 +0200
parents 26edcf3a30eb
children 003b8b4b56a7
line wrap: on
line diff
--- a/sat/tools/common/uri.py	Wed Jun 27 07:51:29 2018 +0200
+++ b/sat/tools/common/uri.py	Wed Jun 27 20:14:46 2018 +0200
@@ -24,6 +24,7 @@
 
 # FIXME: basic implementation, need to follow RFC 5122
 
+
 def parseXMPPUri(uri):
     """Parse an XMPP uri and return a dict with various information
 
@@ -39,57 +40,64 @@
         id: id of the element (item for pubsub)
     @raise ValueError: the scheme is not xmpp
     """
-    uri_split = urlparse.urlsplit(uri.encode('utf-8'))
-    if uri_split.scheme != 'xmpp':
-        raise ValueError(u'this is not a XMPP URI')
+    uri_split = urlparse.urlsplit(uri.encode("utf-8"))
+    if uri_split.scheme != "xmpp":
+        raise ValueError(u"this is not a XMPP URI")
 
     # XXX: we don't use jid.JID for path as it can be used both in backend and frontend
     # which may use different JID classes
-    data = {u'path': urllib.unquote(uri_split.path).decode('utf-8')}
+    data = {u"path": urllib.unquote(uri_split.path).decode("utf-8")}
 
-    query_end = uri_split.query.find(';')
+    query_end = uri_split.query.find(";")
     query_type = uri_split.query[:query_end]
-    if query_end == -1 or '=' in query_type:
-        raise ValueError('no query type, invalid XMPP URI')
+    if query_end == -1 or "=" in query_type:
+        raise ValueError("no query type, invalid XMPP URI")
 
     pairs = urlparse.parse_qs(uri_split.geturl())
     for k, v in pairs.items():
         if len(v) != 1:
             raise NotImplementedError(u"multiple values not managed")
-        if k in ('path', 'type', 'sub_type'):
+        if k in ("path", "type", "sub_type"):
             raise NotImplementedError(u"reserved key used in URI, this is not supported")
-        data[k.decode('utf-8')] = urllib.unquote(v[0]).decode('utf-8')
+        data[k.decode("utf-8")] = urllib.unquote(v[0]).decode("utf-8")
 
     if query_type:
-        data[u'type'] = query_type.decode('utf-8')
-    elif u'node' in data:
-        data[u'type'] = u'pubsub'
+        data[u"type"] = query_type.decode("utf-8")
+    elif u"node" in data:
+        data[u"type"] = u"pubsub"
     else:
-        data[u'type'] = ''
+        data[u"type"] = ""
 
-    if u'node' in data:
-        if data[u'node'].startswith(u'urn:xmpp:microblog:'):
-            data[u'sub_type'] = 'microblog'
+    if u"node" in data:
+        if data[u"node"].startswith(u"urn:xmpp:microblog:"):
+            data[u"sub_type"] = "microblog"
 
     return data
 
+
 def addPairs(uri, pairs):
-    for k,v in pairs.iteritems():
-        uri.append(u';' + urllib.quote_plus(k.encode('utf-8')) + u'=' + urllib.quote_plus(v.encode('utf-8')))
+    for k, v in pairs.iteritems():
+        uri.append(
+            u";"
+            + urllib.quote_plus(k.encode("utf-8"))
+            + u"="
+            + urllib.quote_plus(v.encode("utf-8"))
+        )
+
 
 def buildXMPPUri(type_, **kwargs):
-    uri = [u'xmpp:']
-    subtype = kwargs.pop('subtype', None)
-    path = kwargs.pop('path')
-    uri.append(urllib.quote_plus(path.encode('utf-8')).replace(u'%40', '@'))
+    uri = [u"xmpp:"]
+    subtype = kwargs.pop("subtype", None)
+    path = kwargs.pop("path")
+    uri.append(urllib.quote_plus(path.encode("utf-8")).replace(u"%40", "@"))
 
-    if type_ == u'pubsub':
-        if subtype == 'microblog' and not kwargs.get('node'):
-            kwargs[u'node'] = 'urn:xmpp:microblog:0'
+    if type_ == u"pubsub":
+        if subtype == "microblog" and not kwargs.get("node"):
+            kwargs[u"node"] = "urn:xmpp:microblog:0"
         if kwargs:
-            uri.append(u'?')
+            uri.append(u"?")
             addPairs(uri, kwargs)
     else:
-        raise NotImplementedError(u'{type_} URI are not handled yet'.format(type_=type_))
+        raise NotImplementedError(u"{type_} URI are not handled yet".format(type_=type_))
 
-    return u''.join(uri)
+    return u"".join(uri)