Merge commaai/openpilot fdd1df79 into sync-20260721

This commit is contained in:
Jason Wen
2026-07-21 01:48:30 -04:00
247 changed files with 4628 additions and 3056 deletions
+20 -36
View File
@@ -15,39 +15,28 @@ dependencies = [
"tqdm", # cars (fw_versions.py) on start + many one-off uses
# core
"cffi",
"scons",
"pycapnp==2.1.0", # 2.2 introduces a memory leak due to cyclic references
"Cython",
"setuptools",
"numpy >=2.0",
# vendored native dependencies
"comma-deps-bzip2",
"comma-deps-bootstrap-icons",
"comma-deps-capnproto",
"comma-deps-catch2",
"comma-deps-acados",
"comma-deps-ffmpeg",
"comma-deps-zstd",
"comma-deps-ncurses",
"comma-deps-zeromq",
"comma-deps-libusb",
"comma-deps-json11",
"comma-deps-git-lfs",
"comma-deps-gcc-arm-none-eabi",
# body / webrtcd
"av",
"aiortc",
# logging
"pyzmq",
"sentry-sdk",
"xattr", # used in place of 'os.getxattr' for macOS compatibility
# athena
"PyJWT",
"PyJWT[crypto]",
"websocket_client",
# joystickd
@@ -68,7 +57,6 @@ dependencies = [
[project.optional-dependencies]
docs = [
"Jinja2",
"zensical",
]
@@ -84,7 +72,6 @@ testing = [
"pytest-mock",
"ruff",
"codespell",
"pre-commit-hooks",
]
dev = [
@@ -93,15 +80,15 @@ dev = [
tools = [
"comma-deps-imgui",
"comma-deps-bzip2",
"comma-deps-bootstrap-icons",
"comma-deps-libusb",
"comma-deps-ncurses",
# this can be added back once it's stripped down some more
#"metadrive-simulator @ git+https://github.com/commaai/metadrive.git@minimal ; (platform_machine != 'aarch64')",
]
[project.urls]
Homepage = "https://github.com/commaai/openpilot"
[dependency-groups]
submodules = [
"msgq",
"opendbc",
@@ -111,6 +98,14 @@ submodules = [
"tinygrad",
]
[project.urls]
Homepage = "https://github.com/commaai/openpilot"
[dependency-groups]
standalone = [
"openpilot[submodules]",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
@@ -155,20 +150,19 @@ lint.select = [
"E", "F", "W", "PIE", "C4", "ISC", "A", "B",
"NPY", # numpy
"UP", # pyupgrade
"ASYNC",
"B904", "B905",
"PLC0207",
"TRY203", "TRY400", "TRY401", # try/excepts
"RUF008", "RUF100",
"RUF006", "RUF008", "RUF009", "RUF061", "RUF064", "RUF100", "RUF102", "RUF103", "RUF104",
"TID251",
"PLE", "PLR1704",
]
lint.ignore = [
"E741",
"E402",
"C408",
"ISC003",
"B027",
"B024",
"NPY002", # new numpy random syntax is worse
"UP045", "UP007", # these don't play nice with raylib atm
"UP007", # this doesn't play nice with raylib atm
]
line-length = 160
exclude = [
@@ -181,8 +175,7 @@ lint.flake8-implicit-str-concat.allow-multiline = false
[tool.ruff.lint.flake8-tidy-imports.banned-api]
"pytest.main".msg = "pytest.main requires special handling that is easy to mess up!"
"unittest".msg = "Use pytest"
"time.time".msg = "Use time.monotonic"
"time.time".msg = "Use time.monotonic" # time.time can skip due to its reference clock, you probably want a monotonic clock
# raylib banned APIs
"pyray.measure_text_ex".msg = "Use openpilot.system.ui.lib.text_measure"
@@ -202,21 +195,12 @@ exclude = [
[tool.ty.rules]
unresolved-import = "ignore" # Cython-compiled modules (.pyx)
unresolved-attribute = "ignore" # many from capnp and Cython modules
invalid-method-override = "ignore" # signature variance issues
possibly-missing-attribute = "ignore" # too many false positives
invalid-assignment = "ignore" # often intentional monkey-patching
no-matching-overload = "ignore" # numpy/ctypes overload matching issues
invalid-argument-type = "ignore" # many false positives from raylib, ctypes, numpy
call-non-callable = "ignore" # false positives from dynamic types
unsupported-operator = "ignore" # false positives from dynamic types
not-subscriptable = "ignore" # false positives from dynamic types
[tool.uv]
python-preference = "only-managed"
default-groups = ["submodules"]
default-groups = ["standalone"]
override-dependencies = [
"opendbc", # panda pins opendbc from git for standalone use; always use our submodule
"av", # teleoprtc's av<13 pin is stale
]
[tool.uv.sources]