[ tool . pytest . ini_options ]
minversion = "6.0"
addopts = "--ignore=panda/ --ignore=rednose_repo/ --ignore=tinygrad_repo/ --ignore=laika_repo/"
python_files = "test_*.py"
timeout = "30" # you get this long by default
[ 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 ]
python = "~3.11"
poetry = "~1.5.1"
atomicwrites = "*"
aiohttp = "*"
aiortc = "*"
casadi = "==3.6.3"
cffi = "*"
crcmod = "*"
cryptography = "*"
Cython = "*"
Flask = "*"
future-fstrings = "*" # for acados
gunicorn = "*"
hatanaka = "==2.4"
hexdump = "*"
Jinja2 = "*"
json-rpc = "*"
libusb1 = "*"
numpy = "~1.23" # pinned for acados
onnx = ">=1.14.0"
onnxruntime-gpu = { version = ">=1.15.1" , platform = "linux" , markers = "platform_machine == 'x86_64'" }
pillow = "*"
protobuf = "*"
psutil = "*"
pyaudio = "*"
pycapnp = "*"
pycryptodome = "*"
pydub = "*"
PyJWT = "*"
pyopencl = "*"
pyserial = "*"
python-dateutil = "*"
PyYAML = "*"
pyzmq = "*"
requests = "*"
scons = "*"
sentry-sdk = "==1.28.1" # needs to be updated with AGNOS
setproctitle = "*"
smbus2 = "*"
sounddevice = "*"
spidev = { version = "*" , platform = "linux" }
spidev2 = { version = "*" , platform = "linux" }
sympy = "*"
timezonefinder = "*"
tqdm = "*"
urllib3 = "*"
utm = "*"
websocket_client = "*"
polyline = "*"
sconscontrib = { git = "https://github.com/SCons/scons-contrib.git" }
[ tool . poetry . group . dev . dependencies ]
av = "*"
azure-storage-blob = "~2.1"
breathe = "*"
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'" }
control = "*"
coverage = "*"
dictdiffer = "*"
fastcluster = "*"
ft4222 = "*"
hexdump = "*"
hypothesis = "==6.46.7"
inputs = "*"
lru-dict = "*"
lxml = "*"
markdown-it-py = "*"
matplotlib = "*"
mpld3 = "*"
mypy = "*"
myst-parser = "*"
natsort = "*"
opencv-python-headless = "*"
pandas = "*"
parameterized = "^0.8"
paramiko = "*"
pprofile = "*"
pre-commit = "*"
pycurl = "*"
pygame = "*"
pyprof2calltree = "*"
pytest = "*"
pytest-xdist = "*"
reverse_geocoder = "*"
scipy = "*"
sphinx = "*"
sphinx-rtd-theme = "*"
sphinx-sitemap = "*"
tabulate = "*"
tenacity = "*"
types-atomicwrites = "*"
types-certifi = "*"
types-pycurl = "*"
types-python-dateutil = "*"
types-PyYAML = "*"
types-requests = "*"
types-tabulate = "*"
[ build-system ]
requires = [ "poetry-core" ]
build-backend = "poetry.core.masonry.api"
# https://beta.ruff.rs/docs/configuration/#using-pyprojecttoml
[ tool . ruff ]
select = [ "E" , "F" , "W" , "PIE" , "C4" , "ISC" , "RUF100" , "A" , "B" ]
ignore = [ "W292" , "E741" , "E402" , "C408" , "ISC003" , "B027" , "B024" ]
line-length = 160
target-version = "py311"
exclude = [
"panda" ,
"opendbc" ,
"laika_repo" ,
"rednose_repo" ,
"tinygrad_repo" ,
"third_party" ,
]
flake8-implicit-str-concat . allow-multiline = false