comparison sat/bridge/bridge_constructor/constructors/embedded/embedded_template.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 378188abe941
comparison
equal deleted inserted replaced
2623:49533de4540b 2624:56f94936df1e
1 #!/usr/bin/env python2 1 #!/usr/bin/env python2
2 #-*- coding: utf-8 -*- 2 # -*- coding: utf-8 -*-
3 3
4 # SàT: a XMPP client 4 # SàT: a XMPP client
5 # Copyright (C) 2009-2018 Jérôme Poisson (goffi@goffi.org) 5 # Copyright (C) 2009-2018 Jérôme Poisson (goffi@goffi.org)
6 6
7 # This program is free software: you can redistribute it and/or modify 7 # This program is free software: you can redistribute it and/or modify
16 16
17 # You should have received a copy of the GNU Affero General Public License 17 # You should have received a copy of the GNU Affero General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. 18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20 from sat.core.log import getLogger 20 from sat.core.log import getLogger
21
21 log = getLogger(__name__) 22 log = getLogger(__name__)
22 from sat.core import exceptions 23 from sat.core import exceptions
23 24
24 25
25 class _Bridge(object): 26 class _Bridge(object):
26 def __init__(self): 27 def __init__(self):
27 log.debug(u"Init embedded bridge...") 28 log.debug(u"Init embedded bridge...")
28 self._methods_cbs = {} 29 self._methods_cbs = {}
29 self._signals_cbs = { 30 self._signals_cbs = {"core": {}, "plugin": {}}
30 "core": {},
31 "plugin": {}
32 }
33 31
34 def bridgeConnect(self, callback, errback): 32 def bridgeConnect(self, callback, errback):
35 callback() 33 callback()
36 34
37 def register_method(self, name, callback): 35 def register_method(self, name, callback):
41 self._methods_cbs[name] = callback 39 self._methods_cbs[name] = callback
42 40
43 def register_signal(self, functionName, handler, iface="core"): 41 def register_signal(self, functionName, handler, iface="core"):
44 iface_dict = self._signals_cbs[iface] 42 iface_dict = self._signals_cbs[iface]
45 if functionName in iface_dict: 43 if functionName in iface_dict:
46 raise exceptions.ConflictError(u"signal {name} is already regitered for interface {iface}".format(name=functionName, iface=iface)) 44 raise exceptions.ConflictError(
45 u"signal {name} is already regitered for interface {iface}".format(
46 name=functionName, iface=iface
47 )
48 )
47 iface_dict[functionName] = handler 49 iface_dict[functionName] = handler
48 50
49 def call_method(self, name, out_sign, async_, args, kwargs): 51 def call_method(self, name, out_sign, async_, args, kwargs):
50 callback = kwargs.pop("callback", None) 52 callback = kwargs.pop("callback", None)
51 errback = kwargs.pop("errback", None) 53 errback = kwargs.pop("errback", None)
82 log.debug(u"ignoring signal {}: no callback registered".format(name)) 84 log.debug(u"ignoring signal {}: no callback registered".format(name))
83 else: 85 else:
84 cb(*args, **kwargs) 86 cb(*args, **kwargs)
85 87
86 def addMethod(self, name, int_suffix, in_sign, out_sign, method, async=False, doc={}): 88 def addMethod(self, name, int_suffix, in_sign, out_sign, method, async=False, doc={}):
87 #FIXME: doc parameter is kept only temporary, the time to remove it from calls 89 # FIXME: doc parameter is kept only temporary, the time to remove it from calls
88 log.debug("Adding method [{}] to embedded bridge".format(name)) 90 log.debug("Adding method [{}] to embedded bridge".format(name))
89 self.register_method(name, method) 91 self.register_method(name, method)
90 setattr(self.__class__, name, lambda self_, *args, **kwargs: self.call_method(name, out_sign, async, args, kwargs)) 92 setattr(
93 self.__class__,
94 name,
95 lambda self_, *args, **kwargs: self.call_method(
96 name, out_sign, async, args, kwargs
97 ),
98 )
91 99
92 def addSignal(self, name, int_suffix, signature, doc={}): 100 def addSignal(self, name, int_suffix, signature, doc={}):
93 setattr(self.__class__, name, lambda self_, *args, **kwargs: self.send_signal(name, args, kwargs)) 101 setattr(
102 self.__class__,
103 name,
104 lambda self_, *args, **kwargs: self.send_signal(name, args, kwargs),
105 )
94 106
95 ## signals ## 107 ## signals ##
96 108
109
97 ##SIGNALS_PART## 110 ##SIGNALS_PART##
98 ## methods ## 111 ## methods ##
99 112
100 ##METHODS_PART## 113 ##METHODS_PART##
101 114
102 # we want the same instance for both core and frontend 115 # we want the same instance for both core and frontend
103 bridge = None 116 bridge = None
117
118
104 def Bridge(): 119 def Bridge():
105 global bridge 120 global bridge
106 if bridge is None: 121 if bridge is None:
107 bridge = _Bridge() 122 bridge = _Bridge()
108 return bridge 123 return bridge