Skip to content

Commit db0a22b

Browse files
authored
Merge pull request #1464 from hardbyte/felixdivo-patch-1
Tiny type narrowing
2 parents 551e1c3 + 1f6f03b commit db0a22b

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

can/interfaces/__init__.py

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,37 @@
33
"""
44

55
import sys
6-
from typing import Dict, Iterable, Tuple
6+
from typing import cast, Dict, Iterable, Tuple
77

88
# interface_name => (module, classname)
9-
BACKENDS: Dict[str, Tuple[str, ...]] = {
10-
"kvaser": ("can.interfaces.kvaser", "KvaserBus"),
11-
"socketcan": ("can.interfaces.socketcan", "SocketcanBus"),
12-
"serial": ("can.interfaces.serial.serial_can", "SerialBus"),
13-
"pcan": ("can.interfaces.pcan", "PcanBus"),
14-
"usb2can": ("can.interfaces.usb2can", "Usb2canBus"),
15-
"ixxat": ("can.interfaces.ixxat", "IXXATBus"),
16-
"nican": ("can.interfaces.nican", "NicanBus"),
17-
"iscan": ("can.interfaces.iscan", "IscanBus"),
18-
"virtual": ("can.interfaces.virtual", "VirtualBus"),
19-
"udp_multicast": ("can.interfaces.udp_multicast", "UdpMulticastBus"),
20-
"neovi": ("can.interfaces.ics_neovi", "NeoViBus"),
21-
"vector": ("can.interfaces.vector", "VectorBus"),
22-
"slcan": ("can.interfaces.slcan", "slcanBus"),
23-
"robotell": ("can.interfaces.robotell", "robotellBus"),
24-
"canalystii": ("can.interfaces.canalystii", "CANalystIIBus"),
25-
"systec": ("can.interfaces.systec", "UcanBus"),
26-
"seeedstudio": ("can.interfaces.seeedstudio", "SeeedBus"),
27-
"cantact": ("can.interfaces.cantact", "CantactBus"),
28-
"gs_usb": ("can.interfaces.gs_usb", "GsUsbBus"),
29-
"nixnet": ("can.interfaces.nixnet", "NiXNETcanBus"),
30-
"neousys": ("can.interfaces.neousys", "NeousysBus"),
31-
"etas": ("can.interfaces.etas", "EtasBus"),
32-
"socketcand": ("can.interfaces.socketcand", "SocketCanDaemonBus"),
33-
}
9+
BACKENDS: Dict[str, Tuple[str, str]] = cast(
10+
Dict[str, Tuple[str, str]],
11+
{
12+
"kvaser": ("can.interfaces.kvaser", "KvaserBus"),
13+
"socketcan": ("can.interfaces.socketcan", "SocketcanBus"),
14+
"serial": ("can.interfaces.serial.serial_can", "SerialBus"),
15+
"pcan": ("can.interfaces.pcan", "PcanBus"),
16+
"usb2can": ("can.interfaces.usb2can", "Usb2canBus"),
17+
"ixxat": ("can.interfaces.ixxat", "IXXATBus"),
18+
"nican": ("can.interfaces.nican", "NicanBus"),
19+
"iscan": ("can.interfaces.iscan", "IscanBus"),
20+
"virtual": ("can.interfaces.virtual", "VirtualBus"),
21+
"udp_multicast": ("can.interfaces.udp_multicast", "UdpMulticastBus"),
22+
"neovi": ("can.interfaces.ics_neovi", "NeoViBus"),
23+
"vector": ("can.interfaces.vector", "VectorBus"),
24+
"slcan": ("can.interfaces.slcan", "slcanBus"),
25+
"robotell": ("can.interfaces.robotell", "robotellBus"),
26+
"canalystii": ("can.interfaces.canalystii", "CANalystIIBus"),
27+
"systec": ("can.interfaces.systec", "UcanBus"),
28+
"seeedstudio": ("can.interfaces.seeedstudio", "SeeedBus"),
29+
"cantact": ("can.interfaces.cantact", "CantactBus"),
30+
"gs_usb": ("can.interfaces.gs_usb", "GsUsbBus"),
31+
"nixnet": ("can.interfaces.nixnet", "NiXNETcanBus"),
32+
"neousys": ("can.interfaces.neousys", "NeousysBus"),
33+
"etas": ("can.interfaces.etas", "EtasBus"),
34+
"socketcand": ("can.interfaces.socketcand", "SocketCanDaemonBus"),
35+
},
36+
)
3437

3538
if sys.version_info >= (3, 8):
3639
from importlib.metadata import entry_points, EntryPoint
@@ -42,7 +45,7 @@
4245
else entry_points().get("can.interface", [])
4346
)
4447
BACKENDS.update(
45-
{interface.name: tuple(interface.value.split(":")) for interface in entries}
48+
{interface.name: (interface.module, interface.attr) for interface in entries}
4649
)
4750
else:
4851
from pkg_resources import iter_entry_points

0 commit comments

Comments
 (0)