Metadata-Version: 2.4
Name: iqm-client
Version: 35.0.0
Summary: Client library for accessing an IQM quantum computer
Project-URL: Documentation, https://docs.iqm.tech/iqm-client/
Project-URL: Homepage, https://pypi.org/project/iqm-client/
Author-email: IQM Finland Oy <developers@iqm.tech>
License-Expression: Apache-2.0
License-File: LICENSE.txt
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: <3.15,>=3.11
Requires-Dist: iqm-pulse
Requires-Dist: iqm-station-control-client
Requires-Dist: numpy<3,>=2.1
Requires-Dist: packaging<25,>=24.0
Requires-Dist: pydantic<2.13.0,>=2.12.4
Requires-Dist: requests<3,>=2.32.3
Provides-Extra: cirq
Requires-Dist: cirq-core[contrib]~=1.2; extra == 'cirq'
Requires-Dist: llvmlite<0.47,>=0.44.0; extra == 'cirq'
Requires-Dist: numba<0.64,>=0.61.0; extra == 'cirq'
Requires-Dist: ply==3.11; extra == 'cirq'
Provides-Extra: qiskit
Requires-Dist: qiskit-aer<0.18,>=0.13.1; extra == 'qiskit'
Requires-Dist: qiskit<2.2,>=1.0; extra == 'qiskit'
Provides-Extra: qrisp
Requires-Dist: pymatching<3,>=2.3.1; extra == 'qrisp'
Requires-Dist: qrisp<0.10,>=0.9.5; extra == 'qrisp'
Requires-Dist: stim<2,>=1.16; extra == 'qrisp'
Provides-Extra: cirq-pin-all
Provides-Extra: cirq-pin-iqm
Provides-Extra: pin-all
Provides-Extra: pin-iqm
Provides-Extra: qiskit-pin-all
Provides-Extra: qiskit-pin-iqm
Provides-Extra: qrisp-pin-all
Provides-Extra: qrisp-pin-iqm
Requires-Dist: annotated-types==0.7.0; extra == "cirq-pin-all"
Requires-Dist: attrs==22.2.0; extra == "cirq-pin-all"
Requires-Dist: autoray==0.8.4; extra == "cirq-pin-all"
Requires-Dist: certifi==2026.1.4; extra == "cirq-pin-all"
Requires-Dist: charset-normalizer==3.4.4; extra == "cirq-pin-all"
Requires-Dist: cirq-core==1.5.0; extra == "cirq-pin-all"
Requires-Dist: colorama==0.4.6; (sys_platform == 'win32') and extra == "cirq-pin-all"
Requires-Dist: contourpy==1.3.3; extra == "cirq-pin-all"
Requires-Dist: cotengra==0.7.5; extra == "cirq-pin-all"
Requires-Dist: cycler==0.12.1; extra == "cirq-pin-all"
Requires-Dist: cytoolz==1.1.0; extra == "cirq-pin-all"
Requires-Dist: duet==0.2.9; extra == "cirq-pin-all"
Requires-Dist: fonttools==4.61.1; extra == "cirq-pin-all"
Requires-Dist: googleapis-common-protos==1.72.0; extra == "cirq-pin-all"
Requires-Dist: grpcio==1.76.0; extra == "cirq-pin-all"
Requires-Dist: idna==3.11; extra == "cirq-pin-all"
Requires-Dist: importlib-metadata==7.1.0; extra == "cirq-pin-all"
Requires-Dist: iqm-data-definitions==2.24; extra == "cirq-pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "cirq-pin-all"
Requires-Dist: iqm-pulse==14.0.0; extra == "cirq-pin-all"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "cirq-pin-all"
Requires-Dist: jinja2==3.1.6; extra == "cirq-pin-all"
Requires-Dist: kiwisolver==1.4.9; extra == "cirq-pin-all"
Requires-Dist: llvmlite==0.46.0; extra == "cirq-pin-all"
Requires-Dist: markupsafe==3.0.3; extra == "cirq-pin-all"
Requires-Dist: matplotlib==3.10.8; extra == "cirq-pin-all"
Requires-Dist: mpmath==1.3.0; extra == "cirq-pin-all"
Requires-Dist: networkx==3.3; extra == "cirq-pin-all"
Requires-Dist: numba==0.63.1; extra == "cirq-pin-all"
Requires-Dist: numpy==2.3.5; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-api==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-exporter-otlp==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-proto==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-sdk==1.40.0; extra == "cirq-pin-all"
Requires-Dist: opentelemetry-semantic-conventions==0.61b0; extra == "cirq-pin-all"
Requires-Dist: opt-einsum==3.4.0; extra == "cirq-pin-all"
Requires-Dist: optype==0.15.0; extra == "cirq-pin-all"
Requires-Dist: ordered-set==4.1.0; extra == "cirq-pin-all"
Requires-Dist: packaging==24.2; extra == "cirq-pin-all"
Requires-Dist: pandas==2.3.3; extra == "cirq-pin-all"
Requires-Dist: pillow==12.1.0; extra == "cirq-pin-all"
Requires-Dist: ply==3.11; extra == "cirq-pin-all"
Requires-Dist: protobuf==6.33.6; extra == "cirq-pin-all"
Requires-Dist: psutil==7.2.2; extra == "cirq-pin-all"
Requires-Dist: pydantic==2.12.5; extra == "cirq-pin-all"
Requires-Dist: pydantic-core==2.41.5; extra == "cirq-pin-all"
Requires-Dist: pylatex==1.4.2; extra == "cirq-pin-all"
Requires-Dist: pyparsing==3.3.2; extra == "cirq-pin-all"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "cirq-pin-all"
Requires-Dist: python-dotenv==1.2.2; extra == "cirq-pin-all"
Requires-Dist: python-rapidjson==1.20; extra == "cirq-pin-all"
Requires-Dist: pytz==2024.1; extra == "cirq-pin-all"
Requires-Dist: pyyaml==6.0.2; extra == "cirq-pin-all"
Requires-Dist: quimb==1.12.1; extra == "cirq-pin-all"
Requires-Dist: requests==2.32.3; extra == "cirq-pin-all"
Requires-Dist: ruamel-yaml==0.17.32; extra == "cirq-pin-all"
Requires-Dist: ruamel-yaml-clib==0.2.11; (python_full_version < '3.12' and platform_python_implementation == 'CPython') and extra == "cirq-pin-all"
Requires-Dist: scipy==1.17.0; extra == "cirq-pin-all"
Requires-Dist: scipy-stubs==1.16.0.0; extra == "cirq-pin-all"
Requires-Dist: six==1.16.0; extra == "cirq-pin-all"
Requires-Dist: sortedcontainers==2.4.0; extra == "cirq-pin-all"
Requires-Dist: sympy==1.12; extra == "cirq-pin-all"
Requires-Dist: toolz==1.1.0; extra == "cirq-pin-all"
Requires-Dist: tqdm==4.67.2; extra == "cirq-pin-all"
Requires-Dist: types-protobuf==6.32.1.20251210; extra == "cirq-pin-all"
Requires-Dist: types-requests==2.32.4.20260107; extra == "cirq-pin-all"
Requires-Dist: types-six==1.17.0.20251009; extra == "cirq-pin-all"
Requires-Dist: types-tqdm==4.67.2.20260202; extra == "cirq-pin-all"
Requires-Dist: typing-extensions==4.15.0; extra == "cirq-pin-all"
Requires-Dist: typing-inspection==0.4.2; extra == "cirq-pin-all"
Requires-Dist: tzdata==2025.3; extra == "cirq-pin-all"
Requires-Dist: urllib3==2.6.3; extra == "cirq-pin-all"
Requires-Dist: xarray==2024.10.0; extra == "cirq-pin-all"
Requires-Dist: zipp==3.23.0; extra == "cirq-pin-all"
Requires-Dist: cirq-core[contrib]~=1.2; extra == "cirq-pin-iqm"
Requires-Dist: iqm-exa-common==28.0.0; extra == "cirq-pin-iqm"
Requires-Dist: iqm-pulse==14.0.0; extra == "cirq-pin-iqm"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "cirq-pin-iqm"
Requires-Dist: llvmlite<0.47,>=0.44.0; extra == "cirq-pin-iqm"
Requires-Dist: numba<0.64,>=0.61.0; extra == "cirq-pin-iqm"
Requires-Dist: ply==3.11; extra == "cirq-pin-iqm"
Requires-Dist: annotated-types==0.7.0; extra == "pin-all"
Requires-Dist: certifi==2026.1.4; extra == "pin-all"
Requires-Dist: charset-normalizer==3.4.4; extra == "pin-all"
Requires-Dist: colorama==0.4.6; (sys_platform == 'win32') and extra == "pin-all"
Requires-Dist: googleapis-common-protos==1.72.0; extra == "pin-all"
Requires-Dist: grpcio==1.76.0; extra == "pin-all"
Requires-Dist: idna==3.11; extra == "pin-all"
Requires-Dist: importlib-metadata==7.1.0; extra == "pin-all"
Requires-Dist: iqm-data-definitions==2.24; extra == "pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "pin-all"
Requires-Dist: iqm-pulse==14.0.0; extra == "pin-all"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "pin-all"
Requires-Dist: jinja2==3.1.6; extra == "pin-all"
Requires-Dist: markupsafe==3.0.3; extra == "pin-all"
Requires-Dist: numpy==2.3.5; extra == "pin-all"
Requires-Dist: opentelemetry-api==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-exporter-otlp==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-proto==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-sdk==1.40.0; extra == "pin-all"
Requires-Dist: opentelemetry-semantic-conventions==0.61b0; extra == "pin-all"
Requires-Dist: optype==0.15.0; extra == "pin-all"
Requires-Dist: packaging==24.2; extra == "pin-all"
Requires-Dist: pandas==2.3.3; extra == "pin-all"
Requires-Dist: protobuf==6.33.6; extra == "pin-all"
Requires-Dist: pydantic==2.12.5; extra == "pin-all"
Requires-Dist: pydantic-core==2.41.5; extra == "pin-all"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "pin-all"
Requires-Dist: python-dotenv==1.2.2; extra == "pin-all"
Requires-Dist: python-rapidjson==1.20; extra == "pin-all"
Requires-Dist: pytz==2024.1; extra == "pin-all"
Requires-Dist: pyyaml==6.0.2; extra == "pin-all"
Requires-Dist: requests==2.32.3; extra == "pin-all"
Requires-Dist: ruamel-yaml==0.17.32; extra == "pin-all"
Requires-Dist: ruamel-yaml-clib==0.2.11; (python_full_version < '3.12' and platform_python_implementation == 'CPython') and extra == "pin-all"
Requires-Dist: scipy==1.17.0; extra == "pin-all"
Requires-Dist: scipy-stubs==1.16.0.0; extra == "pin-all"
Requires-Dist: six==1.16.0; extra == "pin-all"
Requires-Dist: tqdm==4.67.2; extra == "pin-all"
Requires-Dist: types-protobuf==6.32.1.20251210; extra == "pin-all"
Requires-Dist: types-requests==2.32.4.20260107; extra == "pin-all"
Requires-Dist: types-six==1.17.0.20251009; extra == "pin-all"
Requires-Dist: types-tqdm==4.67.2.20260202; extra == "pin-all"
Requires-Dist: typing-extensions==4.15.0; extra == "pin-all"
Requires-Dist: typing-inspection==0.4.2; extra == "pin-all"
Requires-Dist: tzdata==2025.3; extra == "pin-all"
Requires-Dist: urllib3==2.6.3; extra == "pin-all"
Requires-Dist: xarray==2024.10.0; extra == "pin-all"
Requires-Dist: zipp==3.23.0; extra == "pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "pin-iqm"
Requires-Dist: iqm-pulse==14.0.0; extra == "pin-iqm"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "pin-iqm"
Requires-Dist: annotated-types==0.7.0; extra == "qiskit-pin-all"
Requires-Dist: certifi==2026.1.4; extra == "qiskit-pin-all"
Requires-Dist: charset-normalizer==3.4.4; extra == "qiskit-pin-all"
Requires-Dist: colorama==0.4.6; (sys_platform == 'win32') and extra == "qiskit-pin-all"
Requires-Dist: dill==0.4.1; extra == "qiskit-pin-all"
Requires-Dist: googleapis-common-protos==1.72.0; extra == "qiskit-pin-all"
Requires-Dist: grpcio==1.76.0; extra == "qiskit-pin-all"
Requires-Dist: idna==3.11; extra == "qiskit-pin-all"
Requires-Dist: importlib-metadata==7.1.0; extra == "qiskit-pin-all"
Requires-Dist: iqm-data-definitions==2.24; extra == "qiskit-pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "qiskit-pin-all"
Requires-Dist: iqm-pulse==14.0.0; extra == "qiskit-pin-all"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "qiskit-pin-all"
Requires-Dist: jinja2==3.1.6; extra == "qiskit-pin-all"
Requires-Dist: markupsafe==3.0.3; extra == "qiskit-pin-all"
Requires-Dist: numpy==2.3.5; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-api==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-exporter-otlp==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-proto==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-sdk==1.40.0; extra == "qiskit-pin-all"
Requires-Dist: opentelemetry-semantic-conventions==0.61b0; extra == "qiskit-pin-all"
Requires-Dist: optype==0.15.0; extra == "qiskit-pin-all"
Requires-Dist: packaging==24.2; extra == "qiskit-pin-all"
Requires-Dist: pandas==2.3.3; extra == "qiskit-pin-all"
Requires-Dist: protobuf==6.33.6; extra == "qiskit-pin-all"
Requires-Dist: psutil==7.2.2; extra == "qiskit-pin-all"
Requires-Dist: pydantic==2.12.5; extra == "qiskit-pin-all"
Requires-Dist: pydantic-core==2.41.5; extra == "qiskit-pin-all"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "qiskit-pin-all"
Requires-Dist: python-dotenv==1.2.2; extra == "qiskit-pin-all"
Requires-Dist: python-rapidjson==1.20; extra == "qiskit-pin-all"
Requires-Dist: pytz==2024.1; extra == "qiskit-pin-all"
Requires-Dist: pyyaml==6.0.2; extra == "qiskit-pin-all"
Requires-Dist: qiskit==2.1.2; extra == "qiskit-pin-all"
Requires-Dist: qiskit-aer==0.17.2; extra == "qiskit-pin-all"
Requires-Dist: requests==2.32.3; extra == "qiskit-pin-all"
Requires-Dist: ruamel-yaml==0.17.32; extra == "qiskit-pin-all"
Requires-Dist: ruamel-yaml-clib==0.2.11; (python_full_version < '3.12' and platform_python_implementation == 'CPython') and extra == "qiskit-pin-all"
Requires-Dist: rustworkx==0.17.1; extra == "qiskit-pin-all"
Requires-Dist: scipy==1.17.0; extra == "qiskit-pin-all"
Requires-Dist: scipy-stubs==1.16.0.0; extra == "qiskit-pin-all"
Requires-Dist: six==1.16.0; extra == "qiskit-pin-all"
Requires-Dist: stevedore==5.6.0; extra == "qiskit-pin-all"
Requires-Dist: tqdm==4.67.2; extra == "qiskit-pin-all"
Requires-Dist: types-protobuf==6.32.1.20251210; extra == "qiskit-pin-all"
Requires-Dist: types-requests==2.32.4.20260107; extra == "qiskit-pin-all"
Requires-Dist: types-six==1.17.0.20251009; extra == "qiskit-pin-all"
Requires-Dist: types-tqdm==4.67.2.20260202; extra == "qiskit-pin-all"
Requires-Dist: typing-extensions==4.15.0; extra == "qiskit-pin-all"
Requires-Dist: typing-inspection==0.4.2; extra == "qiskit-pin-all"
Requires-Dist: tzdata==2025.3; extra == "qiskit-pin-all"
Requires-Dist: urllib3==2.6.3; extra == "qiskit-pin-all"
Requires-Dist: xarray==2024.10.0; extra == "qiskit-pin-all"
Requires-Dist: zipp==3.23.0; extra == "qiskit-pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "qiskit-pin-iqm"
Requires-Dist: iqm-pulse==14.0.0; extra == "qiskit-pin-iqm"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "qiskit-pin-iqm"
Requires-Dist: qiskit-aer<0.18,>=0.13.1; extra == "qiskit-pin-iqm"
Requires-Dist: qiskit<2.2,>=1.0; extra == "qiskit-pin-iqm"
Requires-Dist: annotated-types==0.7.0; extra == "qrisp-pin-all"
Requires-Dist: certifi==2026.1.4; extra == "qrisp-pin-all"
Requires-Dist: charset-normalizer==3.4.4; extra == "qrisp-pin-all"
Requires-Dist: colorama==0.4.6; (sys_platform == 'win32') and extra == "qrisp-pin-all"
Requires-Dist: contourpy==1.3.3; extra == "qrisp-pin-all"
Requires-Dist: cycler==0.12.1; extra == "qrisp-pin-all"
Requires-Dist: dill==0.4.1; extra == "qrisp-pin-all"
Requires-Dist: fonttools==4.61.1; extra == "qrisp-pin-all"
Requires-Dist: googleapis-common-protos==1.72.0; extra == "qrisp-pin-all"
Requires-Dist: grpcio==1.76.0; extra == "qrisp-pin-all"
Requires-Dist: idna==3.11; extra == "qrisp-pin-all"
Requires-Dist: importlib-metadata==7.1.0; extra == "qrisp-pin-all"
Requires-Dist: iqm-data-definitions==2.24; extra == "qrisp-pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "qrisp-pin-all"
Requires-Dist: iqm-pulse==14.0.0; extra == "qrisp-pin-all"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "qrisp-pin-all"
Requires-Dist: jax==0.7.1; extra == "qrisp-pin-all"
Requires-Dist: jaxlib==0.7.1; extra == "qrisp-pin-all"
Requires-Dist: jinja2==3.1.6; extra == "qrisp-pin-all"
Requires-Dist: kiwisolver==1.4.9; extra == "qrisp-pin-all"
Requires-Dist: llvmlite==0.46.0; extra == "qrisp-pin-all"
Requires-Dist: markupsafe==3.0.3; extra == "qrisp-pin-all"
Requires-Dist: matplotlib==3.10.8; extra == "qrisp-pin-all"
Requires-Dist: ml-dtypes==0.5.4; extra == "qrisp-pin-all"
Requires-Dist: mpmath==1.3.0; extra == "qrisp-pin-all"
Requires-Dist: networkx==3.3; extra == "qrisp-pin-all"
Requires-Dist: numba==0.63.1; extra == "qrisp-pin-all"
Requires-Dist: numpy==2.3.5; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-api==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-exporter-otlp==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-common==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-exporter-otlp-proto-http==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-proto==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-sdk==1.40.0; extra == "qrisp-pin-all"
Requires-Dist: opentelemetry-semantic-conventions==0.61b0; extra == "qrisp-pin-all"
Requires-Dist: opt-einsum==3.4.0; extra == "qrisp-pin-all"
Requires-Dist: optype==0.15.0; extra == "qrisp-pin-all"
Requires-Dist: packaging==24.2; extra == "qrisp-pin-all"
Requires-Dist: pandas==2.3.3; extra == "qrisp-pin-all"
Requires-Dist: pillow==12.1.0; extra == "qrisp-pin-all"
Requires-Dist: protobuf==6.33.6; extra == "qrisp-pin-all"
Requires-Dist: psutil==7.2.2; extra == "qrisp-pin-all"
Requires-Dist: pydantic==2.12.5; extra == "qrisp-pin-all"
Requires-Dist: pydantic-core==2.41.5; extra == "qrisp-pin-all"
Requires-Dist: pymatching==2.3.1; extra == "qrisp-pin-all"
Requires-Dist: pyparsing==3.3.2; extra == "qrisp-pin-all"
Requires-Dist: python-dateutil==2.9.0.post0; extra == "qrisp-pin-all"
Requires-Dist: python-dotenv==1.2.2; extra == "qrisp-pin-all"
Requires-Dist: python-rapidjson==1.20; extra == "qrisp-pin-all"
Requires-Dist: pytz==2024.1; extra == "qrisp-pin-all"
Requires-Dist: pyyaml==6.0.2; extra == "qrisp-pin-all"
Requires-Dist: qiskit==2.1.2; extra == "qrisp-pin-all"
Requires-Dist: qrisp==0.9.5; extra == "qrisp-pin-all"
Requires-Dist: requests==2.32.3; extra == "qrisp-pin-all"
Requires-Dist: ruamel-yaml==0.17.32; extra == "qrisp-pin-all"
Requires-Dist: ruamel-yaml-clib==0.2.11; (python_full_version < '3.12' and platform_python_implementation == 'CPython') and extra == "qrisp-pin-all"
Requires-Dist: rustworkx==0.17.1; extra == "qrisp-pin-all"
Requires-Dist: scipy==1.17.0; extra == "qrisp-pin-all"
Requires-Dist: scipy-stubs==1.16.0.0; extra == "qrisp-pin-all"
Requires-Dist: six==1.16.0; extra == "qrisp-pin-all"
Requires-Dist: stevedore==5.6.0; extra == "qrisp-pin-all"
Requires-Dist: stim==1.16.0; extra == "qrisp-pin-all"
Requires-Dist: sympy==1.12; extra == "qrisp-pin-all"
Requires-Dist: tqdm==4.67.2; extra == "qrisp-pin-all"
Requires-Dist: types-protobuf==6.32.1.20251210; extra == "qrisp-pin-all"
Requires-Dist: types-requests==2.32.4.20260107; extra == "qrisp-pin-all"
Requires-Dist: types-six==1.17.0.20251009; extra == "qrisp-pin-all"
Requires-Dist: types-tqdm==4.67.2.20260202; extra == "qrisp-pin-all"
Requires-Dist: typing-extensions==4.15.0; extra == "qrisp-pin-all"
Requires-Dist: typing-inspection==0.4.2; extra == "qrisp-pin-all"
Requires-Dist: tzdata==2025.3; extra == "qrisp-pin-all"
Requires-Dist: urllib3==2.6.3; extra == "qrisp-pin-all"
Requires-Dist: xarray==2024.10.0; extra == "qrisp-pin-all"
Requires-Dist: zipp==3.23.0; extra == "qrisp-pin-all"
Requires-Dist: iqm-exa-common==28.0.0; extra == "qrisp-pin-iqm"
Requires-Dist: iqm-pulse==14.0.0; extra == "qrisp-pin-iqm"
Requires-Dist: iqm-station-control-client==13.0.0; extra == "qrisp-pin-iqm"
Requires-Dist: pymatching<3,>=2.3.1; extra == "qrisp-pin-iqm"
Requires-Dist: qrisp<0.10,>=0.9.5; extra == "qrisp-pin-iqm"
Requires-Dist: stim<2,>=1.16; extra == "qrisp-pin-iqm"
Description-Content-Type: text/markdown

