From 2efeb51e0e369e0475d993589724bad24ebf70f9 Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Tue, 21 Jun 2022 04:32:00 -0400 Subject: [PATCH 1/9] type stubs for common, parser_pyx --- can/common.pyi | 76 ++++++++++++++++++++++++++++++++++++++++++++++ can/parser_pyx.pyi | 46 ++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 can/common.pyi create mode 100644 can/parser_pyx.pyi diff --git a/can/common.pyi b/can/common.pyi new file mode 100644 index 0000000000..e6432cbf47 --- /dev/null +++ b/can/common.pyi @@ -0,0 +1,76 @@ +from dataclasses import dataclass + +from enum import Enum +from typing import Any, Dict, List, Tuple + +class SignalType(Enum): + DEFAULT = 0 + HONDA_CHECKSUM = 1 + HONDA_COUNTER = 2 + TOYOTA_CHECKSUM = 3 + PEDAL_CHECKSUM = 4 + PEDAL_COUNTER = 5 + VOLKSWAGEN_CHECKSUM = 6 + VOLKSWAGEN_COUNTER = 7 + SUBARU_CHECKSUM = 8 + CHRYSLER_CHECKSUM = 9 + HKG_CAN_FD_CHECKSUM = 10 + HKG_CAN_FD_COUNTER = 11 + +@dataclass +class Signal(): + name: str + start_bit: int + msb: int + lsb: int + size: int + is_signed: bool + factor: float + offset: float + is_little_endian: bool + type: SignalType + +@dataclass +class Msg(): + name: str + address: int + size: int + sigs: List[Signal] + +@dataclass +class Val(): + name: str + address: int + def_val: str + sigs: List[Signal] + +@dataclass +class DBC(): + name: str + msgs: List[Msg] + vals: List[Val] + +@dataclass +class SignalParseOptions(): + address: int + name: str + + +@dataclass +class MessageParseOptions(): + address: int + check_frequency: int + +@dataclass +class SignalValue(): + address: int + name: str + value: Any # TODO: c++ double... - maybe debug to get runtime type + all_values: List[Any] + +@dataclass +class SignalPackValue(): + name: str + value: Any # TODO: c++ double... - maybe debug to get runtime type + +def dbc_lookup(dbc_name: str) -> DBC: ... diff --git a/can/parser_pyx.pyi b/can/parser_pyx.pyi new file mode 100644 index 0000000000..6edd41cefb --- /dev/null +++ b/can/parser_pyx.pyi @@ -0,0 +1,46 @@ +import numbers + +from cereal import log +from dataclasses import dataclass +from typing import Any, DefaultDict, Dict, List, Set, Tuple + +from opendbc.can.common import * + + +class CANParser(): + def __init__(self, dbc_name: str, signals: List[Tuple[str|int, str]], + checks: List[Tuple[str, int]], bus: int = 0, enforce_checks: bool = True) -> None: + self.can_valid: bool + self.bus_timeout: bool + self.first_sec: int + self.last_sec: int + self.last_nonempty_sec: int + self.bus_timeout_threshold: int + self.dbc_name: str + self.dbc: DBC + self.vl: Dict[int|str, Dict[str, Any]] + """ Get Latest value for a signal. vl["messagename"|messageid]["signalName"] -> signal value""" + self.vl_all: Dict[int|str, Dict[str, List[Any]]] + self.can_invalid_cnt: int + ... + + def update_string(self, data: str, sendcan: bool) -> None: ... + + def UpdateValid(self, sec: int) -> None: ... + + def query_latest(self) -> List[SignalValue]: ... + + def update_vl(self) -> Set[int]: ... + + # #ifndef DYNAMIC_CAPNP + # void UpdateCans(uint64_t sec, const capnp::List::Reader& cans); + # #endif + # void UpdateCans(uint64_t sec, const capnp::DynamicStruct::Reader& cans); + +class CANDefine(): + """Helper class to convert raw int signal values to their mapped names""" + def __init__(self, dbc_name: str) -> None: + self.dbc_name: str + self.dbc: DBC + self.dv: Dict[str|int, Dict[str, Dict[int, str]]] + """Example: dv["Message"]["signal"][1] -> "LEFT" """ From 2e1473c761e07991814294afbf7c7855e98555b9 Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Tue, 21 Jun 2022 04:37:34 -0400 Subject: [PATCH 2/9] Cleanup imports --- can/common.pyi | 2 +- can/parser_pyx.pyi | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/can/common.pyi b/can/common.pyi index e6432cbf47..c1dac7d5c0 100644 --- a/can/common.pyi +++ b/can/common.pyi @@ -1,7 +1,7 @@ from dataclasses import dataclass from enum import Enum -from typing import Any, Dict, List, Tuple +from typing import Any, List class SignalType(Enum): DEFAULT = 0 diff --git a/can/parser_pyx.pyi b/can/parser_pyx.pyi index 6edd41cefb..ec77fc656c 100644 --- a/can/parser_pyx.pyi +++ b/can/parser_pyx.pyi @@ -1,10 +1,7 @@ -import numbers - -from cereal import log from dataclasses import dataclass -from typing import Any, DefaultDict, Dict, List, Set, Tuple +from typing import Any, Dict, List, Set, Tuple -from opendbc.can.common import * +from opendbc.can.common import DBC, SignalValue class CANParser(): @@ -44,3 +41,4 @@ class CANDefine(): self.dbc: DBC self.dv: Dict[str|int, Dict[str, Dict[int, str]]] """Example: dv["Message"]["signal"][1] -> "LEFT" """ + ... From 6382001b609718db4cdf2173ef839bb094d872d5 Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Thu, 23 Jun 2022 13:17:29 -0400 Subject: [PATCH 3/9] values are indeed floats --- can/common.pyi | 6 +++--- can/parser_pyx.pyi | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/can/common.pyi b/can/common.pyi index c1dac7d5c0..27cc465942 100644 --- a/can/common.pyi +++ b/can/common.pyi @@ -65,12 +65,12 @@ class MessageParseOptions(): class SignalValue(): address: int name: str - value: Any # TODO: c++ double... - maybe debug to get runtime type - all_values: List[Any] + value: float + all_values: List[float] @dataclass class SignalPackValue(): name: str - value: Any # TODO: c++ double... - maybe debug to get runtime type + value: float def dbc_lookup(dbc_name: str) -> DBC: ... diff --git a/can/parser_pyx.pyi b/can/parser_pyx.pyi index ec77fc656c..25d8f26bf0 100644 --- a/can/parser_pyx.pyi +++ b/can/parser_pyx.pyi @@ -15,9 +15,9 @@ class CANParser(): self.bus_timeout_threshold: int self.dbc_name: str self.dbc: DBC - self.vl: Dict[int|str, Dict[str, Any]] + self.vl: Dict[int|str, Dict[str, float]] """ Get Latest value for a signal. vl["messagename"|messageid]["signalName"] -> signal value""" - self.vl_all: Dict[int|str, Dict[str, List[Any]]] + self.vl_all: Dict[int|str, Dict[str, List[float]]] self.can_invalid_cnt: int ... From 436959496132c03ab9fb0fd6e4a4e1e538811598 Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Wed, 29 Jun 2022 00:21:30 -0400 Subject: [PATCH 4/9] common.pyi complete, added cpp stubs --- can/common.pyi | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/can/common.pyi b/can/common.pyi index 27cc465942..c95504ac5e 100644 --- a/can/common.pyi +++ b/can/common.pyi @@ -1,7 +1,7 @@ from dataclasses import dataclass from enum import Enum -from typing import Any, List +from typing import List class SignalType(Enum): DEFAULT = 0 @@ -55,7 +55,6 @@ class SignalParseOptions(): address: int name: str - @dataclass class MessageParseOptions(): address: int @@ -74,3 +73,21 @@ class SignalPackValue(): value: float def dbc_lookup(dbc_name: str) -> DBC: ... + + +class CANParser(): + """ Cython wrapper for c++ CANParser + """ + def __init__(self, abus: int, dbc_name: str, options: List[MessageParseOptions], sigoptions: List[SignalParseOptions]) -> None: + self.can_valid: bool + self.bus_timeout: bool + ... + + def update_string(self, data: str, sendcan: bool) -> None: ... + def query_latest(self) -> List[SignalValue]: ... + +class CANPacker(): + """ Cython wrapper for c++ CANPacker + """ + def __init__(self, dbc_name: str) -> None: ... + def pack(address: int, signals: List[SignalPackValue], counter: int) -> List[int]: ... \ No newline at end of file From 4ed072bd1f8bde99095537635f3cd261e1a8cf2b Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Wed, 29 Jun 2022 00:24:26 -0400 Subject: [PATCH 5/9] parser_pyx.pyi complete --- can/parser_pyx.pyi | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/can/parser_pyx.pyi b/can/parser_pyx.pyi index 25d8f26bf0..a3bd2d02fc 100644 --- a/can/parser_pyx.pyi +++ b/can/parser_pyx.pyi @@ -1,44 +1,41 @@ -from dataclasses import dataclass -from typing import Any, Dict, List, Set, Tuple - -from opendbc.can.common import DBC, SignalValue +from typing import Dict, List, Set, Tuple, Optional +from opendbc.can.common import CANParser as cpp_CANParser +from opendbc.can.common import SignalValue, DBC class CANParser(): def __init__(self, dbc_name: str, signals: List[Tuple[str|int, str]], - checks: List[Tuple[str, int]], bus: int = 0, enforce_checks: bool = True) -> None: - self.can_valid: bool - self.bus_timeout: bool - self.first_sec: int - self.last_sec: int - self.last_nonempty_sec: int - self.bus_timeout_threshold: int - self.dbc_name: str + checks: Optional[List[Tuple[str, int]]] = None, bus: Optional[int] = 0, enforce_checks: Optional[bool] = True) -> None: + self.can: cpp_CANParser self.dbc: DBC + self.msg_name_to_address: Dict[str,int] + self.address_to_msg_name: Dict[int,str] + self.can_values: List[SignalValue] + # readonly self.vl: Dict[int|str, Dict[str, float]] """ Get Latest value for a signal. vl["messagename"|messageid]["signalName"] -> signal value""" self.vl_all: Dict[int|str, Dict[str, List[float]]] + self.can_valid: bool + self.bus_timeout: bool + self.dbc_name: str self.can_invalid_cnt: int ... - def update_string(self, data: str, sendcan: bool) -> None: ... + def update_vl(self) -> Set[int]: ... + + def update_string(self, dat: str, sendcan: Optional[bool] = False) -> Set[int]: ... + + def update_strings(self, strings: List[str], sendcan: Optional[bool] = False) -> Set[int]: ... def UpdateValid(self, sec: int) -> None: ... def query_latest(self) -> List[SignalValue]: ... - def update_vl(self) -> Set[int]: ... - - # #ifndef DYNAMIC_CAPNP - # void UpdateCans(uint64_t sec, const capnp::List::Reader& cans); - # #endif - # void UpdateCans(uint64_t sec, const capnp::DynamicStruct::Reader& cans); class CANDefine(): - """Helper class to convert raw int signal values to their mapped names""" def __init__(self, dbc_name: str) -> None: - self.dbc_name: str self.dbc: DBC self.dv: Dict[str|int, Dict[str, Dict[int, str]]] """Example: dv["Message"]["signal"][1] -> "LEFT" """ + self.dbc_name: str ... From 4585824de382104c40435c0519a45b997e459612 Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Wed, 29 Jun 2022 01:14:10 -0400 Subject: [PATCH 6/9] CANPacker completed --- can/common.pyi | 2 +- can/packer_pyx.pyi | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 can/packer_pyx.pyi diff --git a/can/common.pyi b/can/common.pyi index c95504ac5e..daffe25b09 100644 --- a/can/common.pyi +++ b/can/common.pyi @@ -90,4 +90,4 @@ class CANPacker(): """ Cython wrapper for c++ CANPacker """ def __init__(self, dbc_name: str) -> None: ... - def pack(address: int, signals: List[SignalPackValue], counter: int) -> List[int]: ... \ No newline at end of file + def pack(self, address: int, signals: List[SignalPackValue], counter: int) -> List[int]: ... \ No newline at end of file diff --git a/can/packer_pyx.pyi b/can/packer_pyx.pyi new file mode 100644 index 0000000000..64f61a2eca --- /dev/null +++ b/can/packer_pyx.pyi @@ -0,0 +1,15 @@ +from typing import Dict, List, Tuple +from opendbc.can.common import CANPacker as cpp_CANPacker +from opendbc.can.common import DBC + +class CANPacker(): + def __init__(self, dbc_name: str) -> None: + self.packer: cpp_CANPacker + self.dbc: DBC + self.name_to_address_and_size: Dict[str, Tuple[int, int]] + self.address_to_size: Dict[int, int] + ... + + def pack(self, addr: int, values: Dict[str, float], counter: int) -> List[int]: ... + + def make_can_msg(self, name_or_addr: str|int, bus: int, values: Dict[str, float], counter=-1) -> List[int] : ... \ No newline at end of file From dbd0f608a32a8d2885d79ca258ec963163fcfc13 Mon Sep 17 00:00:00 2001 From: Jason Shuler Date: Wed, 29 Jun 2022 10:26:19 -0400 Subject: [PATCH 7/9] Holding temp changes... --- can/can_define.py | 2 +- can/common.pyi | 4 ++-- can/packer.py | 1 - can/packer_pyx.pyi | 6 +++--- can/parser.py | 2 +- can/parser_pyx.pyi | 6 +++--- generator/generator.py | 6 +++--- 7 files changed, 13 insertions(+), 14 deletions(-) diff --git a/can/can_define.py b/can/can_define.py index ad79432a7a..37f5e58bc7 100644 --- a/can/can_define.py +++ b/can/can_define.py @@ -1,2 +1,2 @@ -from opendbc.can.parser_pyx import CANDefine # pylint: disable=no-name-in-module, import-error +from opendbc.can.parser_pyx import CANDefine assert CANDefine diff --git a/can/common.pyi b/can/common.pyi index daffe25b09..99ddc17b61 100644 --- a/can/common.pyi +++ b/can/common.pyi @@ -69,8 +69,8 @@ class SignalValue(): @dataclass class SignalPackValue(): - name: str - value: float + name: str + value: float def dbc_lookup(dbc_name: str) -> DBC: ... diff --git a/can/packer.py b/can/packer.py index fc22cce005..fd4c331752 100644 --- a/can/packer.py +++ b/can/packer.py @@ -1,3 +1,2 @@ -# pylint: skip-file from opendbc.can.packer_pyx import CANPacker assert CANPacker diff --git a/can/packer_pyx.pyi b/can/packer_pyx.pyi index 64f61a2eca..11044d8357 100644 --- a/can/packer_pyx.pyi +++ b/can/packer_pyx.pyi @@ -1,4 +1,4 @@ -from typing import Dict, List, Tuple +from typing import Dict, List, Tuple, Any from opendbc.can.common import CANPacker as cpp_CANPacker from opendbc.can.common import DBC @@ -10,6 +10,6 @@ class CANPacker(): self.address_to_size: Dict[int, int] ... - def pack(self, addr: int, values: Dict[str, float], counter: int) -> List[int]: ... + def pack(self, addr: int, values: Dict[str, Any], counter: int) -> List[int]: ... - def make_can_msg(self, name_or_addr: str|int, bus: int, values: Dict[str, float], counter=-1) -> List[int] : ... \ No newline at end of file + def make_can_msg(self, name_or_addr: str|int, bus: int, values: Dict[str, Any], counter: int = ...) -> List[Any] : ... \ No newline at end of file diff --git a/can/parser.py b/can/parser.py index 04722115ce..c8b18ad391 100644 --- a/can/parser.py +++ b/can/parser.py @@ -1,2 +1,2 @@ -from opendbc.can.parser_pyx import CANParser, CANDefine # pylint: disable=no-name-in-module, import-error +from opendbc.can.parser_pyx import CANParser, CANDefine assert CANParser, CANDefine diff --git a/can/parser_pyx.pyi b/can/parser_pyx.pyi index a3bd2d02fc..175debfff2 100644 --- a/can/parser_pyx.pyi +++ b/can/parser_pyx.pyi @@ -5,7 +5,7 @@ from opendbc.can.common import SignalValue, DBC class CANParser(): def __init__(self, dbc_name: str, signals: List[Tuple[str|int, str]], - checks: Optional[List[Tuple[str, int]]] = None, bus: Optional[int] = 0, enforce_checks: Optional[bool] = True) -> None: + checks: Optional[List[Tuple[str, int]]] = ..., bus: int = ..., enforce_checks: bool = ...) -> None: self.can: cpp_CANParser self.dbc: DBC self.msg_name_to_address: Dict[str,int] @@ -23,9 +23,9 @@ class CANParser(): def update_vl(self) -> Set[int]: ... - def update_string(self, dat: str, sendcan: Optional[bool] = False) -> Set[int]: ... + def update_string(self, dat: str, sendcan: bool = ...) -> Set[int]: ... - def update_strings(self, strings: List[str], sendcan: Optional[bool] = False) -> Set[int]: ... + def update_strings(self, strings: List[str], sendcan: bool = ...) -> Set[int]: ... def UpdateValid(self, sec: int) -> None: ... diff --git a/generator/generator.py b/generator/generator.py index 50a41609ec..9d5b37b5db 100755 --- a/generator/generator.py +++ b/generator/generator.py @@ -10,12 +10,12 @@ generated_suffix = '_generated.dbc' -def read_dbc(src_dir, filename): +def read_dbc(src_dir: str, filename: str) -> str: with open(os.path.join(src_dir, filename)) as file_in: return file_in.read() -def create_dbc(src_dir, filename, output_path): +def create_dbc(src_dir: str, filename: str, output_path: str): dbc_file_in = read_dbc(src_dir, filename) includes = include_pattern.findall(dbc_file_in) @@ -39,7 +39,7 @@ def create_dbc(src_dir, filename, output_path): dbc_file_out.write(core_dbc) -def create_all(output_path): +def create_all(output_path: str): # clear out old DBCs for f in glob.glob(f"{output_path}/*{generated_suffix}"): os.remove(f) From 2ffbe14e5459fb9320735efecdaba27160318bb2 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Sun, 1 Jan 2023 16:13:09 -0800 Subject: [PATCH 8/9] remove *.pyi --- can/common.pyi | 93 ---------------------------------------------- can/packer_pyx.pyi | 15 -------- can/parser_pyx.pyi | 41 -------------------- 3 files changed, 149 deletions(-) delete mode 100644 can/common.pyi delete mode 100644 can/packer_pyx.pyi delete mode 100644 can/parser_pyx.pyi diff --git a/can/common.pyi b/can/common.pyi deleted file mode 100644 index 99ddc17b61..0000000000 --- a/can/common.pyi +++ /dev/null @@ -1,93 +0,0 @@ -from dataclasses import dataclass - -from enum import Enum -from typing import List - -class SignalType(Enum): - DEFAULT = 0 - HONDA_CHECKSUM = 1 - HONDA_COUNTER = 2 - TOYOTA_CHECKSUM = 3 - PEDAL_CHECKSUM = 4 - PEDAL_COUNTER = 5 - VOLKSWAGEN_CHECKSUM = 6 - VOLKSWAGEN_COUNTER = 7 - SUBARU_CHECKSUM = 8 - CHRYSLER_CHECKSUM = 9 - HKG_CAN_FD_CHECKSUM = 10 - HKG_CAN_FD_COUNTER = 11 - -@dataclass -class Signal(): - name: str - start_bit: int - msb: int - lsb: int - size: int - is_signed: bool - factor: float - offset: float - is_little_endian: bool - type: SignalType - -@dataclass -class Msg(): - name: str - address: int - size: int - sigs: List[Signal] - -@dataclass -class Val(): - name: str - address: int - def_val: str - sigs: List[Signal] - -@dataclass -class DBC(): - name: str - msgs: List[Msg] - vals: List[Val] - -@dataclass -class SignalParseOptions(): - address: int - name: str - -@dataclass -class MessageParseOptions(): - address: int - check_frequency: int - -@dataclass -class SignalValue(): - address: int - name: str - value: float - all_values: List[float] - -@dataclass -class SignalPackValue(): - name: str - value: float - -def dbc_lookup(dbc_name: str) -> DBC: ... - - -class CANParser(): - """ Cython wrapper for c++ CANParser - """ - def __init__(self, abus: int, dbc_name: str, options: List[MessageParseOptions], sigoptions: List[SignalParseOptions]) -> None: - self.can_valid: bool - self.bus_timeout: bool - ... - - def update_string(self, data: str, sendcan: bool) -> None: ... - def query_latest(self) -> List[SignalValue]: ... - -class CANPacker(): - """ Cython wrapper for c++ CANPacker - """ - def __init__(self, dbc_name: str) -> None: ... - def pack(self, address: int, signals: List[SignalPackValue], counter: int) -> List[int]: ... \ No newline at end of file diff --git a/can/packer_pyx.pyi b/can/packer_pyx.pyi deleted file mode 100644 index 11044d8357..0000000000 --- a/can/packer_pyx.pyi +++ /dev/null @@ -1,15 +0,0 @@ -from typing import Dict, List, Tuple, Any -from opendbc.can.common import CANPacker as cpp_CANPacker -from opendbc.can.common import DBC - -class CANPacker(): - def __init__(self, dbc_name: str) -> None: - self.packer: cpp_CANPacker - self.dbc: DBC - self.name_to_address_and_size: Dict[str, Tuple[int, int]] - self.address_to_size: Dict[int, int] - ... - - def pack(self, addr: int, values: Dict[str, Any], counter: int) -> List[int]: ... - - def make_can_msg(self, name_or_addr: str|int, bus: int, values: Dict[str, Any], counter: int = ...) -> List[Any] : ... \ No newline at end of file diff --git a/can/parser_pyx.pyi b/can/parser_pyx.pyi deleted file mode 100644 index 175debfff2..0000000000 --- a/can/parser_pyx.pyi +++ /dev/null @@ -1,41 +0,0 @@ -from typing import Dict, List, Set, Tuple, Optional -from opendbc.can.common import CANParser as cpp_CANParser -from opendbc.can.common import SignalValue, DBC - - -class CANParser(): - def __init__(self, dbc_name: str, signals: List[Tuple[str|int, str]], - checks: Optional[List[Tuple[str, int]]] = ..., bus: int = ..., enforce_checks: bool = ...) -> None: - self.can: cpp_CANParser - self.dbc: DBC - self.msg_name_to_address: Dict[str,int] - self.address_to_msg_name: Dict[int,str] - self.can_values: List[SignalValue] - # readonly - self.vl: Dict[int|str, Dict[str, float]] - """ Get Latest value for a signal. vl["messagename"|messageid]["signalName"] -> signal value""" - self.vl_all: Dict[int|str, Dict[str, List[float]]] - self.can_valid: bool - self.bus_timeout: bool - self.dbc_name: str - self.can_invalid_cnt: int - ... - - def update_vl(self) -> Set[int]: ... - - def update_string(self, dat: str, sendcan: bool = ...) -> Set[int]: ... - - def update_strings(self, strings: List[str], sendcan: bool = ...) -> Set[int]: ... - - def UpdateValid(self, sec: int) -> None: ... - - def query_latest(self) -> List[SignalValue]: ... - - -class CANDefine(): - def __init__(self, dbc_name: str) -> None: - self.dbc: DBC - self.dv: Dict[str|int, Dict[str, Dict[int, str]]] - """Example: dv["Message"]["signal"][1] -> "LEFT" """ - self.dbc_name: str - ... From ee2cbc2c409eba319ab61485304078ef7c62e814 Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Sun, 1 Jan 2023 16:17:20 -0800 Subject: [PATCH 9/9] just remove skip-file --- can/can_define.py | 2 +- can/packer.py | 2 +- can/parser.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/can/can_define.py b/can/can_define.py index 37f5e58bc7..ad79432a7a 100644 --- a/can/can_define.py +++ b/can/can_define.py @@ -1,2 +1,2 @@ -from opendbc.can.parser_pyx import CANDefine +from opendbc.can.parser_pyx import CANDefine # pylint: disable=no-name-in-module, import-error assert CANDefine diff --git a/can/packer.py b/can/packer.py index fd4c331752..024cf30451 100644 --- a/can/packer.py +++ b/can/packer.py @@ -1,2 +1,2 @@ -from opendbc.can.packer_pyx import CANPacker +from opendbc.can.packer_pyx import CANPacker # pylint: disable=no-name-in-module, import-error assert CANPacker diff --git a/can/parser.py b/can/parser.py index c8b18ad391..04722115ce 100644 --- a/can/parser.py +++ b/can/parser.py @@ -1,2 +1,2 @@ -from opendbc.can.parser_pyx import CANParser, CANDefine +from opendbc.can.parser_pyx import CANParser, CANDefine # pylint: disable=no-name-in-module, import-error assert CANParser, CANDefine