Skip to content

Commit c584b14

Browse files
committed
unsafe fixes and some manual ones
1 parent daef11f commit c584b14

File tree

30 files changed

+315
-296
lines changed

30 files changed

+315
-296
lines changed

lewis/adapters/epics.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class BoundPV:
7676
:param meta_target: Object that has an attribute named pv.meta_data_property.
7777
"""
7878

79-
def __init__(self, pv, target, meta_target=None):
79+
def __init__(self, pv, target, meta_target=None) -> None:
8080
self._meta_target = meta_target
8181
self._target = target
8282
self._pv = pv
@@ -87,7 +87,7 @@ def value(self):
8787
return getattr(self._target, self._pv.property)
8888

8989
@value.setter
90-
def value(self, new_value):
90+
def value(self, new_value) -> None:
9191
if self.read_only:
9292
raise AccessViolationException(
9393
"The property {} is read only.".format(self._pv.property)
@@ -217,7 +217,7 @@ def __init__(
217217
meta_data_property=None,
218218
doc=None,
219219
**kwargs,
220-
):
220+
) -> None:
221221
self.property = "value"
222222
self.read_only = read_only
223223
self.poll_interval = poll_interval
@@ -372,7 +372,7 @@ def _create_setter(self, func, *targets):
372372
"methods does not count towards that number.".format(func.__name__)
373373
)
374374

375-
def setter(obj, value):
375+
def setter(obj, value) -> None:
376376
func(value)
377377

378378
return setter
@@ -415,7 +415,7 @@ def _function_has_n_args(self, func, n):
415415

416416
@has_log
417417
class PropertyExposingDriver(Driver):
418-
def __init__(self, interface, device_lock):
418+
def __init__(self, interface, device_lock) -> None:
419419
super(PropertyExposingDriver, self).__init__()
420420

421421
self._interface = interface
@@ -425,7 +425,7 @@ def __init__(self, interface, device_lock):
425425
self._timers = {k: 0.0 for k in self._interface.bound_pvs.keys()}
426426
self._last_update_call = None
427427

428-
def write(self, pv, value):
428+
def write(self, pv, value) -> bool:
429429
self.log.debug("PV put request: %s=%s", pv, value)
430430

431431
pv_object = self._interface.bound_pvs.get(pv)
@@ -476,7 +476,7 @@ def _get_param_info(self, pv, meta_keys):
476476

477477
return info_dict
478478

479-
def process_pv_updates(self, force=False):
479+
def process_pv_updates(self, force=False) -> None:
480480
"""
481481
Update PV values that have changed for PVs that are due to update according to their
482482
respective poll interval timers.
@@ -511,7 +511,7 @@ def process_pv_updates(self, force=False):
511511

512512
self._last_update_call = datetime.now()
513513

514-
def _process_value_updates(self, updates):
514+
def _process_value_updates(self, updates) -> None:
515515
if updates:
516516
update_log = []
517517
for pv, value in updates:
@@ -523,7 +523,7 @@ def _process_value_updates(self, updates):
523523
# Calling this manually is only required for values, not for meta
524524
self.updatePVs()
525525

526-
def _process_meta_updates(self, updates):
526+
def _process_meta_updates(self, updates) -> None:
527527
if updates:
528528
update_log = []
529529
for pv, info in updates:
@@ -549,7 +549,7 @@ class EpicsAdapter(Adapter):
549549

550550
default_options = {"prefix": ""}
551551

552-
def __init__(self, options=None):
552+
def __init__(self, options=None) -> None:
553553
super(EpicsAdapter, self).__init__(options)
554554

555555
self._server = None
@@ -573,7 +573,7 @@ def documentation(self):
573573

574574
return "\n\n".join([inspect.getdoc(self.interface) or "", "PVs\n==="] + pvs)
575575

