[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.mypy] python_version = "3.11" plugins = [ "numpy.typing.mypy_plugin", ] exclude = [ "body/", "cereal/", "opendbc/", "panda/", "laika/", "laika_repo/", "rednose/", "rednose_repo/", "tinygrad/", "tinygrad_repo/", "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 [tool.poetry] name = "openpilot" version = "0.1.0" description = "an open source driver assistance system" authors = ["Vehicle Researcher "] license = "MIT" readme = "README.md" repository = "https://github.com/commaai/openpilot" documentation = "https://docs.comma.ai" [tool.poetry.dependencies] python = "~3.11" atomicwrites = "*" aiohttp = "*" aiortc = "*" casadi = "==3.6.3" cffi = "*" control = "*" crcmod = "*" cryptography = "*" Cython = "*" future-fstrings = "*" # for acados hatanaka = "==2.4" hexdump = "*" Jinja2 = "*" json-rpc = "*" libusb1 = "*" numpy = "*" onnx = ">=1.14.0" onnxruntime-gpu = { version = ">=1.15.1", platform = "linux", markers = "platform_machine == 'x86_64'" } pillow = "*" psutil = "*" pyaudio = "*" pycapnp = "*" pycryptodome = "*" pydub = "*" PyJWT = "*" pyopencl = "*" pyserial = "*" 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 = "*" websocket_client = "*" polyline = "*" sconscontrib = {git = "https://github.com/SCons/scons-contrib.git"} [tool.poetry.group.dev.dependencies] av = "*" azure-identity = "*" azure-storage-blob = "*" 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'" } coverage = "*" dictdiffer = "*" ft4222 = "*" hypothesis = "==6.46.7" inputs = "*" lru-dict = "*" markdown-it-py = "*" matplotlib = "*" mpld3 = "*" mypy = "*" myst-parser = "*" natsort = "*" opencv-python-headless = "*" pandas = "*" parameterized = "^0.8" pprofile = "*" pre-commit = "*" pycurl = "*" pygame = "*" pyprof2calltree = "*" pytest = "*" pytest-cov = "*" pytest-subtests = "*" pytest-xdist = "*" scipy = "*" sphinx = "*" sphinx-rtd-theme = "*" sphinx-sitemap = "*" tabulate = "*" tenacity = "*" types-atomicwrites = "*" types-certifi = "*" types-pycurl = "*" types-PyYAML = "*" types-requests = "*" types-tabulate = "*" pyqt5 = { version = "*", markers = "platform_machine == 'x86_64'" } # no aarch64 wheels for macOS/linux [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