Files
Zeph Leggett de40ad2ff1 Jetlink d24328d
Vendor only the comma payload jetlink commits to (jetlink/, LICENSE,
pyproject.toml, README.md) with an include list, so the exclude list goes
and upstream's README stays as published; StarPilot's notes live in
JETLINK.md. The root helper now ships inside the package.

The adapter moves to API 3 in the next commit; until then Jetlink stays
off.

d24328d stands in for the jetlink release tag commit: re-run
tools/vendor/sync.py jetlink_repo <tag commit> --apply before merging and
update the revision in CREDITS.md and JETLINK.md with it.
2026-10-18 16:18:37 -05:00

67 lines
2.1 KiB
TOML

[build-system]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"
[project]
name = "jetlink"
# jetlink.__version__: the comma runs from a checkout and reads it there, and
# the Swift server has it from Pinned.swift
dynamic = ["version"]
description = "The comma side of jetlink: openpilot's large driving models on an attached Jetson, Mac or phone"
readme = "README.md"
license = { file = "LICENSE" }
authors = [{ name = "Zeph Leggett" }]
requires-python = ">=3.10"
# numpy only: this is what the comma runs, from a checkout. The server is the
# Swift jetlink-server (JetlinkKit).
dependencies = ["numpy>=1.24"]
[project.optional-dependencies]
# The tests, and the conformance generators (onnx builds and reads the tiny
# graphs; JetlinkKit/Scripts/fixture-pins.txt names the releases).
dev = ["pytest>=7", "ruff", "onnx>=1.16"]
[tool.setuptools.packages.find]
include = ["jetlink*"]
# The root script the comma runs (jetlink/comma/root.py), so a wheel has it too
[tool.setuptools.package-data]
"jetlink.comma" = ["jetlink-root.sh"]
[tool.setuptools.dynamic]
version = { attr = "jetlink.__version__" }
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = ["real_aio: uses Linux AIO itself, not tests/aio_fakes.FakeAio"]
# The fork's rule set (sunnypilot's pyproject.toml), so code moves between the
# two without reformatting, with two differences the fork does not allow:
# strings may be implicitly concatenated across lines, and E402 stays on so the
# `# noqa: E402` under every importorskip in tests/ means something.
[tool.ruff]
target-version = "py310"
line-length = 160
indent-width = 2
lint.select = [
"E", "F", "W", "PIE", "C4", "ISC", "A", "B",
"NPY",
"UP",
"ASYNC",
"B904", "B905",
"PLC0207",
"TRY203", "TRY400", "TRY401",
"RUF006", "RUF008", "RUF009", "RUF061", "RUF064", "RUF100", "RUF102", "RUF103", "RUF104",
"PLE", "PLR1704",
]
lint.ignore = [
"E741",
"B027",
# A failure the comma expects (the root script timing out or not running)
# is logged with its message; a traceback there is noise.
"TRY400",
]
[tool.ruff.format]
quote-style = "preserve"