* ban it!

* some legitimate blunders

* even more!

* this is from commaai/one

* here too

* this too

* ignore rest

* one liner

* Revert "one liner"

This reverts commit d96a162403.
pull/35746/head
Shane Smiskol 6 days ago committed by GitHub
parent 7d400cb00c
commit 632f7594a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      pyproject.toml
  2. 8
      selfdrive/debug/car/fw_versions.py
  3. 6
      selfdrive/debug/cpu_usage_stat.py
  4. 2
      selfdrive/ui/layouts/home.py
  5. 4
      selfdrive/ui/onroad/exp_button.py
  6. 2
      selfdrive/ui/widgets/pairing_dialog.py
  7. 6
      system/athena/athenad.py
  8. 26
      system/athena/tests/test_athenad.py
  9. 4
      system/camerad/test/test_exposure.py
  10. 2
      system/qcomgpsd/qcomgpsd.py
  11. 2
      tools/camerastream/compressed_vipc.py
  12. 4
      tools/lib/url_file.py
  13. 4
      tools/replay/unlog_ci_segment.py
  14. 4
      tools/sim/lib/simulated_sensors.py

@ -258,6 +258,7 @@ lint.flake8-implicit-str-concat.allow-multiline = false
"pytest.main".msg = "pytest.main requires special handling that is easy to mess up!"
"unittest".msg = "Use pytest"
"pyray.measure_text_ex".msg = "Use openpilot.system.ui.lib.text_measure"
"time.time".msg = "Use time.monotonic"
[tool.ruff.format]
quote-style = "preserve"

@ -47,15 +47,15 @@ if __name__ == "__main__":
num_pandas = len(messaging.recv_one_retry(pandaStates_sock).pandaStates)
t = time.time()
t = time.monotonic()
print("Getting vin...")
set_obd_multiplexing(True)
vin_rx_addr, vin_rx_bus, vin = get_vin(*can_callbacks, (0, 1))
print(f'RX: {hex(vin_rx_addr)}, BUS: {vin_rx_bus}, VIN: {vin}')
print(f"Getting VIN took {time.time() - t:.3f} s")
print(f"Getting VIN took {time.monotonic() - t:.3f} s")
print()
t = time.time()
t = time.monotonic()
fw_vers = get_fw_versions(*can_callbacks, set_obd_multiplexing, query_brand=args.brand, extra=extra, num_pandas=num_pandas, progress=True)
_, candidates = match_fw_to_car(fw_vers, vin)
@ -71,4 +71,4 @@ if __name__ == "__main__":
print()
print("Possible matches:", candidates)
print(f"Getting fw took {time.time() - t:.3f} s")
print(f"Getting fw took {time.monotonic() - t:.3f} s")

