Ruff: enable most of bugbear (#29320)

* added mutable default args

* most of the Bs

* add comment about lrucache
old-commit-hash: 62c1e6592439119f360dd64b854e7047f35222ba
This commit is contained in:
Justin Newberry
2023-08-11 15:33:49 -07:00
committed by GitHub
parent a9611d13be
commit d487c0501f
24 changed files with 71 additions and 55 deletions
+3 -1
View File
@@ -18,7 +18,9 @@ class TestCamerad(unittest.TestCase):
ret = np.clip(im[:,:,2] * 0.114 + im[:,:,1] * 0.587 + im[:,:,0] * 0.299, 0, 255).astype(np.uint8)
return ret
def _is_exposure_okay(self, i, med_mean=np.array([[0.2,0.4],[0.2,0.6]])):
def _is_exposure_okay(self, i, med_mean=None):
if med_mean is None:
med_mean = np.array([[0.2,0.4],[0.2,0.6]])
h, w = i.shape[:2]
i = i[h//10:9*h//10,w//10:9*w//10]
med_ex, mean_ex = med_mean
+12 -8
View File
@@ -83,6 +83,17 @@ def affine_irq(val, action):
for i in irqs:
sudo_write(str(val), f"/proc/irq/{i}/smp_affinity_list")
@lru_cache
def get_device_type():
# lru_cache and cache can cause memory leaks when used in classes
with open("/sys/firmware/devicetree/base/model") as f:
model = f.read().strip('\x00')
model = model.split('comma ')[-1]
# TODO: remove this with AGNOS 7+
if model.startswith('Qualcomm'):
model = 'tici'
return model
class Tici(HardwareBase):
@cached_property
def bus(self):
@@ -105,15 +116,8 @@ class Tici(HardwareBase):
with open("/VERSION") as f:
return f.read().strip()
@lru_cache
def get_device_type(self):
with open("/sys/firmware/devicetree/base/model") as f:
model = f.read().strip('\x00')
model = model.split('comma ')[-1]
# TODO: remove this with AGNOS 7+
if model.startswith('Qualcomm'):
model = 'tici'
return model
return get_device_type()
def get_sound_card_online(self):
if os.path.isfile('/proc/asound/card0/state'):
+1 -1
View File
@@ -446,7 +446,7 @@ def main() -> NoReturn:
report.source = 1 # glonass
measurement_status_fields = (measurementStatusFields.items(), measurementStatusGlonassFields.items())
else:
assert False
raise RuntimeError(f"invalid log_type: {log_type}")
for k,v in dat.items():
if k == "version":
+2 -3
View File
@@ -317,8 +317,7 @@ def parse_struct(ss):
elif typ in ["uint64", "uint64_t"]:
st += "Q"
else:
print("unknown type", typ)
assert False
raise RuntimeError(f"unknown type {typ}")
if '[' in nam:
cnt = int(nam.split("[")[1].split("]")[0])
st += st[-1]*(cnt-1)
@@ -333,7 +332,7 @@ def dict_unpacker(ss, camelcase = False):
if camelcase:
nams = [name_to_camelcase(x) for x in nams]
sz = calcsize(st)
return lambda x: dict(zip(nams, unpack_from(st, x))), sz
return lambda x: dict(zip(nams, unpack_from(st, x), strict=True)), sz
def relist(dat):
list_keys = set()
+5 -5
View File
@@ -185,8 +185,8 @@ class UBloxAttrDict(dict):
def __getattr__(self, name):
try:
return self.__getitem__(name)
except KeyError:
raise AttributeError(name)
except KeyError as e:
raise RuntimeError(f"ublock invalid attr: {name}") from e
def __setattr__(self, name, value):
if name in self.__dict__:
@@ -270,7 +270,7 @@ class UBloxDescriptor:
return
size2 = struct.calcsize(self.format2)
for c in range(count):
for _ in range(count):
r = UBloxAttrDict()
if size2 > len(buf):
raise UBloxError("INVALID_SIZE=%u, " % len(buf))
@@ -573,10 +573,10 @@ class UBloxMessage:
'''allow access to message fields'''
try:
return self._fields[name]
except KeyError:
except KeyError as e:
if name == 'recs':
return self._recs
raise AttributeError(name)
raise AttributeError(name) from e
def __setattr__(self, name, value):
'''allow access to message fields'''