Files
panda/pyproject.toml
Adeeb Shihadeh dccfd6342d remove Dockerfile, use stock python:3.12 image in Jenkins
- Delete custom Dockerfile (was ubuntu:24.04 based)
- Use Jenkins agent { docker } with stock python:3.12 image
- Remove apt/platform detection from setup.sh (python:3.12 has gcc, git, curl)
- Fix deprecated license format in pyproject.toml
- Use reuseNode to share workspace, chmod cleanup for root-owned files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:29:34 -08:00

74 lines
1.9 KiB
TOML

[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 = "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/"
]