[project] name = "pandacan" version = "0.0.10" description = "Code powering the comma.ai panda" readme = "README.md" requires-python = ">=3.11,<3.13" # macOS doesn't work with 3.13 due to pycapnp from opendbc license = {text = "MIT"} authors = [{name = "comma.ai"}] classifiers = [ "Natural Language :: English", "Programming Language :: Python :: 3", "Topic :: System :: Hardware", ] dependencies = [ "libusb1", "libusb-package", "opendbc @ git+https://github.com/commaai/opendbc.git@master#egg=opendbc", # runtime dependency on comma four #"spidev; platform_system == 'Linux'", ] [project.optional-dependencies] dev = [ "scons", "pycryptodome >= 3.9.8", "cffi", "flaky", "pytest", "pytest-xdist", "pytest-mock", "pytest-timeout", "ruff", "setuptools", "gcc-arm-none-eabi @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=gcc-arm-none-eabi", "cppcheck @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=cppcheck", ] [build-system] requires = ["setuptools>=61", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools] packages = [ "panda", "panda.python", "panda.board", "panda.board.body", "panda.board.jungle", ] [tool.setuptools.package-dir] panda = "." # https://beta.ruff.rs/docs/configuration/#using-pyprojecttoml [tool.ruff] line-length = 160 target-version="py311" [tool.ruff.lint] select = ["E", "F", "W", "PIE", "C4", "ISC", "RUF100", "A"] ignore = ["W292", "E741", "E402", "C408", "ISC003"] 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!" [tool.pytest.ini_options] addopts = "-Werror --strict-config --strict-markers --maxprocesses=8 -nauto --durations=10 --ignore-glob='*.sh' --ignore=tests/som --ignore=tests/hitl" python_files = "test_*.py" testpaths = [ "tests/" ]