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/'
args:
- --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
rev: 1.6.1
hooks:

View File

@ -3,10 +3,8 @@
from libc.stdint cimport uint8_t, uint16_t, uint32_t, uint64_t
from libcpp cimport bool
from libcpp.map cimport map
from libcpp.string cimport string
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] &)
@ -54,7 +52,6 @@ cdef extern from "common_dbc.h":
uint32_t address
string name
cdef struct MessageParseOptions:
uint32_t address
int check_frequency
@ -72,7 +69,7 @@ cdef extern from "common_dbc.h":
cdef extern from "common.h":
cdef const DBC* dbc_lookup(const string);
cdef const DBC* dbc_lookup(const string)
cdef cppclass CANParser:
bool can_valid

View File

@ -1,12 +1,10 @@
# distutils: language = c++
# 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.map cimport map
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 dbc_lookup, SignalPackValue, DBC
@ -36,7 +34,7 @@ cdef class CANPacker:
cdef SignalPackValue spv
for name, value in values.iteritems():
spv.name = name.encode('utf8')
spv.name = name.encode("utf8")
spv.value = value
values_thing.push_back(spv)
@ -48,7 +46,7 @@ cdef class CANPacker:
addr = name_or_addr
size = self.address_to_size[name_or_addr]
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)
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.vector cimport vector
from libcpp.unordered_set cimport unordered_set
from libc.stdint cimport uint32_t, uint64_t, uint16_t
from libcpp cimport bool
from libc.stdint cimport uint32_t
from libcpp.map cimport map
from .common cimport CANParser as cpp_CANParser
from .common cimport SignalParseOptions, MessageParseOptions, dbc_lookup, SignalValue, DBC
import os
import numbers
from collections import defaultdict
@ -46,7 +44,7 @@ cdef class CANParser:
for i in range(self.dbc[0].msgs.size()):
msg = self.dbc[0].msgs[i]
name = msg.name.decode('utf8')
name = msg.name.decode("utf8")
msg_name_to_address[name] = msg.address
self.address_to_msg_name[msg.address] = name
@ -81,7 +79,7 @@ cdef class CANParser:
signal_addrs = {s[1] for s in signals}
unchecked = signal_addrs - checked_addrs
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}")
cdef vector[SignalParseOptions] signal_options_v
@ -106,7 +104,7 @@ cdef class CANParser:
def update_strings(self, strings, sendcan=False):
for v in self.vl_all.values():
for l in v.values():
for l in v.values(): # no-cython-lint
l.clear()
cdef vector[SignalValue] new_vals
@ -154,7 +152,7 @@ cdef class CANDefine():
for i in range(self.dbc[0].msgs.size()):
msg = self.dbc[0].msgs[i]
name = msg.name.decode('utf8')
name = msg.name.decode("utf8")
address = msg.address
address_to_msg_name[address] = name
@ -163,8 +161,8 @@ cdef class CANDefine():
for i in range(self.dbc[0].vals.size()):
val = self.dbc[0].vals[i]
sgname = val.name.decode('utf8')
def_val = val.def_val.decode('utf8')
sgname = val.name.decode("utf8")
def_val = val.def_val.decode("utf8")
address = val.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"]