Metadata-Version: 2.4
Name: pennylane-iqm
Version: 0.7.0
Summary: PennyLane device adapter for IQM quantum computers via iqm-client
Author-email: Jake Muff <jake.muff@vtt.fi>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/JMuff22/pennylane-iqm
Project-URL: Repository, https://github.com/JMuff22/pennylane-iqm
Project-URL: Issues, https://github.com/JMuff22/pennylane-iqm/issues
Project-URL: Changelog, https://github.com/JMuff22/pennylane-iqm/blob/main/CHANGELOG.md
Keywords: pennylane,iqm,quantum computing,quantum,qubit
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Typing :: Typed
Requires-Python: <3.13,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pennylane>=0.40
Requires-Dist: numpy>=2.0
Requires-Dist: iqm-client==34.0.3
Requires-Dist: rustworkx==0.17.1
Provides-Extra: pulla
Requires-Dist: iqm-pulla[notebook]==13.0.3; extra == "pulla"
Dynamic: license-file

# Pennylane IQM

Unofficial, experimental and partially vibe-coded connector for Pennylane to submit to IQM quantum computers.

This project tries to bridge the gap between Pennylane and IQM Client when writing and submitting Pennylane quantum circuits. It skips Qiskit and IQM Qiskit entirely, differentiating itself from the typical `pennylane → pennylane-qiskit → qiskit-iqm` flow.

## Installation

The package is not on PyPI yet. Install from a git checkout using [`uv`](https://docs.astral.sh/uv/):

```bash
uv pip install pennylane-iqm
```

Submit a circuit:

```python
import pennylane as qml
from pennylane_iqm import IQMDevice

dev = IQMDevice(server_url="<IQM_SERVER_URL>")  # token from $IQM_TOKEN

@qml.qnode(dev, shots=1024)
def bell():
    qml.Hadamard(0)
    qml.CNOT([0, 1])
    return qml.expval(qml.Z(0) @ qml.Z(1))

print(bell())
```

## Development

Python version `3.11` and `3.12` is supported but `3.11` is recommended to compatibility with IQM Client.

### Setup

```bash
uv sync --all-groups          # main + dev + docs
uv run pre-commit install     # enable formatting/linting on commit
```

All checks run through `tox`:

```bash
uv run tox -e ruff,pyrefly    # lint, format check, type check
uv run tox -e py311,py312     # unit tests on both Python versions
uv run tox                    # everything in env_list
```

### Release

To make a new release edit the `CHANGELOG.md`.
