setup cython linting (#851)

This commit is contained in:
Cameron Clough 2023-06-14 07:55:49 -07:00 committed by GitHub
parent 1d483ad98e
commit 7e1f7d5b7e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 24 additions and 18 deletions

View File

@ -37,6 +37,11 @@ repos:
exclude: 'site_scons/' exclude: 'site_scons/'
args: args:
- --disable=C,R,W0613,W0511,W0212,W0201,W0311,W0106,W0603,W0621,W0703,E1136 - --disable=C,R,W0613,W0511,W0212,W0201,W0311,W0106,W0603,W0621,W0703,E1136
- repo: https://github.com/MarcoGorelli/cython-lint
rev: v0.15.0
hooks:
- id: cython-lint
- id: double-quote-cython-strings
- repo: https://github.com/cpplint/cpplint - repo: https://github.com/cpplint/cpplint
rev: 1.6.1 rev: 1.6.1
hooks: hooks:

View File

@ -3,10 +3,8 @@
from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t
from libcpp cimport bool from libcpp cimport bool
from libcpp.map cimport map
from libcpp.string cimport string from libcpp.string cimport string
from libcpp.vector cimport vector from libcpp.vector cimport vector
from libcpp.unordered_set cimport unordered_set
ctypedef unsigned int (*calc_checksum_type)(uint32_t, const Signal&, const vector[uint8_t] &) ctypedef unsigned int (*calc_checksum_type)(uint32_t, const Signal&, const vector[uint8_t] &)
@ -54,7 +52,6 @@ cdef extern from "common_dbc.h":
uint32_t address uint32_t address
string name string name
cdef struct MessageParseOptions: cdef struct MessageParseOptions:
uint32_t address uint32_t address
int check_frequency int check_frequency
@ -72,7 +69,7 @@ cdef extern from "common_dbc.h":
cdef extern from "common.h": cdef extern from "common.h":
cdef const DBC* dbc_lookup(const string); cdef const DBC* dbc_lookup(const string)
cdef cppclass CANParser: cdef cppclass CANParser:
bool can_valid bool can_valid

View File

@ -1,12 +1,10 @@
# distutils: language = c++ # distutils: language = c++
# cython: c_string_encoding=ascii, language_level=3 # cython: c_string_encoding=ascii, language_level=3
from libc.stdint cimport uint8_t, uint32_t, uint64_t from libc.stdint cimport uint8_t
from libcpp.vector cimport vector from libcpp.vector cimport vector
from libcpp.map cimport map from libcpp.map cimport map
from libcpp.string cimport string from libcpp.string cimport string
from libcpp cimport bool
from posix.dlfcn cimport dlopen, dlsym, RTLD_LAZY
from .common cimport CANPacker as cpp_CANPacker from .common cimport CANPacker as cpp_CANPacker
from .common cimport dbc_lookup, SignalPackValue, DBC from .common cimport dbc_lookup, SignalPackValue, DBC
@ -36,7 +34,7 @@ cdef class CANPacker:
cdef SignalPackValue spv cdef SignalPackValue spv
for name, value in values.iteritems(): for name, value in values.iteritems():
spv.name = name.encode('utf8') spv.name = name.encode("utf8")
spv.value = value spv.value = value
values_thing.push_back(spv) values_thing.push_back(spv)
@ -48,7 +46,7 @@ cdef class CANPacker:
addr = name_or_addr addr = name_or_addr
size = self.address_to_size[name_or_addr] size = self.address_to_size[name_or_addr]
else: else:
addr, size = self.name_to_address_and_size[name_or_addr.encode('utf8')] addr, size = self.name_to_address_and_size[name_or_addr.encode("utf8")]
cdef vector[uint8_t] val = self.pack(addr, values) cdef vector[uint8_t] val = self.pack(addr, values)
return [addr, 0, (<char *>&val[0])[:size], bus] return [addr, 0, (<char *>&val[0])[:size], bus]

View File

@ -5,14 +5,12 @@ from cython.operator cimport dereference as deref, preincrement as preinc
from libcpp.string cimport string from libcpp.string cimport string
from libcpp.vector cimport vector from libcpp.vector cimport vector
from libcpp.unordered_set cimport unordered_set from libcpp.unordered_set cimport unordered_set
from libc.stdint cimport uint32_t, uint64_t, uint16_t from libc.stdint cimport uint32_t
from libcpp cimport bool
from libcpp.map cimport map from libcpp.map cimport map
from .common cimport CANParser as cpp_CANParser from .common cimport CANParser as cpp_CANParser
from .common cimport SignalParseOptions, MessageParseOptions, dbc_lookup, SignalValue, DBC from .common cimport SignalParseOptions, MessageParseOptions, dbc_lookup, SignalValue, DBC
import os
import numbers import numbers
from collections import defaultdict from collections import defaultdict
@ -46,7 +44,7 @@ cdef class CANParser:
for i in range(self.dbc[0].msgs.size()): for i in range(self.dbc[0].msgs.size()):
msg = self.dbc[0].msgs[i] msg = self.dbc[0].msgs[i]
name = msg.name.decode('utf8') name = msg.name.decode("utf8")
msg_name_to_address[name] = msg.address msg_name_to_address[name] = msg.address
self.address_to_msg_name[msg.address] = name self.address_to_msg_name[msg.address] = name
@ -81,7 +79,7 @@ cdef class CANParser:
signal_addrs = {s[1] for s in signals} signal_addrs = {s[1] for s in signals}
unchecked = signal_addrs - checked_addrs unchecked = signal_addrs - checked_addrs
if len(unchecked): if len(unchecked):
err_msg = ', '.join(f"{self.address_to_msg_name[addr].decode()} ({hex(addr)})" for addr in unchecked) err_msg = ", ".join(f"{self.address_to_msg_name[addr].decode()} ({hex(addr)})" for addr in unchecked)
raise RuntimeError(f"Unchecked addrs: {err_msg}") raise RuntimeError(f"Unchecked addrs: {err_msg}")
cdef vector[SignalParseOptions] signal_options_v cdef vector[SignalParseOptions] signal_options_v
@ -106,7 +104,7 @@ cdef class CANParser:
def update_strings(self, strings, sendcan=False): def update_strings(self, strings, sendcan=False):
for v in self.vl_all.values(): for v in self.vl_all.values():
for l in v.values(): for l in v.values(): # no-cython-lint
l.clear() l.clear()
cdef vector[SignalValue] new_vals cdef vector[SignalValue] new_vals
@ -154,7 +152,7 @@ cdef class CANDefine():
for i in range(self.dbc[0].msgs.size()): for i in range(self.dbc[0].msgs.size()):
msg = self.dbc[0].msgs[i] msg = self.dbc[0].msgs[i]
name = msg.name.decode('utf8') name = msg.name.decode("utf8")
address = msg.address address = msg.address
address_to_msg_name[address] = name address_to_msg_name[address] = name
@ -163,8 +161,8 @@ cdef class CANDefine():
for i in range(self.dbc[0].vals.size()): for i in range(self.dbc[0].vals.size()):
val = self.dbc[0].vals[i] val = self.dbc[0].vals[i]
sgname = val.name.decode('utf8') sgname = val.name.decode("utf8")
def_val = val.def_val.decode('utf8') def_val = val.def_val.decode("utf8")
address = val.address address = val.address
msgname = address_to_msg_name[address] msgname = address_to_msg_name[address]

8
pyproject.toml Normal file
View File

@ -0,0 +1,8 @@
name = "opendbc"
license = "MIT"
readme = "README.md"
repository = "https://github.com/commaai/opendbc"
[tool.cython-lint]
max-line-length = 120
ignore = ["E111", "E114"]