576-
def start_server(self):
576+
def start_server(self) -> None:
577577
"""
578578
Creates a pcaspy-server.
579579
@@ -597,15 +597,15 @@ def start_server(self):
597597
", ".join((self._options.prefix + pv for pv in self.interface.bound_pvs.keys())),
598598
)
599599

600-
def stop_server(self):
600+
def stop_server(self) -> None:
601601
self._driver = None
602602
self._server = None
603603

604604
@property
605605
def is_running(self):
606606
return self._server is not None
607607

608-
def handle(self, cycle_delay=0.1):
608+
def handle(self, cycle_delay=0.1) -> None:
609609
"""
610610
Call this method to spend about ``cycle_delay`` seconds processing
611611
requests in the pcaspy server. Under load, for example when running ``caget`` at a
@@ -677,15 +677,15 @@ def stop(self, value):
677677
protocol = "epics"
678678
pvs = None
679679

680-
def __init__(self):
680+
def __init__(self) -> None:
681681
super(EpicsInterface, self).__init__()
682682
self.bound_pvs = None
683683

684684
@property
685685
def adapter(self):
686686
return EpicsAdapter
687687

688-
def _bind_device(self):
688+
def _bind_device(self) -> None:
689689
"""
690690
This method transforms the ``self.pvs`` dict of :class:`PV` objects ``self.bound_pvs``,
691691
a dict of :class:`BoundPV` objects, the keys are always the PV-names that are exposed

lewis/adapters/modbus.py

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class ModbusDataBank:
5454
:param kwargs: Configuration
5555
"""
5656

57-
def __init__(self, **kwargs):
57+
def __init__(self, **kwargs) -> None:
5858
self._data = kwargs["data"]
5959
self._start_addr = kwargs["start_addr"]
6060

@@ -74,7 +74,7 @@ def get(self, addr, count):
7474
raise IndexError("Invalid address range [{:#06x} - {:#06x}]".format(addr, addr + count))
7575
return data
7676

77-
def set(self, addr, values):
77+
def set(self, addr, values) -> None:
7878
"""
7979
Write list ``values`` to ``addr`` memory location in DataBank.
8080
@@ -109,7 +109,7 @@ class ModbusBasicDataBank(ModbusDataBank):
109109
:param last_addr: Last valid address
110110
"""
111111

112-
def __init__(self, default_value=0, start_addr=0x0000, last_addr=0xFFFF):
112+
def __init__(self, default_value=0, start_addr=0x0000, last_addr=0xFFFF) -> None:
113113
super(ModbusBasicDataBank, self).__init__(
114114
start_addr=start_addr, data=[default_value] * (last_addr - start_addr + 1)
115115
)
@@ -118,7 +118,7 @@ def __init__(self, default_value=0, start_addr=0x0000, last_addr=0xFFFF):
118118
class ModbusDataStore:
119119
"""Convenience struct to hold the four types of DataBanks in Modbus"""
120120

121-
def __init__(self, di=None, co=None, ir=None, hr=None):
121+
def __init__(self, di=None, co=None, ir=None, hr=None) -> None:
122122
self.di = di
123123
self.co = co
124124
self.ir = ir
@@ -154,7 +154,7 @@ class ModbusTCPFrame:
154154
:except EOFError: Not enough data for complete frame; no data consumed.
155155
"""
156156

157-
def __init__(self, stream=None):
157+
def __init__(self, stream=None) -> None:
158158
self.transaction_id = 0
159159
self.protocol_id = 0
160160
self.length = 2
@@ -165,7 +165,7 @@ def __init__(self, stream=None):
165165
if stream is not None:
166166
self.from_bytearray(stream)
167167

168-
def from_bytearray(self, stream):
168+
def from_bytearray(self, stream) -> None:
169169
"""
170170
Constructs this frame from input data stream, consuming as many bytes as necessary from
171171
the beginning of the stream.
@@ -273,7 +273,7 @@ class ModbusProtocol:
273273
:param datastore: ModbusDataStore instance to reference when processing requests
274274
"""
275275

276-
def __init__(self, sender, datastore):
276+
def __init__(self, sender, datastore) -> None:
277277
self._buffer = bytearray()
278278
self._datastore = datastore
279279
self._send = lambda req: sender(req.to_bytearray())
@@ -290,7 +290,7 @@ def __init__(self, sender, datastore):
290290
0x10: self._handle_write_multiple_registers,
291291
}
292292

293-
def process(self, data, device_lock):
293+
def process(self, data, device_lock) -> None:
294294
"""
295295
Process as much of given data as possible.
296296
@@ -530,7 +530,7 @@ def _handle_write_multiple_registers(self, request):
530530