# IQM Client

Client-side Python library for connecting to an [IQM](https://iqm.tech/)
quantum computer.

Includes as an optional feature [Qiskit](https://qiskit.org/) and
[Cirq](https://quantumai.google/cirq)
adapters for IQM's quantum computers, which allow you to:

- Transpile arbitrary quantum circuits for IQM quantum architectures
- Simulate execution on IQM quantum architectures with IQM-specific noise models
  (currently only the Qiskit adapter contains IQM noise models)
- Run quantum circuits on an IQM quantum computer

## Migration from legacy packages

If you have previously installed the (now obsolete) `qiskit-iqm`
or `cirq-iqm` packages in your Python environment, you should first
uninstall them:

```bash
uv pip uninstall qiskit-iqm cirq-iqm
```

Then reinstall `iqm-client` with the `--force-reinstall` option to ensure
a clean state:

```bash
uv pip install --force-reinstall "iqm-client[qiskit,cirq]"
```

## Installation

> **Note:** [uv](https://docs.astral.sh/uv/) is highly recommended
> for practical Python environment and package management.
> The supported Python versions are
> >=3.11, <3.15.

```bash
uv pip install iqm-client
```

### Optional extras

The following optional extras are available:

- `cirq`: Cirq adapter for IQM quantum computers
- `qiskit`: Qiskit adapter for IQM quantum computers
- `qrisp`: Qrisp adapter for IQM quantum computers

All extras are inter-compatible and each adds more dependencies
on top of the base install. To install all of them:

```bash
uv pip install "iqm-client[cirq,qiskit,qrisp]"
```

### Reproducible installations

For reproducible installations, pinned dependency extras
are available:

- `pin-iqm`: pins inter-IQM package dependencies to exact
  co-released versions.
- `pin-all`: like `pin-iqm`, but additionally pins all
  transitive third-party dependencies.

These can be combined with other extras. The following
combined extras are available:

- `cirq-pin-iqm`
- `qiskit-pin-iqm`
- `qrisp-pin-iqm`
- `cirq-pin-all`
- `qiskit-pin-all`
- `qrisp-pin-all`

For example:

```bash
uv pip install "iqm-client[cirq-pin-all]"
```

All extras are inter-compatible, so you can combine multiple
extras with pinning as needed.

> **Note:** This package was tested at release time for clean
> installation with `uv 0.11.20` and `pip 25.1.1`.
> Other versions are likely to work but are not verified
> per release.
