1111
1212import sys
1313import importlib
14- from pkg_resources import iter_entry_points
1514import logging
1615
1716import can
1817from .bus import BusABC
1918from .broadcastmanager import CyclicSendTaskABC , MultiRateCyclicSendTaskABC
2019from .util import load_config
20+ from .interfaces import BACKENDS
2121
22+ # Required by "detect_available_configs" for argument interpretation
2223if sys .version_info .major > 2 :
2324 basestring = str
2425
25-
2626log = logging .getLogger ('can.interface' )
2727log_autodetect = log .getChild ('detect_available_configs' )
2828
29- # interface_name => (module, classname)
30- BACKENDS = {
31- 'kvaser' : ('can.interfaces.kvaser' , 'KvaserBus' ),
32- 'socketcan_ctypes' : ('can.interfaces.socketcan' , 'SocketcanCtypes_Bus' ),
33- 'socketcan_native' : ('can.interfaces.socketcan' , 'SocketcanNative_Bus' ),
34- 'serial' : ('can.interfaces.serial.serial_can' ,'SerialBus' ),
35- 'pcan' : ('can.interfaces.pcan' , 'PcanBus' ),
36- 'usb2can' : ('can.interfaces.usb2can' , 'Usb2canBus' ),
37- 'ixxat' : ('can.interfaces.ixxat' , 'IXXATBus' ),
38- 'nican' : ('can.interfaces.nican' , 'NicanBus' ),
39- 'iscan' : ('can.interfaces.iscan' , 'IscanBus' ),
40- 'virtual' : ('can.interfaces.virtual' , 'VirtualBus' ),
41- 'neovi' : ('can.interfaces.ics_neovi' , 'NeoViBus' ),
42- 'vector' : ('can.interfaces.vector' , 'VectorBus' ),
43- 'slcan' : ('can.interfaces.slcan' , 'slcanBus' )
44- }
45-
46- BACKENDS .update ({
47- interface .name : (interface .module_name , interface .attrs [0 ])
48- for interface in iter_entry_points ('python_can.interface' )
49- })
50-
51-
5229def _get_class_for_interface (interface ):
5330 """
5431 Returns the main bus class for the given interface.
@@ -189,8 +166,8 @@ def detect_available_configs(interfaces=None):
189166
190167class CyclicSendTask (CyclicSendTaskABC ):
191168
192- @classmethod
193- def __new__ (cls , other , channel , * args , ** kwargs ):
169+ @staticmethod
170+ def __new__ (cls , channel , * args , ** kwargs ):
194171
195172 config = load_config (config = {'channel' : channel })
196173
@@ -209,8 +186,8 @@ def __new__(cls, other, channel, *args, **kwargs):
209186
210187class MultiRateCyclicSendTask (MultiRateCyclicSendTaskABC ):
211188
212- @classmethod
213- def __new__ (cls , other , channel , * args , ** kwargs ):
189+ @staticmethod
190+ def __new__ (cls , channel , * args , ** kwargs ):
214191
215192 config = load_config (config = {'channel' : channel })
216193
0 commit comments