Metadata-Version: 2.4
Name: aqdrop
Version: 0.0.6
Summary: Thin client SDK for AQDROP API
Author-email: Evan Caplinger <ecaplinger@lbl.gov>, Jan Balewski <balewski@lbl.gov>
License-Expression: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx>=0.28.1
Requires-Dist: tabulate>=0.10.0
Requires-Dist: qiskit[core]<3,>=2.3.1
Provides-Extra: qiskit
Requires-Dist: qiskit[core]<3,>=2.3.1; extra == "qiskit"
Dynamic: license-file

# AQDrop

AQDrop is the management system for interaction with the Advanced Quantum Testbed (AQT) at NERSC. It provides a centralized API for job submission, queue management, and member access control.

## Library and Client

The `aqdrop` Python library provides a programmatic interface to the API, allowing users to interact with the quantum testbed via Python scripts.

### Installation

The following command will install the AQDrop library, but will not install Qiskit.
```bash
pip install aqdrop
```

In order to submit Qiskit circuits, install Qiskit manually or include Qiskit in your AQDrop install (ensuring version compatibility) with the following command:
```bash
pip install aqdrop[qiskit]
```

### Basic Usage

See the "examples" directory for examples of basic job submission and retrieval.
```python
import aqdrop
import qiskit

# Initialize the client
client = aqdrop.AqdropClient()

# Submit a Qiskit job
qc = qiskit.QuantumCircuit(1)
qc.h(0)
qc.measure_all()
job = client.submit_qiskit("ideal", qc)
print(f"Job submitted with ID: {job.id}")

# Check job status
status = client.get_job(job_id=job.id)
print(f"Current status: {status.status}")
```

Note that the constructor for AqdropClient requires the user's credentials (including the API hostname). If any credentials are not provided explicitly in the constructor call, AQDrop will check the environment variables AQDROP_USERNAME, AQDROP_PASSWORD, and AQDROP_HOSTNAME.
