diff src/bridge/DBus.py @ 595:1f160467f5de

Fix pep8 support in src/bridge.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Fri, 18 Jan 2013 17:55:35 +0100
parents 952322b1d490
children 84a6e83157c2
line wrap: on
line diff
--- a/src/bridge/DBus.py	Fri Jan 18 17:55:35 2013 +0100
+++ b/src/bridge/DBus.py	Fri Jan 18 17:55:35 2013 +0100
@@ -19,7 +19,6 @@
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 """
 
-
 from bridge import Bridge
 import dbus
 import dbus.service
@@ -28,42 +27,49 @@
 from logging import debug, info, error
 from twisted.internet.defer import Deferred
 
-const_INT_PREFIX = "org.goffi.SAT"  #Interface prefix
-const_ERROR_PREFIX = const_INT_PREFIX+".error"
+const_INT_PREFIX = "org.goffi.SAT"  # Interface prefix
+const_ERROR_PREFIX = const_INT_PREFIX + ".error"
 const_OBJ_PATH = '/org/goffi/SAT/bridge'
 const_CORE_SUFFIX = ".core"
 const_PLUGIN_SUFFIX = ".plugin"
 
+
 class ParseError(Exception):
     pass
 
+
 class MethodNotRegistered(dbus.DBusException):
     _dbus_error_name = const_ERROR_PREFIX + ".MethodNotRegistered"
 
+
 class InternalError(dbus.DBusException):
     _dbus_error_name = const_ERROR_PREFIX + ".InternalError"
 
+
 class AsyncNotDeferred(dbus.DBusException):
     _dbus_error_name = const_ERROR_PREFIX + ".AsyncNotDeferred"
 
+
 class DeferredNotAsync(dbus.DBusException):
     _dbus_error_name = const_ERROR_PREFIX + ".DeferredNotAsync"
 
+
 class GenericException(dbus.DBusException):
     def __init__(self, twisted_error):
-        super(GenericException,self).__init__()
+        super(GenericException, self).__init__()
         mess = twisted_error.getErrorMessage()
-        self._dbus_error_name = const_ERROR_PREFIX+"."+ (mess or str(twisted_error.__class__))
+        self._dbus_error_name = const_ERROR_PREFIX + "." + (mess or str(twisted_error.__class__))
+
 
 class DbusObject(dbus.service.Object):
 
     def __init__(self, bus, path):
         dbus.service.Object.__init__(self, bus, path)
         debug("Init DbusObject...")
-        self.cb={}
+        self.cb = {}
 
     def register(self, name, cb):
-        self.cb[name]=cb
+        self.cb[name] = cb
 
     def _callback(self, name, *args, **kwargs):
         """call the callback if it exists, raise an exception else
@@ -86,17 +92,16 @@
             if not isinstance(result, Deferred):
                 error("Asynchronous method [%s] does not return a Deferred." % name)
                 raise AsyncNotDeferred
-            result.addCallback(lambda result: callback() if result==None else callback(result))
-            result.addErrback(lambda err:errback(GenericException(err)))
+            result.addCallback(lambda result: callback() if result is None else callback(result))
+            result.addErrback(lambda err: errback(GenericException(err)))
         else:
             if isinstance(result, Deferred):
                 error("Synchronous method [%s] return a Deferred." % name)
                 raise DeferredNotAsync
             return result
-
     ### signals ###
 
