comparison sat/bridge/bridge_constructor/constructors/embedded/constructor.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.bridge.bridge_constructor import base_constructor 20 from sat.bridge.bridge_constructor import base_constructor
21 # from textwraps import dedent 21
22 #  from textwraps import dedent
22 23
23 24
24 class EmbeddedConstructor(base_constructor.Constructor): 25 class EmbeddedConstructor(base_constructor.Constructor):
25 NAME = "embedded" 26 NAME = "embedded"
26 CORE_TEMPLATE = "embedded_template.py" 27 CORE_TEMPLATE = "embedded_template.py"
27 CORE_DEST = "embedded.py" 28 CORE_DEST = "embedded.py"
28 CORE_FORMATS = { 29 CORE_FORMATS = {
29 'methods': """\ 30 "methods": """\
30 def {name}(self, {args}{args_comma}callback=None, errback=None): 31 def {name}(self, {args}{args_comma}callback=None, errback=None):
31 {ret_routine} 32 {ret_routine}
32 """, 33 """,
33 'signals': """\ 34 "signals": """\
34 def {name}(self, {args}): 35 def {name}(self, {args}):
35 try: 36 try:
36 cb = self._signals_cbs["{category}"]["{name}"] 37 cb = self._signals_cbs["{category}"]["{name}"]
37 except KeyError: 38 except KeyError:
38 log.warning(u"ignoring signal {name}: no callback registered") 39 log.warning(u"ignoring signal {name}: no callback registered")
39 else: 40 else:
40 cb({args_result}) 41 cb({args_result})
41 """ 42 """,
42 } 43 }
43 FRONTEND_TEMPLATE = "embedded_frontend_template.py" 44 FRONTEND_TEMPLATE = "embedded_frontend_template.py"
44 FRONTEND_DEST = CORE_DEST 45 FRONTEND_DEST = CORE_DEST
45 FRONTEND_FORMATS = {} 46 FRONTEND_FORMATS = {}
46 47
47 def core_completion_method(self, completion, function, default, arg_doc, async_): 48 def core_completion_method(self, completion, function, default, arg_doc, async_):
48 completion.update({ 49 completion.update(
49 'debug': "" if not self.args.debug else 'log.debug ("%s")\n%s' % (completion['name'], 8 * ' '), 50 {
50 'args_result': self.getArguments(function['sig_in'], name=arg_doc), 51 "debug": ""
51 'args_comma': ', ' if function['sig_in'] else '', 52 if not self.args.debug
52 }) 53 else 'log.debug ("%s")\n%s' % (completion["name"], 8 * " "),
54 "args_result": self.getArguments(function["sig_in"], name=arg_doc),
55 "args_comma": ", " if function["sig_in"] else "",
56 }
57 )
53 58
54 if async_: 59 if async_:
55 completion["cb_or_lambda"] = "callback" if function['sig_out'] else "lambda dummy: callback()" 60 completion["cb_or_lambda"] = (
56 completion["ret_routine"] = """\ 61 "callback" if function["sig_out"] else "lambda dummy: callback()"
62 )
63 completion[
64 "ret_routine"
65 ] = """\
57 d = self._methods_cbs["{name}"]({args_result}) 66 d = self._methods_cbs["{name}"]({args_result})
58 if callback is not None: 67 if callback is not None:
59 d.addCallback({cb_or_lambda}) 68 d.addCallback({cb_or_lambda})
60 if errback is None: 69 if errback is None:
61 d.addErrback(lambda failure_: log.error(failure_)) 70 d.addErrback(lambda failure_: log.error(failure_))
62 else: 71 else:
63 d.addErrback(errback) 72 d.addErrback(errback)
64 return d 73 return d
65 """.format(**completion) 74 """.format(
75 **completion
76 )
66 else: 77 else:
67 completion['ret_or_nothing'] = 'ret' if function['sig_out'] else '' 78 completion["ret_or_nothing"] = "ret" if function["sig_out"] else ""
68 completion["ret_routine"] = """\ 79 completion[
80 "ret_routine"
81 ] = """\
69 try: 82 try:
70 ret = self._methods_cbs["{name}"]({args_result}) 83 ret = self._methods_cbs["{name}"]({args_result})
71 except Exception as e: 84 except Exception as e:
72 if errback is not None: 85 if errback is not None:
73 errback(e) 86 errback(e)
75 raise e 88 raise e
76 else: 89 else:
77 if callback is None: 90 if callback is None:
78 return ret 91 return ret
79 else: 92 else:
80 callback({ret_or_nothing})""".format(**completion) 93 callback({ret_or_nothing})""".format(
94 **completion
95 )
81 96
82 def core_completion_signal(self, completion, function, default, arg_doc, async_): 97 def core_completion_signal(self, completion, function, default, arg_doc, async_):
83 completion.update({ 98 completion.update(
84 'args_result': self.getArguments(function['sig_in'], name=arg_doc), 99 {"args_result": self.getArguments(function["sig_in"], name=arg_doc)}
85 }) 100 )