2023-08-10 23:23:19 +08:00
[ tool . pytest . ini_options ]
minversion = "6.0"
2023-11-16 02:41:11 +08:00
addopts = "--ignore=openpilot/ --ignore=cereal/ --ignore=opendbc/ --ignore=panda/ --ignore=rednose_repo/ --ignore=tinygrad_repo/ -Werror --strict-config --strict-markers --durations=10 -n auto --dist=loadgroup"
2023-11-14 02:45:24 +08:00
cpp_files = "test_*"
2023-11-23 05:45:49 +08:00
cpp_harness = "selfdrive/test/cpp_harness.py"
2023-08-10 23:23:19 +08:00
python_files = "test_*.py"
2023-08-29 01:26:19 +08:00
#timeout = "30" # you get this long by default
2023-08-30 08:04:42 +08:00
markers = [
2023-11-08 09:35:44 +08:00
"slow: tests that take awhile to run and can be skipped with -m 'not slow'" ,
"tici: tests that are only meant to run on the C3/C3X" ,
2023-08-30 08:04:42 +08:00
]
2023-09-06 09:52:40 +08:00
testpaths = [
"common" ,
"selfdrive/athena" ,
"selfdrive/boardd" ,
"selfdrive/car" ,
"selfdrive/controls" ,
"selfdrive/locationd" ,
"selfdrive/monitoring" ,
"selfdrive/thermald" ,
"selfdrive/test/longitudinal_maneuvers" ,
"system/hardware/tici" ,
"system/loggerd" ,
2023-09-12 05:01:50 +08:00
"system/proclogd" ,
2023-09-06 09:52:40 +08:00
"system/tests" ,
"system/ubloxd" ,
2023-12-02 13:13:37 +08:00
"system/webrtc" ,
2023-09-12 05:01:50 +08:00
"tools/lib/tests" ,
"tools/replay" ,
"tools/cabana"
2023-09-06 09:52:40 +08:00
]
2023-08-10 23:23:19 +08:00
2023-08-21 12:08:04 +08:00
[ tool . mypy ]
python_version = "3.11"
plugins = [
"numpy.typing.mypy_plugin" ,
]
exclude = [
"body/" ,
"cereal/" ,
"opendbc/" ,
"panda/" ,
"rednose/" ,
"rednose_repo/" ,
"tinygrad/" ,
"tinygrad_repo/" ,
2023-12-02 13:13:37 +08:00
"teleoprtc/" ,
"teleoprtc_repo/" ,
2023-08-21 12:08:04 +08:00
"third_party/" ,
]
# third-party packages
ignore_missing_imports = true
# helpful warnings
warn_redundant_casts = true
warn_unreachable = true
warn_unused_ignores = true
# restrict dynamic typing
warn_return_any = true
2022-10-22 07:23:56 +08:00
[ tool . poetry ]
name = "openpilot"
version = "0.1.0"
description = "an open source driver assistance system"
authors = [ "Vehicle Researcher <user@comma.ai>" ]
license = "MIT"
readme = "README.md"
repository = "https://github.com/commaai/openpilot"
documentation = "https://docs.comma.ai"
[ tool . poetry . dependencies ]
2023-07-21 12:56:57 +08:00
python = "~3.11"
2023-07-25 10:01:09 +08:00
atomicwrites = "*"
2023-07-27 14:08:23 +08:00
aiohttp = "*"
aiortc = "*"
2023-06-22 04:14:20 +08:00
casadi = "==3.6.3"
2023-07-25 10:01:09 +08:00
cffi = "*"
2023-08-23 07:48:02 +08:00
control = "*"
2023-07-25 10:01:09 +08:00
crcmod = "*"
cryptography = "*"
Cython = "*"
future-fstrings = "*" # for acados
hexdump = "*"
Jinja2 = "*"
json-rpc = "*"
libusb1 = "*"
2023-08-18 06:36:14 +08:00
numpy = "*"
2023-07-25 10:01:09 +08:00
onnx = ">=1.14.0"
2023-09-29 13:32:21 +08:00
onnxruntime = { version = ">=1.15.1" , platform = "linux" , markers = "platform_machine == 'aarch64'" }
2023-07-25 10:01:09 +08:00
onnxruntime-gpu = { version = ">=1.15.1" , platform = "linux" , markers = "platform_machine == 'x86_64'" }
psutil = "*"
2023-07-27 14:08:23 +08:00
pyaudio = "*"
2023-07-25 10:01:09 +08:00
pycapnp = "*"
pycryptodome = "*"
2023-08-29 05:49:59 +08:00
pycurl = "*"
2023-07-27 14:08:23 +08:00
pydub = "*"
2023-07-25 10:01:09 +08:00
PyJWT = "*"
pyopencl = "*"
pyserial = "*"
PyYAML = "*"
pyzmq = "*"
requests = "*"
scons = "*"
2023-08-12 11:05:44 +08:00
sentry-sdk = "==1.28.1" # needs to be updated with AGNOS
2023-07-25 10:01:09 +08:00
setproctitle = "*"
smbus2 = "*"
sounddevice = "*"
spidev = { version = "*" , platform = "linux" }
sympy = "*"
timezonefinder = "*"
tqdm = "*"
websocket_client = "*"
polyline = "*"
2023-04-07 12:12:32 +08:00
sconscontrib = { git = "https://github.com/SCons/scons-contrib.git" }
2022-10-22 07:23:56 +08:00
[ tool . poetry . group . dev . dependencies ]
2023-07-25 10:01:09 +08:00
av = "*"
2023-08-26 05:01:10 +08:00
azure-identity = "*"
azure-storage-blob = "*"
2023-07-25 10:01:09 +08:00
breathe = "*"
coverage = "*"
dictdiffer = "*"
ft4222 = "*"
2023-09-22 08:40:14 +08:00
hypothesis = "~6.47"
2023-07-25 10:01:09 +08:00
inputs = "*"
lru-dict = "*"
markdown-it-py = "*"
matplotlib = "*"
2023-10-03 04:18:03 +08:00
metadrive-simulator = { git = "https://github.com/metadriverse/metadrive.git" , rev = "72e842cd1d025bf676e4af8797a01e4aa282109f" , markers = "platform_machine != 'aarch64'" } # no linux/aarch64 wheels for certain dependencies
2023-07-25 10:01:09 +08:00
mpld3 = "*"
mypy = "*"
myst-parser = "*"
natsort = "*"
2023-08-12 11:05:44 +08:00
opencv-python-headless = "*"
2023-07-25 10:01:09 +08:00
pandas = "*"
parameterized = "^0.8"
pprofile = "*"
pre-commit = "*"
pygame = "*"
2023-10-30 01:08:28 +08:00
pympler = "*"
2023-07-25 10:01:09 +08:00
pyprof2calltree = "*"
pytest = "*"
2023-08-22 11:51:27 +08:00
pytest-cov = "*"
2023-09-12 05:01:50 +08:00
pytest-cpp = "*"
2023-08-23 05:31:03 +08:00
pytest-subtests = "*"
2023-07-25 10:01:09 +08:00
pytest-xdist = "*"
2023-08-29 01:26:19 +08:00
pytest-timeout = "*"
pytest-timeouts = "*"
2023-10-05 02:51:24 +08:00
pytest-random-order = "*"
2023-09-18 06:44:03 +08:00
ruff = "*"
2023-08-12 11:05:44 +08:00
scipy = "*"
2023-07-25 10:01:09 +08:00
sphinx = "*"
sphinx-rtd-theme = "*"
sphinx-sitemap = "*"
tabulate = "*"
tenacity = "*"
types-atomicwrites = "*"
types-pycurl = "*"
types-PyYAML = "*"
types-requests = "*"
types-tabulate = "*"
2023-10-19 11:18:08 +08:00
# this is only pinned since 5.15.11 is broken
pyqt5 = { version = "==5.15.2" , markers = "platform_machine == 'x86_64'" } # no aarch64 wheels for macOS/linux
2022-10-22 07:23:56 +08:00
2023-10-03 07:11:56 +08:00
[ tool . poetry . group . carla ]
optional = true
[ tool . poetry . group . carla . dependencies ]
carla = { url = "https://github.com/commaai/carla/releases/download/3.11.4/carla-0.9.14-cp311-cp311-linux_x86_64.whl" , platform = "linux" , markers = "platform_machine == 'x86_64'" }
2022-10-22 07:23:56 +08:00
[ build-system ]
requires = [ "poetry-core" ]
build-backend = "poetry.core.masonry.api"
2023-08-10 04:26:54 +08:00
# https://beta.ruff.rs/docs/configuration/#using-pyprojecttoml
[ tool . ruff ]
2023-09-17 06:11:09 +08:00
select = [ "E" , "F" , "W" , "PIE" , "C4" , "ISC" , "RUF008" , "RUF100" , "A" , "B" , "TID251" ]
2023-12-10 05:24:18 +08:00
ignore = [ "E741" , "E402" , "C408" , "ISC003" , "B027" , "B024" ]
2023-08-10 04:26:54 +08:00
line-length = 160
2023-08-10 07:45:09 +08:00
target-version = "py311"
exclude = [
"panda" ,
"opendbc" ,
"rednose_repo" ,
"tinygrad_repo" ,
2023-12-02 13:13:37 +08:00
"teleoprtc" ,
2023-12-07 07:33:17 +08:00
"teleoprtc_repo" ,
2023-08-10 07:45:09 +08:00
"third_party" ,
]
2023-08-11 07:43:39 +08:00
flake8-implicit-str-concat . allow-multiline = false
2023-09-09 01:43:02 +08:00
[ tool . ruff . flake8-tidy-imports . banned-api ]
"selfdrive" . msg = "Use openpilot.selfdrive"
"common" . msg = "Use openpilot.common"
"system" . msg = "Use openpilot.system"
"third_party" . msg = "Use openpilot.third_party"
2023-09-17 06:11:09 +08:00
"tools" . msg = "Use openpilot.tools"
2023-11-11 02:02:05 +08:00
[ tool . coverage . run ]
2023-12-10 05:24:18 +08:00
concurrency = [ "multiprocessing" , "thread" ]