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