AI-Beamline-Controller
Ai-driven autonomous beamline controller
pip install aps-ai-beamline-controller detects the installing machine's NVIDIA driver and
pulls the matching torch / torchvision / torchaudio build, plus ax-platform.
No --index-url needed by the user.
How it works
Dependencies are declared dynamic (PEP 643), so they are computed when the
user's pip builds the wheel locally from the sdist. At that point
setup.py:
- runs
nvidia-smito read the host's max CUDA version, - maps it to a
(torch release, CUDA build)tier, - queries the PyTorch index and finds the exact wheel URLs matching the running interpreter's tags,
- emits them as PEP 508 direct-reference requirements (
torch @ https://...).
pip then downloads those exact wheels.
Tier map (edit TIERS in setup.py to change):
| driver CUDA | torch | build |
|---|---|---|
| ≥ 13.0 | 2.12.1 | cu130 |
| 12.8–12.9 | 2.11.0 | cu128 |
| 12.6–12.7 | 2.12.1 | cu126 |
| 12.4–12.5 | 2.6.0 | cu124 |
| 11.8–12.3 | 2.6.0 | cu118 |
| none/older | 2.12.1 | cpu |
Publishing — sdist ONLY
This is the load-bearing rule. If a wheel is on PyPI, pip installs it and the detection never runs. Build and upload only the sdist:
python -m build --sdist # produces dist/*.tar.gz only
twine upload dist/*.tar.gz # do NOT upload any .whl
The uploaded sdist's metadata says dynamic = ["dependencies"] (no direct
URLs), so PyPI accepts it. The direct URLs exist only in the wheel each user
builds locally, which PyPI never sees.
Metadata
Release files for aps-ai-beamline-controller 0.0.100
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aps_ai_beamline_controller-0.0.100.tar.gz | 150.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aps_ai_beamline_controller-0.0.100-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 435.3 kB
Release files / aps_ai_beamline_controller-0.0.100.tar.gz
| Download URL | aps_ai_beamline_controller-0.0.100.tar.gz |
|---|---|
| Size | 150.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a762d39a85faee3b24db1e0e1da5fc21b9154fb02d18673bdf2003ce8cd0c04
|
|
BLAKE2b-256 checksum How to use checksums |
1dbf97a6238b63d4f5d3f7054ede5ce2ce07d8bafe307296be1ccf88ed9bf9f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / aps_ai_beamline_controller-0.0.100-py3-none-any.whl
| Download URL | aps_ai_beamline_controller-0.0.100-py3-none-any.whl |
|---|---|
| Size | 284.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f302be353197d6021360b587acdd04c22ce504391c4cf1ebc6d003ea40481b19
|
|
BLAKE2b-256 checksum How to use checksums |
58eeebff4b57510533f65d34ae105daea9c9d15f6e877f5b54bdf6d8e5936494
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|