|
3 | 3 | """
|
4 | 4 |
|
5 | 5 | import sys
|
6 |
| -from typing import Dict, Iterable, Tuple |
| 6 | +from typing import cast, Dict, Iterable, Tuple |
7 | 7 |
|
8 | 8 | # 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 | +) |
34 | 37 |
|
35 | 38 | if sys.version_info >= (3, 8):
|
36 | 39 | from importlib.metadata import entry_points, EntryPoint
|
|
42 | 45 | else entry_points().get("can.interface", [])
|
43 | 46 | )
|
44 | 47 | BACKENDS.update(
|
45 |
| - {interface.name: tuple(interface.value.split(":")) for interface in entries} |
| 48 | + {interface.name: (interface.module, interface.attr) for interface in entries} |
46 | 49 | )
|
47 | 50 | else:
|
48 | 51 | from pkg_resources import iter_entry_points
|
|
0 commit comments