Skip to content

Data tables ​

Some answers cannot come from PyPI alone: which CUDA a driver supports, which CUDA builds each torch release ships, which PyPI name an import belongs to. PyPilot keeps those in small JSON tables in helper/data/.

FileHoldsSource
nvidia.jsonCUDA version → minimum driver (Linux and Windows); GPU architecture → CUDA/torch rangeNVIDIA CUDA release notes (Table 3), CUDA GPUs
frameworks.jsontorch releases and their cuXXX builds; tensorflow releases and their minimum CUDAPyTorch previous versions, the PyTorch wheel indexes, TensorFlow GPU table
cuda_extensions.jsonflash-attn, xformers, bitsandbytes, mamba-ssm, causal-conv1d: wheel platforms and torch pin per releasePyPI JSON API (requires_dist)
import_map.jsonimport name → PyPI name where they differ (cv2 → opencv-python)each package's PyPI page
conda_forge_packages.json 1.3PyPI packages painful to build from source, their conda-forge build, and header/tool/library → conda-forge package names, for the pixi advisorygenerated by scripts/gen_conda_forge.py from prefix.dev and parselmouth

How they reach you ​

  • They are compiled into the engine, so an offline machine is never wrong, only possibly stale.
  • Every engine re-downloads them from main every data_refresh_days (default 7) from raw.githubusercontent.com/pypilot-dev/pypilot/main/helper/data/. A downloaded file that does not parse is ignored and the built-in copy is used.
  • pypilot update-data refreshes them now; data_refresh_days = 0 never does.
  • 1.3 pypilot update-data --check compares the copies in use with main without writing (exit 0 current, 1 stale, 2 a fetch failed); pypilot doctor and pypilot version show the refresh state offline. See Is the data current?

So a data change merged to main reaches every installed engine within about a week, without a release.

Compatibility rules ​

Because engines already in the field parse whatever is on main:

  • Only append rows or change values.
  • Never rename, remove or retype a field. New optional fields are fine; older engines ignore unknown fields.
  • Keep version strings in their existing format ("2.9.1", "cu130", "12.8").

python scripts/check_data.py reports whether the tables have fallen behind PyPI, the PyTorch indexes and NVIDIA's driver table, and compares each file's schema against the latest release tag. Exit 0 means current, 1 stale or a schema break, 2 a network error. See Contributing.

Engine: AGPL-3.0-or-later. Zed and VS Code extensions: Apache-2.0. pypilot-cli: AGPL-3.0-or-later.