Installation ============ From PyPI: .. code-block:: bash pip install mimiq-qiskit From source: .. code-block:: bash git clone https://github.com/qperfect-io/mimiq-qiskit.git cd mimiq-qiskit uv sync Runtime dependencies: - Python >= 3.10 - `mimiqcircuits `_ >= 0.26.7, < 0.28 - `qiskit `_ >= 2.0, < 3 - numpy >= 1.26, < 3 Each upper bound sits at the next version semantic versioning allows a breaking change in, so an incompatible release fails to install rather than failing at runtime. For a ``0.y.z`` dependency such as ``mimiqcircuits`` that boundary is the minor, since 0.x promises nothing across minors — and it has been a real break: 0.26.7 changed ``GateCustom.matrix`` from an attribute back into a method in a *patch* release. The ``mimiqcircuits`` range covers two minors because the suite runs against both. 0.27's one new operation, ``GateCustomDiagonal``, needs nothing here: it is a unitary, so :func:`~mimiq_qiskit.mimiq_to_qiskit` picks it up through the matrix fallback described in :doc:`conversion`. Bounds widen only once the test suite has run against the new version, so a release that raises one says so in the changelog. To try an unreleased ``mimiqcircuits`` against this package, override the constraint locally: .. code-block:: bash uv add --editable ../mimiqcircuits-python Running circuits locally ------------------------ The MIMIQ cloud is one execution target; the other is any local ``mimiqcircuits`` backend. `mimiq-exaqt `_ is a state-vector simulator published on PyPI, so it needs no credentials: .. code-block:: bash pip install mimiq-exaqt It is also what this project's own test suite simulates against, and is installed by ``uv sync`` as part of the dev dependency group. Tests that need it skip themselves when it is missing.