-    @dbus.service.signal(const_INT_PREFIX+const_PLUGIN_SUFFIX,
+    @dbus.service.signal(const_INT_PREFIX + const_PLUGIN_SUFFIX,
                          signature='')
     def dummySignal(self):
         #FIXME: workaround for addSignal (doesn't work if one method doensn't
@@ -174,7 +179,6 @@
     def subscribe(self, sub_type, entity_jid, profile):
         pass
 
-
     ### methods ###
 
     @dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
@@ -411,41 +415,40 @@
     def updateContact(self, entity_jid, name, groups, profile_key="@DEFAULT@"):
         return self._callback("updateContact", unicode(entity_jid), unicode(name), groups, unicode(profile_key))
 
-
     def __attributes(self, in_sign):
         """Return arguments to user given a in_sign
         @param in_sign: in_sign in the short form (using s,a,i,b etc)
         @return: list of arguments that correspond to a in_sign (e.g.: "sss" return "arg1, arg2, arg3")"""
-        i=0
-        idx=0
-        attr=[]
-        while i<len(in_sign):
-            if in_sign[i] not in ['b','y','n','i','x','q','u','t','d','s','a']:
+        i = 0
+        idx = 0
+        attr = []
+        while i < len(in_sign):
+            if in_sign[i] not in ['b', 'y', 'n', 'i', 'x', 'q', 'u', 't', 'd', 's', 'a']:
                 raise ParseError("Unmanaged attribute type [%c]" % in_sign[i])
 
             attr.append("arg_%i" % idx)
-            idx+=1
+            idx += 1
 
             if in_sign[i] == 'a':
-                i+=1
-                if in_sign[i]!='{' and in_sign[i]!='(': #FIXME: must manage tuples out of arrays
-                    i+=1
-                    continue #we have a simple type for the array
+                i += 1
+                if in_sign[i] != '{' and in_sign[i] != '(':  # FIXME: must manage tuples out of arrays
+                    i += 1
+                    continue  # we have a simple type for the array
                 opening_car = in_sign[i]
-                assert(opening_car in ['{','('])
+                assert(opening_car in ['{', '('])
                 closing_car = '}' if opening_car == '{' else ')'
                 opening_count = 1
-                while (True): #we have a dict or a list of tuples
-                    i+=1
-                    if i>=len(in_sign):
+                while (True):  # we have a dict or a list of tuples
+                    i += 1
+                    if i >= len(in_sign):
                         raise ParseError("missing }")
                     if in_sign[i] == opening_car:
-                        opening_count+=1
+                        opening_count += 1
                     if in_sign[i] == closing_car:
-                        opening_count-=1
+                        opening_count -= 1
                         if opening_count == 0:
                             break
-            i+=1
+            i += 1
         return attr
 
     def addMethod(self, name, int_suffix, in_sign, out_sign, method, async=False):
@@ -460,30 +463,29 @@
             del(_arguments[0])
 
         #first arguments are for the _callback method
-        arguments_callback = ', '.join([repr(name)] + ((_arguments + ['callback=callback','errback=errback']) if async else _arguments))
+        arguments_callback = ', '.join([repr(name)] + ((_arguments + ['callback=callback', 'errback=errback']) if async else _arguments))
 
         if async:
-            _arguments.extend(['callback','errback'])
+            _arguments.extend(['callback', 'errback'])
             _defaults.extend([None, None])
 
-
         #now we create a second list with default values
-        for i in range(1, len(_defaults)+1):
+        for i in range(1, len(_defaults) + 1):
             _arguments[-i] = "%s = %s" % (_arguments[-i], repr(_defaults[-i]))
 
-        arguments_defaults =  ', '.join(_arguments)
+        arguments_defaults = ', '.join(_arguments)
 
-        code = compile ('def %(name)s (self,%(arguments_defaults)s): return self._callback(%(arguments_callback)s)' %
-                        {'name':name, 'arguments_defaults':arguments_defaults, 'arguments_callback':arguments_callback}, '<DBus bridge>','exec')
-        exec (code) #FIXME: to the same thing in a cleaner way, without compile/exec
+        code = compile('def %(name)s (self,%(arguments_defaults)s): return self._callback(%(arguments_callback)s)' %
+                       {'name': name, 'arguments_defaults': arguments_defaults, 'arguments_callback': arguments_callback}, '<DBus bridge>', 'exec')
+        exec (code)  # FIXME: to the same thing in a cleaner way, without compile/exec
         method = locals()[name]
         async_callbacks = ('callback', 'errback') if async else None
         setattr(DbusObject, name, dbus.service.method(
-            const_INT_PREFIX+int_suffix, in_signature=in_sign, out_signature=out_sign,
+            const_INT_PREFIX + int_suffix, in_signature=in_sign, out_signature=out_sign,
             async_callbacks=async_callbacks)(method))
         function = getattr(self, name)
         func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
-        func_table[function.__name__] = function #Needed for introspection
+        func_table[function.__name__] = function  # Needed for introspection
 
     def addSignal(self, name, int_suffix, signature, doc={}):
         """Dynamically add a signal to Dbus Bridge"""
@@ -491,20 +493,21 @@
         #TODO: use doc parameter to name attributes
 
         #code = compile ('def '+name+' (self,'+attributes+'): debug ("'+name+' signal")', '<DBus bridge>','exec') #XXX: the debug is too annoying with xmllog
-        code = compile ('def '+name+' (self,'+attributes+'): pass', '<DBus bridge>','exec')
+        code = compile('def ' + name + ' (self,' + attributes + '): pass', '<DBus bridge>', 'exec')
         exec (code)
         signal = locals()[name]
         setattr(DbusObject, name, dbus.service.signal(
-            const_INT_PREFIX+int_suffix, signature=signature)(signal))
+            const_INT_PREFIX + int_suffix, signature=signature)(signal))
         function = getattr(self, name)
         func_table = self._dbus_class_table[self.__class__.__module__ + '.' + self.__class__.__name__][function._dbus_interface]
-        func_table[function.__name__] = function #Needed for introspection
+        func_table[function.__name__] = function  # Needed for introspection
+
 
 class DBusBridge(Bridge):
     def __init__(self):
         dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
         Bridge.__init__(self)
-        info ("Init DBus...")
+        info("Init DBus...")
         self.session_bus = dbus.SessionBus()
         self.dbus_name = dbus.service.BusName(const_INT_PREFIX, self.session_bus)
         self.dbus_bridge = DbusObject(self.session_bus, const_OBJ_PATH)
@@ -551,7 +554,6 @@
     def subscribe(self, sub_type, entity_jid, profile):
         self.dbus_bridge.subscribe(sub_type, entity_jid, profile)
 
-
     def register(self, name, callback):
         debug("registering DBus bridge method [%s]", name)
         self.dbus_bridge.register(name, callback)
@@ -565,4 +567,4 @@
 
     def addSignal(self, name, int_suffix, signature, doc={}):
         self.dbus_bridge.addSignal(name, int_suffix, signature, doc)
-        setattr(DBusBridge, name, getattr(self.dbus_bridge, name))
+        setattr(DBusBridge, name, getattr(self.dbus_bridge, name))
\ No newline at end of file