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/.
| File | Holds | Source |
|---|---|---|
nvidia.json | CUDA version → minimum driver (Linux and Windows); GPU architecture → CUDA/torch range | NVIDIA CUDA release notes (Table 3), CUDA GPUs |
frameworks.json | torch releases and their cuXXX builds; tensorflow releases and their minimum CUDA | PyTorch previous versions, the PyTorch wheel indexes, TensorFlow GPU table |
cuda_extensions.json | flash-attn, xformers, bitsandbytes, mamba-ssm, causal-conv1d: wheel platforms and torch pin per release | PyPI JSON API (requires_dist) |
import_map.json | import name → PyPI name where they differ (cv2 → opencv-python) | each package's PyPI page |
conda_forge_packages.json 1.3 | PyPI packages painful to build from source, their conda-forge build, and header/tool/library → conda-forge package names, for the pixi advisory | generated 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
maineverydata_refresh_days(default 7) fromraw.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-datarefreshes them now;data_refresh_days = 0never does.- 1.3
pypilot update-data --checkcompares the copies in use withmainwithout writing (exit0current,1stale,2a fetch failed);pypilot doctorandpypilot versionshow 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.
