Mercurial > libervia-backend
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 |