Mercurial > libervia-backend
comparison sat/bridge/bridge_constructor/constructors/pb/pb_core_template.py @ 4037:524856bd7b19
massive refactoring to switch from camelCase to snake_case:
historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a
pre-PEP8 code, to use the same coding style as in Twisted.
However, snake_case is more readable and it's better to follow PEP8 best practices, so it
has been decided to move on full snake_case. Because Libervia has a huge codebase, this
ended with a ugly mix of camelCase and snake_case.
To fix that, this patch does a big refactoring by renaming every function and method
(including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case.
This is a massive change, and may result in some bugs.
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 08 Apr 2023 13:54:42 +0200 |
parents | 3c7a64d6f49f |
children |
comparison
equal
deleted
inserted
replaced
4036:c4464d7ae97b | 4037:524856bd7b19 |
---|---|
53 | 53 |
54 class PBRoot(pb.Root): | 54 class PBRoot(pb.Root): |
55 def __init__(self): | 55 def __init__(self): |
56 self.signals_handlers = [] | 56 self.signals_handlers = [] |
57 | 57 |
58 def remote_initBridge(self, signals_handler): | 58 def remote_init_bridge(self, signals_handler): |
59 self.signals_handlers.append(HandlerWrapper(signals_handler)) | 59 self.signals_handlers.append(HandlerWrapper(signals_handler)) |
60 log.info("registered signal handler") | 60 log.info("registered signal handler") |
61 | 61 |
62 def sendSignalEb(self, failure_, signal_name): | 62 def send_signal_eb(self, failure_, signal_name): |
63 if not failure_.check(pb.PBConnectionLost): | 63 if not failure_.check(pb.PBConnectionLost): |
64 log.error( | 64 log.error( |
65 f"Error while sending signal {signal_name}: {failure_}", | 65 f"Error while sending signal {signal_name}: {failure_}", |
66 ) | 66 ) |
67 | 67 |
68 def sendSignal(self, name, args, kwargs): | 68 def send_signal(self, name, args, kwargs): |
69 to_remove = [] | 69 to_remove = [] |
70 for wrapper in self.signals_handlers: | 70 for wrapper in self.signals_handlers: |
71 handler = wrapper.handler | 71 handler = wrapper.handler |
72 try: | 72 try: |
73 d = handler.callRemote(name, *args, **kwargs) | 73 d = handler.callRemote(name, *args, **kwargs) |
74 except pb.DeadReferenceError: | 74 except pb.DeadReferenceError: |
75 to_remove.append(wrapper) | 75 to_remove.append(wrapper) |
76 else: | 76 else: |
77 d.addErrback(self.sendSignalEb, name) | 77 d.addErrback(self.send_signal_eb, name) |
78 if to_remove: | 78 if to_remove: |
79 for wrapper in to_remove: | 79 for wrapper in to_remove: |
80 log.debug("Removing signal handler for dead frontend") | 80 log.debug("Removing signal handler for dead frontend") |
81 self.signals_handlers.remove(wrapper) | 81 self.signals_handlers.remove(wrapper) |
82 | 82 |
83 def _bridgeDeactivateSignals(self): | 83 def _bridge_deactivate_signals(self): |
84 if hasattr(self, "signals_paused"): | 84 if hasattr(self, "signals_paused"): |
85 log.warning("bridge signals already deactivated") | 85 log.warning("bridge signals already deactivated") |
86 if self.signals_handler: | 86 if self.signals_handler: |
87 self.signals_paused.extend(self.signals_handler) | 87 self.signals_paused.extend(self.signals_handler) |
88 else: | 88 else: |
89 self.signals_paused = self.signals_handlers | 89 self.signals_paused = self.signals_handlers |
90 self.signals_handlers = [] | 90 self.signals_handlers = [] |
91 log.debug("bridge signals have been deactivated") | 91 log.debug("bridge signals have been deactivated") |
92 | 92 |
93 def _bridgeReactivateSignals(self): | 93 def _bridge_reactivate_signals(self): |
94 try: | 94 try: |
95 self.signals_handlers = self.signals_paused | 95 self.signals_handlers = self.signals_paused |
96 except AttributeError: | 96 except AttributeError: |
97 log.debug("signals were already activated") | 97 log.debug("signals were already activated") |
98 else: | 98 else: |
100 log.debug("bridge signals have been reactivated") | 100 log.debug("bridge signals have been reactivated") |
101 | 101 |
102 ##METHODS_PART## | 102 ##METHODS_PART## |
103 | 103 |
104 | 104 |
105 class Bridge(object): | 105 class bridge(object): |
106 def __init__(self): | 106 def __init__(self): |
107 log.info("Init Perspective Broker...") | 107 log.info("Init Perspective Broker...") |
108 self.root = PBRoot() | 108 self.root = PBRoot() |
109 conf = config.parseMainConf() | 109 conf = config.parse_main_conf() |
110 getConf = partial(config.getConf, conf, "bridge_pb", "") | 110 get_conf = partial(config.get_conf, conf, "bridge_pb", "") |
111 conn_type = getConf("connection_type", "unix_socket") | 111 conn_type = get_conf("connection_type", "unix_socket") |
112 if conn_type == "unix_socket": | 112 if conn_type == "unix_socket": |
113 local_dir = Path(config.getConfig(conf, "", "local_dir")).resolve() | 113 local_dir = Path(config.config_get(conf, "", "local_dir")).resolve() |
114 socket_path = local_dir / "bridge_pb" | 114 socket_path = local_dir / "bridge_pb" |
115 log.info(f"using UNIX Socket at {socket_path}") | 115 log.info(f"using UNIX Socket at {socket_path}") |
116 reactor.listenUNIX( | 116 reactor.listenUNIX( |
117 str(socket_path), pb.PBServerFactory(self.root), mode=0o600 | 117 str(socket_path), pb.PBServerFactory(self.root), mode=0o600 |
118 ) | 118 ) |
119 elif conn_type == "socket": | 119 elif conn_type == "socket": |
120 port = int(getConf("port", 8789)) | 120 port = int(get_conf("port", 8789)) |
121 log.info(f"using TCP Socket at port {port}") | 121 log.info(f"using TCP Socket at port {port}") |
122 reactor.listenTCP(port, pb.PBServerFactory(self.root)) | 122 reactor.listenTCP(port, pb.PBServerFactory(self.root)) |
123 else: | 123 else: |
124 raise ValueError(f"Unknown pb connection type: {conn_type!r}") | 124 raise ValueError(f"Unknown pb connection type: {conn_type!r}") |
125 | 125 |
126 def sendSignal(self, name, *args, **kwargs): | 126 def send_signal(self, name, *args, **kwargs): |
127 self.root.sendSignal(name, args, kwargs) | 127 self.root.send_signal(name, args, kwargs) |
128 | 128 |
129 def remote_initBridge(self, signals_handler): | 129 def remote_init_bridge(self, signals_handler): |
130 self.signals_handlers.append(signals_handler) | 130 self.signals_handlers.append(signals_handler) |
131 log.info("registered signal handler") | 131 log.info("registered signal handler") |
132 | 132 |
133 def register_method(self, name, callback): | 133 def register_method(self, name, callback): |
134 log.debug("registering PB bridge method [%s]" % name) | 134 log.debug("registering PB bridge method [%s]" % name) |
135 setattr(self.root, "remote_" + name, callback) | 135 setattr(self.root, "remote_" + name, callback) |
136 # self.root.register_method(name, callback) | 136 # self.root.register_method(name, callback) |
137 | 137 |
138 def addMethod( | 138 def add_method( |
139 self, name, int_suffix, in_sign, out_sign, method, async_=False, doc={} | 139 self, name, int_suffix, in_sign, out_sign, method, async_=False, doc={} |
140 ): | 140 ): |
141 """Dynamically add a method to PB Bridge""" | 141 """Dynamically add a method to PB bridge""" |
142 # FIXME: doc parameter is kept only temporary, the time to remove it from calls | 142 # FIXME: doc parameter is kept only temporary, the time to remove it from calls |
143 log.debug("Adding method {name} to PB bridge".format(name=name)) | 143 log.debug("Adding method {name} to PB bridge".format(name=name)) |
144 self.register_method(name, method) | 144 self.register_method(name, method) |
145 | 145 |
146 def addSignal(self, name, int_suffix, signature, doc={}): | 146 def add_signal(self, name, int_suffix, signature, doc={}): |
147 log.debug("Adding signal {name} to PB bridge".format(name=name)) | 147 log.debug("Adding signal {name} to PB bridge".format(name=name)) |
148 setattr( | 148 setattr( |
149 self, name, lambda *args, **kwargs: self.sendSignal(name, *args, **kwargs) | 149 self, name, lambda *args, **kwargs: self.send_signal(name, *args, **kwargs) |
150 ) | 150 ) |
151 | 151 |
152 def bridgeDeactivateSignals(self): | 152 def bridge_deactivate_signals(self): |
153 """Stop sending signals to bridge | 153 """Stop sending signals to bridge |
154 | 154 |
155 Mainly used for mobile frontends, when the frontend is paused | 155 Mainly used for mobile frontends, when the frontend is paused |
156 """ | 156 """ |
157 self.root._bridgeDeactivateSignals() | 157 self.root._bridge_deactivate_signals() |
158 | 158 |
159 def bridgeReactivateSignals(self): | 159 def bridge_reactivate_signals(self): |
160 """Send again signals to bridge | 160 """Send again signals to bridge |
161 | 161 |
162 Should only be used after bridgeDeactivateSignals has been called | 162 Should only be used after bridge_deactivate_signals has been called |
163 """ | 163 """ |
164 self.root._bridgeReactivateSignals() | 164 self.root._bridge_reactivate_signals() |
165 | 165 |
166 ##SIGNALS_PART## | 166 ##SIGNALS_PART## |