Accelerator Terminal Client and Python API
This package provides:
- A command-line client (
accli) for interacting with the Accelerator. - A Python API via the
acclipackage.
Both interfaces communicate with the Accelerator’s REST API, implemented in the Control Services Backend.
🔐 Authentication
This client uses device authentication via Auth0.
- **OAuth Flow **: Device Authorization Flow
- Token Validity: 7 days
- Access Control: Role-Based Access Control (RBAC) with stateless tokens
- Grants: Limited and scoped
📖 User Guide
✅ Requirements
- Python >= 3.7.17
📦 Installation
Option 1: Standalone Binaries (Recommended)
No Python install required. Run the appropriate command for your system:
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/iiasa/accli/master/scripts/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/iiasa/accli/master/scripts/install.ps1 | iex
Option 2: Via PIP
pip install accli --user
▶️ Usage
As a Python Module
python -m accli
As an Executable
After installation, the executable might not be in your system PATH. You may see a warning like this:
WARNING: The script accli.exe is installed in 'C:\Users\<user>\AppData\Roaming\Python\Python311\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
To resolve this, add the script's path to your system's environment variables:
Note: On Linux/macOS, you may need to prefix the command with
./, and on Windows, with.\.
🔍 Help Command
accli --help
Sample Output:
Usage: accli [OPTIONS] COMMAND [ARGS]...
👩💻 Developer Guide
Handling self-signed certificates
- Copy and paste certificates from
<control_services_backend>/certs/ca.crtas./certs/dev-backend.crtand<accelerator_service>/minio_certs/ca.crtas./certs/dev-minio-ca.crt. - Run as Administrator
cd scripts .\import_certs_certutil.ps1
🛠 Build & Upload
Follow the official Python packaging tutorial:
Packaging Projects – Python.org
🚀 Release Process
-
Update the version in
accli/_version.py -
Tag the release:
python scripts/tag.py -
Build the package:
python -m build
-
Upload to PyPI:
twine upload -r pypi -u __token__ -p <password-or-token> ./dist/*
Metadata
Release files for accli 2.0.14
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| accli-2.0.14.tar.gz | 56.0 kB | Without provenance | Details for accli-2.0.14.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| accli-2.0.14-py3-none-any.whl | Python 3 | none | any | Details for accli-2.0.14-py3-none-any.whl |
Total release size: 113.3 kB
Release files / accli-2.0.14.tar.gz
| Download URL | accli-2.0.14.tar.gz |
|---|---|
| Size | 56.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c703fb569e7197b30ec64b25c60670dd78305a3112a48982ba3b07d04135797
|
|
BLAKE2b-256 checksum How to use checksums |
9cc36d8c9af4fc4f29dd3a3c80df699daf36b074ea6e6f4d6bd57fb7bb6ff29a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / accli-2.0.14-py3-none-any.whl
| Download URL | accli-2.0.14-py3-none-any.whl |
|---|---|
| Size | 57.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8e6cabf8b027279e220f6aa6ea028ae6a724ffe8a2086e5e3ba4ef2bf44b595d
|
|
BLAKE2b-256 checksum How to use checksums |
efa1daee5bba583a000b27664ef7067482c70eb23afeb6b9d3dce713e9edc3d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Security for accli 2.0.14
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.