This release is a pre-release and may not be stable for production use.
qdk
The Quantum Development Kit (QDK) provides a single, cohesive Python entry point for compiling, simulating, and estimating resources for quantum programs (Q# and OpenQASM), with optional extras for visualization, cloud workflows, and interoperability with Qiskit and Cirq.
Install
To install the core functionality, which include Q# & OpenQASM simulation, compilation, and resource estimation support:
pip install qdk
To include the Jupyter extra, which adds visualizations using Jupyter Widgets in the qdk.widgets submodule and syntax highlighting for Jupyter notebooks in the browser:
pip install "qdk[jupyter]"
To add the Azure Quantum extra, which includes functionality for working with the Azure Quantum service in the qdk.azure submodule:
pip install "qdk[azure]"
For Qiskit integration, which exposes Qiskit interop utilities in the qdk.qiskit submodule:
pip install "qdk[qiskit]"
For Cirq integration, which exposes Cirq interop utilities in the qdk.cirq submodule:
pip install "qdk[cirq]"
To easily install all the above extras:
pip install "qdk[all]"
Quick Start
from qdk import qsharp
result = qsharp.run("{ use q = Qubit(); H(q); return MResetZ(q); }", shots=100)
print(result)
To use widgets (installed via qdk[jupyter] extra):
from qdk.qsharp import eval, run
from qdk.widgets import Histogram
eval("""
operation BellPair() : Result[] {
use qs = Qubit[2];
H(qs[0]);CX(qs[0], qs[1]);
MResetEachZ(qs)
}
""")
results = run("BellPair()", shots=1000, noise=(0.005, 0.0, 0.0))
Histogram(results)
Public API Surface
Submodules:
qdk.qsharp– Q# interpreter functions:init,eval,run,compile,circuit,estimate,dump_machine,dump_circuit,dump_operation, and related types.qdk.openqasm– OpenQASM compilation and execution.qdk.estimator– resource estimation utilities.qdk.simulation– noise-aware simulation utilities:NeutralAtomDevice,NoiseConfig,run_qir,DensityMatrixSimulator,StateVectorSimulator, and related types.qdk.code– dynamic namespace populated at runtime with user-defined Q# and OpenQASM callables.qdk.qre– quantum resource estimation v3:estimate,Application,Architecture,ISA,ISATransform, and related types.qdk.applications– domain-specific quantum applications (e.g.qdk.applications.magnets).qdk.widgets– Jupyter widgets for visualization (requires theqdk[jupyter]extra).qdk.azure– Azure Quantum service integration (requires theqdk[azure]extra).qdk.qiskit– Qiskit interop:QSharpBackend,NeutralAtomBackend, and related types (requires theqdk[qiskit]extra).qdk.cirq– Cirq interop:NeutralAtomSampler(requires theqdk[cirq]extra).
Top level exports
For convenience, the following helpers and types are also importable directly from the qdk root (e.g. from qdk import code, Result). Algorithm execution APIs (like run / estimate) remain under qdk.qsharp or qdk.openqasm.
| Symbol | Type | Origin | Description |
|---|---|---|---|
code |
module | qdk.code |
Exposes operations defined in Q# or OpenQASM |
init |
function | qdk.qsharp.init |
Initialize/configure the QDK interpreter (target profile, options). |
set_quantum_seed |
function | qdk.qsharp.set_quantum_seed |
Deterministic seed for quantum randomness (simulators). |
set_classical_seed |
function | qdk.qsharp.set_classical_seed |
Deterministic seed for classical host RNG. |
dump_machine |
function | qdk.qsharp.dump_machine |
Emit a structured dump of full quantum state (simulator dependent). |
Result |
class | qdk.qsharp.Result |
Measurement result token. |
TargetProfile |
class | qdk.qsharp.TargetProfile |
Target capability / profile descriptor. |
StateDump |
class | qdk.qsharp.StateDump |
Structured state dump object. |
ShotResult |
class | qdk.qsharp.ShotResult |
Multi-shot execution results container. |
PauliNoise |
class | qdk.qsharp.PauliNoise |
Pauli channel noise model spec. |
DepolarizingNoise |
class | qdk.qsharp.DepolarizingNoise |
Depolarizing noise model spec. |
BitFlipNoise |
class | qdk.qsharp.BitFlipNoise |
Bit-flip noise model spec. |
PhaseFlipNoise |
class | qdk.qsharp.PhaseFlipNoise |
Phase-flip noise model spec. |
Context |
class | qdk.Context |
Isolated Q# and OpenQASM interpreter context for independent sessions. |
Configuration Map
You can provide configuration at initialization time as a Python dictionary.
In Python, pass qdk_config: dict[str, int | float | str | bool] to Context(...).
If qdk_config is omitted, the configuration map is empty. The map is immutable
after initialization. To use different configuration values, create a new Context.
In Q#, read values with Std.Core.ConfigValue(name, defaultValue). In Q# code, config
values are immutable: in the same program, repeated calls with the same
(name, defaultValue) produce the same result.
Supported types: int, float, str, and bool (corresponding to Int, Double,
String and Bool in Q#). The type of each value in qdk_config must match the
type of its corresponding default value.
Example:
import qdk
context = qdk.Context(qdk_config={"experiment_name": "baseline", "shots": 1000})
assert context.eval('Std.Core.ConfigValue("experiment_name", "")') == "baseline"
assert context.eval('Std.Core.ConfigValue("shots", 100)') == 1000
assert context.eval('Std.Core.ConfigValue("noise_level", 0.01)') == 0.01
Telemetry
This library sends telemetry. Minimal anonymous data is collected to help measure feature usage and performance. All telemetry events can be seen in the source file telemetry_events.py.
To disable sending telemetry from this package, set the environment variable QDK_PYTHON_TELEMETRY=none
Support
For more information about the Microsoft Quantum Development Kit, visit https://aka.ms/qdk.
Contributing
Q# welcomes your contributions! Visit the Q# GitHub repository at [https://github.com/microsoft/qdk] to find out more about the project.
Release files for qdk 1.31.1.dev0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| qdk-1.31.1.dev0-cp310-abi3-win_arm64.whl | CPython 3.10 | abi3 | Windows ARM64 | Details |
| qdk-1.31.1.dev0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| qdk-1.31.1.dev0-cp310-abi3-manylinux_2_35_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.35+ x86-64 | Details |
| qdk-1.31.1.dev0-cp310-abi3-manylinux_2_35_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.35+ ARM64 | Details |
| qdk-1.31.1.dev0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| qdk-1.31.1.dev0-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 43.0 MB
Release files / qdk-1.31.1.dev0-cp310-abi3-win_arm64.whl
| Download URL | qdk-1.31.1.dev0-cp310-abi3-win_arm64.whl |
|---|---|
| Size | 7.5 MB |
| Tags | CPython 3.10 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
bec9bde11a6279fd210dd286e5f8e1c5174924a6ac7c5afc60274ea8ccf14187
|
|
BLAKE2b-256 checksum How to use checksums |
77b14b7c3685b0553dbc6fd7fcab375e57b4afda2278c89e7ad2cec59751ae4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Release files / qdk-1.31.1.dev0-cp310-abi3-win_amd64.whl
| Download URL | qdk-1.31.1.dev0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
13e3282336172a4ccc44c770932904592ee3a8dc91f65e9612f35683728184a6
|
|
BLAKE2b-256 checksum How to use checksums |
c56ac24e817ccedb4210fd4e3f2aafbb8e65be55ce86d1ec4b6e29c84e3dabf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Release files / qdk-1.31.1.dev0-cp310-abi3-manylinux_2_35_x86_64.whl
| Download URL | qdk-1.31.1.dev0-cp310-abi3-manylinux_2_35_x86_64.whl |
|---|---|
| Size | 7.6 MB |
| Tags | CPython 3.10 Linux glibc 2.35+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
16a00e703e396dd45f9356b4e0e2ef835d5c303bfb09f6f6a04816a1b3745c44
|
|
BLAKE2b-256 checksum How to use checksums |
265c589da4d46624636f12c5fb1b7d28cc99aa3bfa0ebe5b29434dc8c9341edc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Release files / qdk-1.31.1.dev0-cp310-abi3-manylinux_2_35_aarch64.whl
| Download URL | qdk-1.31.1.dev0-cp310-abi3-manylinux_2_35_aarch64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.10 Linux glibc 2.35+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
d6ed398ed805c43fb5c232cdc18cc6645a5b190e6e27c3cb7fff1b1858efe2e9
|
|
BLAKE2b-256 checksum How to use checksums |
3008114994d7d3bdad3544a39a9a7a3fed698c8f4b9bc972c4c0699960901c42
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Release files / qdk-1.31.1.dev0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | qdk-1.31.1.dev0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.3 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
aacad3bbabd55a1da080e2182d6135f8bb6508297281fd9a1590316a9980dc81
|
|
BLAKE2b-256 checksum How to use checksums |
c1a525ee6af8ac978e945c308e687011fef0e7de48499ce7aaebd23a51d6002d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|
Release files / qdk-1.31.1.dev0-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | qdk-1.31.1.dev0-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
d499cacff91775ff4adac80a06198d1619deda4a73e8079e482ea257730f72f4
|
|
BLAKE2b-256 checksum How to use checksums |
b2a711eadd516b127e3d84729b6ae55de9b08bbeacfe7ad66a0eedef6c3bddf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
RestSharp/106.13.0.0
|