@ -37,8 +37,6 @@ monitored_proc_names = [
cpu_time_names = ['user', 'system', 'children_user', 'children_system']
timer = getattr(time, 'monotonic', time.time)
def get_arg_parser():
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
@ -72,7 +70,7 @@ if __name__ == "__main__":
print('Add monitored proc:', k)
stats[k] = {'cpu_samples': defaultdict(list), 'min': defaultdict(lambda: None), 'max': defaultdict(lambda: None),
'avg': defaultdict(float), 'last_cpu_times': None, 'last_sys_time': None}
stats[k]['last_sys_time'] = timer()
stats[k]['last_sys_time'] = time.monotonic()
stats[k]['last_cpu_times'] = p.cpu_times()
monitored_procs.append(p)
i = 0
@ -80,7 +78,7 @@ if __name__ == "__main__":
while True:
for p in monitored_procs:
k = ' '.join(p.cmdline())
cur_sys_time = timer()
cur_sys_time = time.monotonic()
cur_cpu_times = p.cpu_times()
cpu_times = np.subtract(cur_cpu_times, stats[k]['last_cpu_times']) / (cur_sys_time - stats[k]['last_sys_time'])
stats[k]['last_sys_time'] = cur_sys_time

@ -67,7 +67,7 @@ class HomeLayout(Widget):
self.current_state = state
def _render(self, rect: rl.Rectangle):
current_time = time.time()
current_time = time.monotonic()
if current_time - self.last_refresh >= REFRESH_INTERVAL:
self._refresh()
self.last_refresh = current_time

@ -41,7 +41,7 @@ class ExpButton(Widget):
# Hold new state temporarily
self._held_mode = new_mode
self._hold_end_time = time.time() + self._hold_duration
self._hold_end_time = time.monotonic() + self._hold_duration
return True
return False
@ -58,7 +58,7 @@ class ExpButton(Widget):
rl.draw_texture(texture, center_x - texture.width // 2, center_y - texture.height // 2, self._white_color)
def _held_or_actual_mode(self):
now = time.time()
now = time.monotonic()
if self._hold_end_time and now < self._hold_end_time:
return self._held_mode

@ -55,7 +55,7 @@ class PairingDialog:
self.qr_texture = None
def _check_qr_refresh(self) -> None:
current_time = time.time()
current_time = time.monotonic()
if current_time - self.last_qr_generation >= self.QR_REFRESH_INTERVAL:
self._generate_qr_code()
self.last_qr_generation = current_time

@ -426,7 +426,7 @@ def uploadFilesToUrls(files_data: list[UploadFileDict]) -> UploadFilesToUrlRespo
path=path,
url=file.url,
headers=file.headers,
created_at=int(time.time() * 1000),
created_at=int(time.time() * 1000), # noqa: TID251
id=None,
allow_cellular=file.allow_cellular,
priority=file.priority,
@ -580,7 +580,7 @@ def takeSnapshot() -> str | dict[str, str] | None:
def get_logs_to_send_sorted() -> list[str]:
# TODO: scan once then use inotify to detect file creation/deletion
curr_time = int(time.time())
curr_time = int(time.time()) # noqa: TID251
logs = []
for log_entry in os.listdir(Paths.swaglog_root()):
log_path = os.path.join(Paths.swaglog_root(), log_entry)
@ -617,7 +617,7 @@ def log_handler(end_event: threading.Event) -> None:
log_entry = log_files.pop() # newest log file
cloudlog.debug(f"athena.log_handler.forward_request {log_entry}")
try:
curr_time = int(time.time())
curr_time = int(time.time()) # noqa: TID251
log_path = os.path.join(Paths.swaglog_root(), log_entry)
setxattr(log_path, LOG_ATTR_NAME, int.to_bytes(curr_time, 4, sys.byteorder))
with open(log_path) as f:

@ -91,8 +91,8 @@ class TestAthenadMethods:
@staticmethod
def _wait_for_upload():
now = time.time()
while time.time() - now < 5:
now = time.monotonic()
while time.monotonic() - now < 5:
if athenad.upload_queue.qsize() == 0:
break
@ -190,11 +190,11 @@ class TestAthenadMethods:
fn = self._create_file('qlog', data=os.urandom(10000 * 1024))
upload_fn = fn + ('.zst' if compress else '')
item = athenad.UploadItem(path=upload_fn, url="http://localhost:1238", headers={}, created_at=int(time.time()*1000), id='')
item = athenad.UploadItem(path=upload_fn, url="http://localhost:1238", headers={}, created_at=int(time.time()*1000), id='') # noqa: TID251
with pytest.raises(requests.exceptions.ConnectionError):
athenad._do_upload(item)
item = athenad.UploadItem(path=upload_fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='')
item = athenad.UploadItem(path=upload_fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='') # noqa: TID251
resp = athenad._do_upload(item)
assert resp.status_code == 201
@ -226,7 +226,7 @@ class TestAthenadMethods:
@with_upload_handler
def test_upload_handler(self, host):
fn = self._create_file('qlog.zst')
item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True)
item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) # noqa: TID251
athenad.upload_queue.put_nowait(item)
self._wait_for_upload()
@ -242,7 +242,7 @@ class TestAthenadMethods:
mock_put = mocker.patch('openpilot.system.athena.athenad.UPLOAD_SESS.put')
mock_put.return_value.__enter__.return_value.status_code = status
fn = self._create_file('qlog.zst')
item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True)
item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) # noqa: TID251
athenad.upload_queue.put_nowait(item)
self._wait_for_upload()
@ -257,7 +257,7 @@ class TestAthenadMethods:
def test_upload_handler_timeout(self):
"""When an upload times out or fails to connect it should be placed back in the queue"""
fn = self._create_file('qlog.zst')
item = athenad.UploadItem(path=fn, url="http://localhost:44444/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True)
item = athenad.UploadItem(path=fn, url="http://localhost:44444/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) # noqa: TID251
item_no_retry = replace(item, retry_count=MAX_RETRY_COUNT)
athenad.upload_queue.put_nowait(item_no_retry)
@ -278,7 +278,7 @@ class TestAthenadMethods:
@with_upload_handler
def test_cancel_upload(self):
item = athenad.UploadItem(path="qlog.zst", url="http://localhost:44444/qlog.zst", headers={},
created_at=int(time.time()*1000), id='id', allow_cellular=True)
created_at=int(time.time()*1000), id='id', allow_cellular=True) # noqa: TID251
athenad.upload_queue.put_nowait(item)
dispatcher["cancelUpload"](item.id)
@ -312,7 +312,7 @@ class TestAthenadMethods:
@with_upload_handler
def test_list_upload_queue_current(self, host: str):
fn = self._create_file('qlog.zst')
item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True)
item = athenad.UploadItem(path=fn, url=f"{host}/qlog.zst", headers={}, created_at=int(time.time()*1000), id='', allow_cellular=True) # noqa: TID251
athenad.upload_queue.put_nowait(item)
self._wait_for_upload()
@ -331,7 +331,7 @@ class TestAthenadMethods:
path=fp,
url=f"http://localhost:44444/{fn}",
headers={},
created_at=int(time.time()*1000),
created_at=int(time.time()*1000), # noqa: TID251
id='',
allow_cellular=True,
priority=i
@ -343,7 +343,7 @@ class TestAthenadMethods:
def test_list_upload_queue(self):
item = athenad.UploadItem(path="qlog.zst", url="http://localhost:44444/qlog.zst", headers={},
created_at=int(time.time()*1000), id='id', allow_cellular=True)
created_at=int(time.time()*1000), id='id', allow_cellular=True) # noqa: TID251
athenad.upload_queue.put_nowait(item)
items = dispatcher["listUploadQueue"]()
@ -356,8 +356,8 @@ class TestAthenadMethods:
assert len(items) == 0
def test_upload_queue_persistence(self):
item1 = athenad.UploadItem(path="_", url="_", headers={}, created_at=int(time.time()), id='id1')
item2 = athenad.UploadItem(path="_", url="_", headers={}, created_at=int(time.time()), id='id2')
item1 = athenad.UploadItem(path="_", url="_", headers={}, created_at=int(time.time()), id='id1') # noqa: TID251
item2 = athenad.UploadItem(path="_", url="_", headers={}, created_at=int(time.time()), id='id2') # noqa: TID251
athenad.upload_queue.put_nowait(item1)
athenad.upload_queue.put_nowait(item2)