531531
@has_log
532532
class ModbusHandler(asyncore.dispatcher_with_send):
533-
def __init__(self, sock, interface, server):
533+
def __init__(self, sock, interface, server) -> None:
534534
asyncore.dispatcher_with_send.__init__(self, sock=sock)
535535
self._datastore = ModbusDataStore(interface.di, interface.co, interface.ir, interface.hr)
536536
self._modbus = ModbusProtocol(self.send, self._datastore)
@@ -539,19 +539,19 @@ def __init__(self, sock, interface, server):
539539
self._set_logging_context(interface)
540540
self.log.info("Client connected from %s:%s", *sock.getpeername())
541541

542-
def handle_read(self):
542+
def handle_read(self) -> None:
543543
data = self.recv(8192)
544544
self._modbus.process(data, self._server.device_lock)
545545

546-
def handle_close(self):
546+
def handle_close(self) -> None:
547547
self.log.info("Closing connection to client %s:%s", *self.socket.getpeername())
548548
self._server.remove_handler(self)
549549
self.close()
550550

551551

552552
@has_log
553553
class ModbusServer(asyncore.dispatcher):
554-
def __init__(self, host, port, interface, device_lock):
554+
def __init__(self, host, port, interface, device_lock) -> None:
555555
asyncore.dispatcher.__init__(self)
556556
self.device_lock = device_lock
557557
self.interface = interface
@@ -565,17 +565,17 @@ def __init__(self, host, port, interface, device_lock):
565565

566566
self._accepted_connections = []
567567

568-
def handle_accept(self):
568+
def handle_accept(self) -> None:
569569
pair = self.accept()
570570
if pair is not None:
571571
sock, _ = pair
572572
handler = ModbusHandler(sock, self.interface, self)
573573
self._accepted_connections.append(handler)
574574

575-
def remove_handler(self, handler):
575+
def remove_handler(self, handler) -> None:
576576
self._accepted_connections.remove(handler)
577577

578-
def handle_close(self):
578+
def handle_close(self) -> None:
579579
self.log.info("Shutting down server, closing all remaining client connections.")
580580

581581
for handler in self._accepted_connections:
@@ -587,19 +587,19 @@ def handle_close(self):
587587
class ModbusAdapter(Adapter):
588588
default_options = {"bind_address": "0.0.0.0", "port": 502}
589589

590-
def __init__(self, options=None):
590+
def __init__(self, options=None) -> None:
591591
super(ModbusAdapter, self).__init__(options)
592592
self._server = None
593593

594-
def start_server(self):
594+
def start_server(self) -> None:
595595
self._server = ModbusServer(
596596
self._options.bind_address,
597597
self._options.port,
598598
self.interface,
599599
self.device_lock,
600600
)
601601

602-
def stop_server(self):
602+
def stop_server(self) -> None:
603603
if self._server is not None:
604604
self._server.close()
605605
self._server = None
@@ -608,7 +608,7 @@ def stop_server(self):
608608
def is_running(self):
609609
return self._server is not None
610610

611-
def handle(self, cycle_delay=0.1):
611+
def handle(self, cycle_delay=0.1) -> None:
612612
asyncore.loop(cycle_delay, count=1)
613613

614614

0 commit comments

Comments
 (0)