[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"