@ -33,8 +33,8 @@ class TestCamerad:
@with_processes(['camerad'])
def test_camera_operation(self):
passed = 0
start = time.time()
while time.time() - start < TEST_TIME and passed < REPEAT:
start = time.monotonic()
while time.monotonic() - start < TEST_TIME and passed < REPEAT:
rpic, dpic = get_snapshots(frame="roadCameraState", front_frame="driverCameraState")
wpic, _ = get_snapshots(frame="wideRoadCameraState")

@ -286,7 +286,7 @@ def main() -> NoReturn:
continue
if DEBUG:
print(f"{time.time():.4f}: got log: {log_type} len {len(log_payload)}")
print(f"{time.time():.4f}: got log: {log_type} len {len(log_payload)}") # noqa: TID251
if log_type == LOG_GNSS_OEMDRE_MEASUREMENT_REPORT:
msg = messaging.new_message('qcomGnss', valid=True)

@ -62,7 +62,7 @@ def decoder(addr, vipc_server, vst, nvidia, W, H, debug=False):
print("waiting for iframe")
continue
time_q.append(time.monotonic())
network_latency = (int(time.time()*1e9) - evta.unixTimestampNanos)/1e6
network_latency = (int(time.time()*1e9) - evta.unixTimestampNanos)/1e6 # noqa: TID251
frame_latency = ((evta.idx.timestampEof/1e9) - (evta.idx.timestampSof/1e9))*1000
process_latency = ((evt.logMonoTime/1e9) - (evta.idx.timestampEof/1e9))*1000

@ -131,13 +131,13 @@ class URLFile:
download_range = True
if self._debug:
t1 = time.time()
t1 = time.monotonic()
response = self._request('GET', self._url, headers=headers)
ret = response.data
if self._debug:
t2 = time.time()
t2 = time.monotonic()
if t2 - t1 > 0.1:
print(f"get {self._url} {headers!r} {t2 - t1:.3f} slow")

@ -42,7 +42,7 @@ def replay(route, segment, loop):
msg = msgs[i].as_builder()
next_msg = msgs[i + 1]
start_time = time.time()
start_time = time.monotonic()
w = msg.which()
if w == 'roadCameraState':
@ -63,7 +63,7 @@ def replay(route, segment, loop):
socks[w] = None
lag += (next_msg.logMonoTime - msg.logMonoTime) / 1e9
lag -= time.time() - start_time
lag -= time.monotonic() - start_time
dt = max(lag, 0.0)
lag -= dt

@ -53,7 +53,7 @@ class SimulatedSensors:
for _ in range(10):
dat = messaging.new_message('gpsLocationExternal', valid=True)
dat.gpsLocationExternal = {
"unixTimestampMillis": int(time.time() * 1000),
"unixTimestampMillis": int(time.time() * 1000), # noqa: TID251
"flags": 1, # valid fix
"horizontalAccuracy": 1.0,
"verticalAccuracy": 1.0,
@ -109,7 +109,7 @@ class SimulatedSensors:
self.camerad.cam_send_yuv_wide_road(yuv)
def update(self, simulator_state: 'SimulatorState', world: 'World'):
now = time.time()
now = time.monotonic()
self.send_imu_message(simulator_state)
self.send_gps_message(simulator_state)

Loading…
Cancel
Save