azure-quantum 3.2.0__tar.gz → 3.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/PKG-INFO +13 -20
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/README.md +7 -18
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/_version.py +1 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_workspace_connection_params.py +3 -6
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/targets/ionq.py +1 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/targets/quantinuum.py +1 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/job.py +2 -2
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/backends/ionq.py +4 -4
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/backends/quantinuum.py +0 -8
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/__init__.py +0 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/ionq.py +3 -34
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/quantinuum.py +2 -16
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/target.py +3 -32
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/target_factory.py +1 -5
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/version.py +1 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure_quantum.egg-info/PKG-INFO +13 -20
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure_quantum.egg-info/SOURCES.txt +0 -8
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure_quantum.egg-info/requires.txt +5 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements-dev.txt +3 -1
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements.txt +1 -1
- azure_quantum-3.2.0/azure/quantum/_authentication/__init__.py +0 -9
- azure_quantum-3.2.0/azure/quantum/_authentication/_chained.py +0 -119
- azure_quantum-3.2.0/azure/quantum/_authentication/_default.py +0 -153
- azure_quantum-3.2.0/azure/quantum/_authentication/_token.py +0 -83
- azure_quantum-3.2.0/azure/quantum/target/microsoft/elements/__init__.py +0 -1
- azure_quantum-3.2.0/azure/quantum/target/microsoft/elements/dft/__init__.py +0 -6
- azure_quantum-3.2.0/azure/quantum/target/microsoft/elements/dft/job.py +0 -171
- azure_quantum-3.2.0/azure/quantum/target/microsoft/elements/dft/target.py +0 -316
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/_client.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/_configuration.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/_model_base.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/_patch.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/_serialization.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/models/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/models/_enums.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/models/_models.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/models/_patch.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/operations/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/operations/_operations.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_client/operations/_patch.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/_constants.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/argument_types/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/argument_types/types.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/job.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/service.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/targets/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/cirq/targets/target.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/base_job.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/filtered_job.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/job_failed_with_results_error.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/session.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/workspace_item.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/job/workspace_item_factory.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/backends/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/backends/backend.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/backends/qci.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/backends/rigetti.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/job.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/qiskit/provider.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/storage.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/params.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/pasqal/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/pasqal/result.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/pasqal/target.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/rigetti/__init__.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/rigetti/result.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/target/rigetti/target.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure/quantum/workspace.py +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure_quantum.egg-info/dependency_links.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/azure_quantum.egg-info/top_level.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements-cirq.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements-pulser.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements-qiskit.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements-qsharp.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/requirements-quil.txt +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/setup.cfg +0 -0
- {azure_quantum-3.2.0 → azure_quantum-3.4.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: azure-quantum
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Summary: Python client for Azure Quantum
|
|
5
5
|
Home-page: https://github.com/microsoft/azure-quantum-python
|
|
6
6
|
Author: Microsoft
|
|
@@ -14,7 +14,7 @@ Requires-Dist: azure-core<2.0,>=1.30
|
|
|
14
14
|
Requires-Dist: azure-identity<2.0,>=1.17
|
|
15
15
|
Requires-Dist: azure-storage-blob==12.20
|
|
16
16
|
Requires-Dist: msrest<1.0,>=0.7.1
|
|
17
|
-
Requires-Dist: numpy
|
|
17
|
+
Requires-Dist: numpy>=1.21.0
|
|
18
18
|
Requires-Dist: deprecated<2.0,>=1.2.12
|
|
19
19
|
Requires-Dist: Markdown>=3.4.1
|
|
20
20
|
Requires-Dist: python-markdown-math>=0.8
|
|
@@ -22,6 +22,8 @@ Provides-Extra: cirq
|
|
|
22
22
|
Requires-Dist: cirq-core<=1.4.1,>=1.3.0; extra == "cirq"
|
|
23
23
|
Requires-Dist: cirq-ionq<=1.4.1,>=1.3.0; extra == "cirq"
|
|
24
24
|
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: pytest>=7.1.2; extra == "dev"
|
|
26
|
+
Requires-Dist: pytest-xdist<4.0,>=3.8.0; extra == "dev"
|
|
25
27
|
Requires-Dist: vcrpy>=4.3.1; extra == "dev"
|
|
26
28
|
Requires-Dist: azure-devtools<2.0,>=1.2.0; extra == "dev"
|
|
27
29
|
Requires-Dist: graphviz>=0.20.1; extra == "dev"
|
|
@@ -40,6 +42,8 @@ Requires-Dist: pyquil==4.13.1; extra == "quil"
|
|
|
40
42
|
Provides-Extra: all
|
|
41
43
|
Requires-Dist: cirq-core<=1.4.1,>=1.3.0; extra == "all"
|
|
42
44
|
Requires-Dist: cirq-ionq<=1.4.1,>=1.3.0; extra == "all"
|
|
45
|
+
Requires-Dist: pytest>=7.1.2; extra == "all"
|
|
46
|
+
Requires-Dist: pytest-xdist<4.0,>=3.8.0; extra == "all"
|
|
43
47
|
Requires-Dist: vcrpy>=4.3.1; extra == "all"
|
|
44
48
|
Requires-Dist: azure-devtools<2.0,>=1.2.0; extra == "all"
|
|
45
49
|
Requires-Dist: graphviz>=0.20.1; extra == "all"
|
|
@@ -56,9 +60,9 @@ Requires-Dist: pyquil==4.13.1; extra == "all"
|
|
|
56
60
|
|
|
57
61
|
# Azure Quantum #
|
|
58
62
|
|
|
59
|
-
[](https://badge.fury.io/py/azure-quantum)
|
|
60
64
|
|
|
61
|
-
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs
|
|
65
|
+
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs. The `azure-quantum` package for Python provides functionality for interacting with Azure Quantum workspaces, including creating jobs, listing jobs, and retrieving job results. For more information, view the [Azure Quantum Documentation](https://learn.microsoft.com/en-us/azure/quantum/).
|
|
62
66
|
|
|
63
67
|
This package supports submitting quantum programs or circuits written with Python. To submit quantum programs written with Q#, Microsoft's Domain-specific language for Quantum Programming, view [Submit Q# Jobs to Azure Quantum](https://learn.microsoft.com/azure/quantum/how-to-submit-jobs).
|
|
64
68
|
|
|
@@ -66,21 +70,10 @@ This package supports submitting quantum programs or circuits written with Pytho
|
|
|
66
70
|
|
|
67
71
|
The package is released on PyPI and can be installed via `pip`:
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
pip install azure-quantum
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
To use `azure-quantum` for submitting quantum circuits expressed with [Qiskit](https://pypi.org/project/qiskit), install with optional dependencies:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
pip install azure-quantum[qiskit]
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
To use `azure-quantum` for submitting quantum circuits expressed with [Cirq](https://pypi.org/project/cirq), install with optional dependencies:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
pip install azure-quantum[cirq]
|
|
83
|
-
```
|
|
73
|
+
- For default installation - `pip install azure-quantum`
|
|
74
|
+
- Submit quantum circuits written in [Q#](https://pypi.org/project/qsharp) - `pip install azure-quantum[qsharp]`
|
|
75
|
+
- Submit quantum circuits written in [Qiskit](https://pypi.org/project/qiskit) - `pip install azure-quantum[qiskit]`
|
|
76
|
+
- Submit quantum circuits written in [Cirq](https://pypi.org/project/cirq) - `pip install azure-quantum[cirq]`
|
|
84
77
|
|
|
85
78
|
## Getting started and Quickstart guides ##
|
|
86
79
|
|
|
@@ -131,7 +124,7 @@ result = job.get_results()
|
|
|
131
124
|
|
|
132
125
|
## Examples ##
|
|
133
126
|
|
|
134
|
-
You can find example Python scripts that use the Azure Quantum Python API in the [
|
|
127
|
+
You can find example Python scripts that use the Azure Quantum Python API in the [samples](https://github.com/microsoft/azure-quantum-python/tree/main/samples) directory.
|
|
135
128
|
|
|
136
129
|
## Contributing ##
|
|
137
130
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# Azure Quantum #
|
|
4
4
|
|
|
5
|
-
[](https://badge.fury.io/py/azure-quantum)
|
|
6
6
|
|
|
7
|
-
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs
|
|
7
|
+
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs. The `azure-quantum` package for Python provides functionality for interacting with Azure Quantum workspaces, including creating jobs, listing jobs, and retrieving job results. For more information, view the [Azure Quantum Documentation](https://learn.microsoft.com/en-us/azure/quantum/).
|
|
8
8
|
|
|
9
9
|
This package supports submitting quantum programs or circuits written with Python. To submit quantum programs written with Q#, Microsoft's Domain-specific language for Quantum Programming, view [Submit Q# Jobs to Azure Quantum](https://learn.microsoft.com/azure/quantum/how-to-submit-jobs).
|
|
10
10
|
|
|
@@ -12,21 +12,10 @@ This package supports submitting quantum programs or circuits written with Pytho
|
|
|
12
12
|
|
|
13
13
|
The package is released on PyPI and can be installed via `pip`:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
pip install azure-quantum
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
To use `azure-quantum` for submitting quantum circuits expressed with [Qiskit](https://pypi.org/project/qiskit), install with optional dependencies:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
pip install azure-quantum[qiskit]
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
To use `azure-quantum` for submitting quantum circuits expressed with [Cirq](https://pypi.org/project/cirq), install with optional dependencies:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
pip install azure-quantum[cirq]
|
|
29
|
-
```
|
|
15
|
+
- For default installation - `pip install azure-quantum`
|
|
16
|
+
- Submit quantum circuits written in [Q#](https://pypi.org/project/qsharp) - `pip install azure-quantum[qsharp]`
|
|
17
|
+
- Submit quantum circuits written in [Qiskit](https://pypi.org/project/qiskit) - `pip install azure-quantum[qiskit]`
|
|
18
|
+
- Submit quantum circuits written in [Cirq](https://pypi.org/project/cirq) - `pip install azure-quantum[cirq]`
|
|
30
19
|
|
|
31
20
|
## Getting started and Quickstart guides ##
|
|
32
21
|
|
|
@@ -77,7 +66,7 @@ result = job.get_results()
|
|
|
77
66
|
|
|
78
67
|
## Examples ##
|
|
79
68
|
|
|
80
|
-
You can find example Python scripts that use the Azure Quantum Python API in the [
|
|
69
|
+
You can find example Python scripts that use the Azure Quantum Python API in the [samples](https://github.com/microsoft/azure-quantum-python/tree/main/samples) directory.
|
|
81
70
|
|
|
82
71
|
## Contributing ##
|
|
83
72
|
|
|
@@ -14,7 +14,7 @@ from typing import (
|
|
|
14
14
|
)
|
|
15
15
|
from azure.core.credentials import AzureKeyCredential
|
|
16
16
|
from azure.core.pipeline.policies import AzureKeyCredentialPolicy
|
|
17
|
-
from azure.
|
|
17
|
+
from azure.identity import DefaultAzureCredential
|
|
18
18
|
from azure.quantum._constants import (
|
|
19
19
|
EnvironmentKind,
|
|
20
20
|
EnvironmentVariables,
|
|
@@ -403,13 +403,10 @@ class WorkspaceConnectionParams:
|
|
|
403
403
|
def get_credential_or_default(self) -> Any:
|
|
404
404
|
"""
|
|
405
405
|
Get the credential if one was set,
|
|
406
|
-
or defaults to a new
|
|
406
|
+
or defaults to a new DefaultAzureCredential.
|
|
407
407
|
"""
|
|
408
408
|
return (self.credential
|
|
409
|
-
or
|
|
410
|
-
subscription_id=self.subscription_id,
|
|
411
|
-
arm_endpoint=self.arm_endpoint,
|
|
412
|
-
tenant_id=self.tenant_id))
|
|
409
|
+
or DefaultAzureCredential(exclude_interactive_browser_credential=False))
|
|
413
410
|
|
|
414
411
|
def get_auth_policy(self) -> Any:
|
|
415
412
|
"""
|
|
@@ -111,7 +111,7 @@ class Job(BaseJob, FilteredJob):
|
|
|
111
111
|
Raises :class:`ValueError` if job output is malformed or output format is not compatible.
|
|
112
112
|
|
|
113
113
|
Raises :class:`azure.quantum.job.JobFailedWithResultsError` if job execution fails,
|
|
114
|
-
but failure results could still be retrieved
|
|
114
|
+
but failure results could still be retrieved.
|
|
115
115
|
|
|
116
116
|
:param timeout_secs: Timeout in seconds, defaults to 300
|
|
117
117
|
:type timeout_secs: float
|
|
@@ -274,7 +274,7 @@ class Job(BaseJob, FilteredJob):
|
|
|
274
274
|
Raises :class:`ValueError` if job output is malformed or output format is not compatible.
|
|
275
275
|
|
|
276
276
|
Raises :class:`azure.quantum.job.JobFailedWithResultsError` if job execution fails,
|
|
277
|
-
but failure results could still be retrieved
|
|
277
|
+
but failure results could still be retrieved.
|
|
278
278
|
|
|
279
279
|
:param timeout_secs: Timeout in seconds, defaults to 300
|
|
280
280
|
:type timeout_secs: float
|
|
@@ -131,7 +131,7 @@ class IonQSimulatorQirBackend(IonQQirBackendBase):
|
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
class IonQAriaQirBackend(IonQQirBackendBase):
|
|
134
|
-
backend_names = ("ionq.qpu.aria-1",
|
|
134
|
+
backend_names = ("ionq.qpu.aria-1",)
|
|
135
135
|
|
|
136
136
|
def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
|
|
137
137
|
"""Base class for interfacing with an IonQ Aria QPU backend"""
|
|
@@ -162,7 +162,7 @@ class IonQAriaQirBackend(IonQQirBackendBase):
|
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
class IonQForteQirBackend(IonQQirBackendBase):
|
|
165
|
-
backend_names = ("ionq.qpu.forte-1",)
|
|
165
|
+
backend_names = ("ionq.qpu.forte-1","ionq.qpu.forte-enterprise-1",)
|
|
166
166
|
|
|
167
167
|
def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
|
|
168
168
|
"""Base class for interfacing with an IonQ Forte QPU backend"""
|
|
@@ -305,7 +305,7 @@ class IonQSimulatorNativeBackend(IonQSimulatorBackend):
|
|
|
305
305
|
|
|
306
306
|
|
|
307
307
|
class IonQAriaBackend(IonQBackend):
|
|
308
|
-
backend_names = ("ionq.qpu.aria-1",
|
|
308
|
+
backend_names = ("ionq.qpu.aria-1",)
|
|
309
309
|
|
|
310
310
|
def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
|
|
311
311
|
"""Base class for interfacing with an IonQ Aria QPU backend"""
|
|
@@ -338,7 +338,7 @@ class IonQAriaBackend(IonQBackend):
|
|
|
338
338
|
|
|
339
339
|
|
|
340
340
|
class IonQForteBackend(IonQBackend):
|
|
341
|
-
backend_names = ("ionq.qpu.forte-1",)
|
|
341
|
+
backend_names = ("ionq.qpu.forte-1","ionq.qpu.forte-enterprise-1",)
|
|
342
342
|
|
|
343
343
|
def __init__(self, name: str, provider: "AzureQuantumProvider", **kwargs):
|
|
344
344
|
"""Base class for interfacing with an IonQ Forte QPU backend"""
|
|
@@ -57,8 +57,6 @@ QUANTINUUM_PROVIDER_NAME = "Quantinuum"
|
|
|
57
57
|
|
|
58
58
|
def _get_n_qubits(name):
|
|
59
59
|
name = name.lower()
|
|
60
|
-
if ".h1-" in name or "hqs-lt" in name:
|
|
61
|
-
return 20
|
|
62
60
|
if ".h2-" in name:
|
|
63
61
|
return 56
|
|
64
62
|
warnings.warn(
|
|
@@ -103,7 +101,6 @@ class QuantinuumQirBackendBase(AzureQirBackend):
|
|
|
103
101
|
class QuantinuumSyntaxCheckerQirBackend(QuantinuumQirBackendBase):
|
|
104
102
|
backend_names = (
|
|
105
103
|
# Note: Target names on the same line are equivalent.
|
|
106
|
-
"quantinuum.sim.h1-1sc",
|
|
107
104
|
"quantinuum.sim.h2-1sc",
|
|
108
105
|
"quantinuum.sim.h2-2sc"
|
|
109
106
|
)
|
|
@@ -141,7 +138,6 @@ class QuantinuumSyntaxCheckerQirBackend(QuantinuumQirBackendBase):
|
|
|
141
138
|
class QuantinuumEmulatorQirBackend(QuantinuumQirBackendBase):
|
|
142
139
|
backend_names = (
|
|
143
140
|
# Note: Target names on the same line are equivalent.
|
|
144
|
-
"quantinuum.sim.h1-1e",
|
|
145
141
|
"quantinuum.sim.h2-1e",
|
|
146
142
|
"quantinuum.sim.h2-2e"
|
|
147
143
|
)
|
|
@@ -179,7 +175,6 @@ class QuantinuumEmulatorQirBackend(QuantinuumQirBackendBase):
|
|
|
179
175
|
class QuantinuumQPUQirBackend(QuantinuumQirBackendBase):
|
|
180
176
|
backend_names = (
|
|
181
177
|
# Note: Target names on the same line are equivalent.
|
|
182
|
-
"quantinuum.qpu.h1-1",
|
|
183
178
|
"quantinuum.qpu.h2-1",
|
|
184
179
|
"quantinuum.qpu.h2-2"
|
|
185
180
|
)
|
|
@@ -254,7 +249,6 @@ class QuantinuumBackend(AzureBackend):
|
|
|
254
249
|
class QuantinuumSyntaxCheckerBackend(QuantinuumBackend):
|
|
255
250
|
backend_names = (
|
|
256
251
|
# Note: Target names on the same line are equivalent.
|
|
257
|
-
"quantinuum.sim.h1-1sc",
|
|
258
252
|
"quantinuum.sim.h2-1sc",
|
|
259
253
|
"quantinuum.sim.h2-2sc"
|
|
260
254
|
)
|
|
@@ -292,7 +286,6 @@ class QuantinuumSyntaxCheckerBackend(QuantinuumBackend):
|
|
|
292
286
|
class QuantinuumEmulatorBackend(QuantinuumBackend):
|
|
293
287
|
backend_names = (
|
|
294
288
|
# Note: Target names on the same line are equivalent.
|
|
295
|
-
"quantinuum.sim.h1-1e",
|
|
296
289
|
"quantinuum.sim.h2-1e",
|
|
297
290
|
"quantinuum.sim.h2-2e"
|
|
298
291
|
)
|
|
@@ -330,7 +323,6 @@ class QuantinuumEmulatorBackend(QuantinuumBackend):
|
|
|
330
323
|
class QuantinuumQPUBackend(QuantinuumBackend):
|
|
331
324
|
backend_names = (
|
|
332
325
|
# Note: Target names on the same line are equivalent.
|
|
333
|
-
"quantinuum.qpu.h1-1",
|
|
334
326
|
"quantinuum.qpu.h2-1",
|
|
335
327
|
"quantinuum.qpu.h2-2"
|
|
336
328
|
)
|
|
@@ -10,7 +10,6 @@ from .ionq import IonQ
|
|
|
10
10
|
from .quantinuum import Quantinuum
|
|
11
11
|
from .rigetti import Rigetti
|
|
12
12
|
from .pasqal import Pasqal
|
|
13
|
-
from .microsoft.elements.dft import MicrosoftElementsDft, MicrosoftElementsDftJob
|
|
14
13
|
|
|
15
14
|
# Default targets to use when there is no target class
|
|
16
15
|
# associated with a given target ID
|
|
@@ -5,35 +5,11 @@
|
|
|
5
5
|
from typing import Any, Dict, List
|
|
6
6
|
from warnings import warn
|
|
7
7
|
|
|
8
|
-
from azure.quantum.target.target import (
|
|
9
|
-
Target,
|
|
10
|
-
_determine_shots_or_deprecated_num_shots,
|
|
11
|
-
)
|
|
12
8
|
from azure.quantum.job.job import Job
|
|
9
|
+
from azure.quantum.target.target import Target
|
|
13
10
|
from azure.quantum.workspace import Workspace
|
|
14
|
-
from azure.quantum._client.models import CostEstimate, UsageEvent
|
|
15
11
|
from typing import Union
|
|
16
12
|
|
|
17
|
-
COST_1QUBIT_GATE_MAP = {
|
|
18
|
-
"ionq.simulator" : 0.0,
|
|
19
|
-
"ionq.qpu.aria-1" : 0.0002205,
|
|
20
|
-
"ionq.qpu.aria-2" : 0.0002205,
|
|
21
|
-
"ionq.qpu.forte-1" : 0.0002205
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
COST_2QUBIT_GATE_MAP = {
|
|
25
|
-
"ionq.simulator" : 0.0,
|
|
26
|
-
"ionq.qpu.aria-1" : 0.00098,
|
|
27
|
-
"ionq.qpu.aria-2" : 0.00098,
|
|
28
|
-
"ionq.qpu.forte-1" : 0.00098
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
MIN_PRICE_MAP = {
|
|
32
|
-
"ionq.simulator" : 0.0,
|
|
33
|
-
"ionq.qpu.aria-1" : 97.5,
|
|
34
|
-
"ionq.qpu.aria-2" : 97.5,
|
|
35
|
-
"ionq.qpu.forte-1" : 97.5
|
|
36
|
-
}
|
|
37
13
|
|
|
38
14
|
def int_to_bitstring(k: int, num_qubits: int, measured_qubit_ids: List[int]):
|
|
39
15
|
# flip bitstring to convert to little Endian
|
|
@@ -47,8 +23,8 @@ class IonQ(Target):
|
|
|
47
23
|
target_names = (
|
|
48
24
|
"ionq.simulator",
|
|
49
25
|
"ionq.qpu.aria-1",
|
|
50
|
-
"ionq.qpu.
|
|
51
|
-
"ionq.qpu.forte-1"
|
|
26
|
+
"ionq.qpu.forte-1",
|
|
27
|
+
"ionq.qpu.forte-enterprise-1",
|
|
52
28
|
)
|
|
53
29
|
|
|
54
30
|
_SHOTS_PARAM_NAME = "shots"
|
|
@@ -111,13 +87,6 @@ class IonQ(Target):
|
|
|
111
87
|
)
|
|
112
88
|
if input_params is None:
|
|
113
89
|
input_params = {}
|
|
114
|
-
|
|
115
|
-
num_shots = kwargs.pop("num_shots", None)
|
|
116
|
-
|
|
117
|
-
shots = _determine_shots_or_deprecated_num_shots(
|
|
118
|
-
shots=shots,
|
|
119
|
-
num_shots=num_shots,
|
|
120
|
-
)
|
|
121
90
|
|
|
122
91
|
return super().submit(
|
|
123
92
|
input_data=input_data,
|
|
@@ -5,22 +5,15 @@
|
|
|
5
5
|
from typing import Any, Dict, Union
|
|
6
6
|
from warnings import warn
|
|
7
7
|
|
|
8
|
-
from azure.quantum.target.target import (
|
|
9
|
-
Target,
|
|
10
|
-
_determine_shots_or_deprecated_num_shots,
|
|
11
|
-
)
|
|
12
8
|
from azure.quantum.job.job import Job
|
|
9
|
+
from azure.quantum.target.target import Target
|
|
13
10
|
from azure.quantum.workspace import Workspace
|
|
14
|
-
from azure.quantum._client.models import CostEstimate, UsageEvent
|
|
15
11
|
|
|
16
12
|
|
|
17
13
|
class Quantinuum(Target):
|
|
18
14
|
"""Quantinuum target."""
|
|
19
15
|
target_names = (
|
|
20
16
|
# Note: Target names on the same line are equivalent.
|
|
21
|
-
"quantinuum.qpu.h1-1",
|
|
22
|
-
"quantinuum.sim.h1-1sc",
|
|
23
|
-
"quantinuum.sim.h1-1e",
|
|
24
17
|
"quantinuum.qpu.h2-1",
|
|
25
18
|
"quantinuum.sim.h2-1sc",
|
|
26
19
|
"quantinuum.sim.h2-1e",
|
|
@@ -34,7 +27,7 @@ class Quantinuum(Target):
|
|
|
34
27
|
def __init__(
|
|
35
28
|
self,
|
|
36
29
|
workspace: Workspace,
|
|
37
|
-
name: str = "quantinuum.sim.
|
|
30
|
+
name: str = "quantinuum.sim.h2-1sc",
|
|
38
31
|
input_data_format: str = "honeywell.openqasm.v1",
|
|
39
32
|
output_data_format: str = "honeywell.quantum-results.v1",
|
|
40
33
|
capability: str = "",
|
|
@@ -89,13 +82,6 @@ class Quantinuum(Target):
|
|
|
89
82
|
if input_params is None:
|
|
90
83
|
input_params = {}
|
|
91
84
|
|
|
92
|
-
num_shots = kwargs.pop("num_shots", None)
|
|
93
|
-
|
|
94
|
-
shots = _determine_shots_or_deprecated_num_shots(
|
|
95
|
-
shots=shots,
|
|
96
|
-
num_shots=num_shots,
|
|
97
|
-
)
|
|
98
|
-
|
|
99
85
|
return super().submit(
|
|
100
86
|
input_data=input_data,
|
|
101
87
|
name=name,
|
|
@@ -55,7 +55,7 @@ class Target(abc.ABC, SessionHost):
|
|
|
55
55
|
|
|
56
56
|
# Name of the provider's input parameter which specifies number of shots for a submitted job.
|
|
57
57
|
# If None, target will not pass this input parameter.
|
|
58
|
-
_SHOTS_PARAM_NAME =
|
|
58
|
+
_SHOTS_PARAM_NAME = "shots"
|
|
59
59
|
|
|
60
60
|
def __init__(
|
|
61
61
|
self,
|
|
@@ -117,7 +117,7 @@ avg. queue time={self._average_queue_time} s, {self._current_availability}>"
|
|
|
117
117
|
|
|
118
118
|
@classmethod
|
|
119
119
|
def from_target_status(
|
|
120
|
-
cls, workspace: "Workspace", status: TargetStatus, **kwargs
|
|
120
|
+
cls, workspace: "Workspace", provider_id: str, status: TargetStatus, **kwargs
|
|
121
121
|
):
|
|
122
122
|
"""Create a Target instance from a given workspace and target status.
|
|
123
123
|
|
|
@@ -131,6 +131,7 @@ avg. queue time={self._average_queue_time} s, {self._current_availability}>"
|
|
|
131
131
|
return cls(
|
|
132
132
|
workspace=workspace,
|
|
133
133
|
name=status.id,
|
|
134
|
+
provider_id=provider_id,
|
|
134
135
|
average_queue_time=status.average_queue_time,
|
|
135
136
|
current_availability=status.current_availability,
|
|
136
137
|
**kwargs
|
|
@@ -389,33 +390,3 @@ target '{self.name}' of provider '{self.provider_id}' not found."
|
|
|
389
390
|
multi_qubit_gates,
|
|
390
391
|
measurement_gates
|
|
391
392
|
)
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
def _determine_shots_or_deprecated_num_shots(
|
|
395
|
-
shots: int = None,
|
|
396
|
-
num_shots: int = None,
|
|
397
|
-
) -> int:
|
|
398
|
-
"""
|
|
399
|
-
This helper function checks if the deprecated 'num_shots' parameter is specified.
|
|
400
|
-
In earlier versions it was possible to pass this parameter to specify shots number for a job,
|
|
401
|
-
but now we only check for it for compatibility reasons.
|
|
402
|
-
"""
|
|
403
|
-
final_shots = None
|
|
404
|
-
if shots is not None and num_shots is not None:
|
|
405
|
-
warnings.warn(
|
|
406
|
-
"Both 'shots' and 'num_shots' parameters were specified. Defaulting to 'shots' parameter. "
|
|
407
|
-
"Please, use 'shots' since 'num_shots' will be deprecated.",
|
|
408
|
-
category=DeprecationWarning,
|
|
409
|
-
)
|
|
410
|
-
final_shots = shots
|
|
411
|
-
|
|
412
|
-
elif shots is not None:
|
|
413
|
-
final_shots = shots
|
|
414
|
-
elif num_shots is not None:
|
|
415
|
-
warnings.warn(
|
|
416
|
-
"The 'num_shots' parameter will be deprecated. Please, use 'shots' parameter instead.",
|
|
417
|
-
category=DeprecationWarning,
|
|
418
|
-
)
|
|
419
|
-
final_shots = num_shots
|
|
420
|
-
|
|
421
|
-
return final_shots
|
|
@@ -68,10 +68,6 @@ class TargetFactory:
|
|
|
68
68
|
if provider_id.lower() in self._default_targets:
|
|
69
69
|
return self._default_targets[provider_id.lower()]
|
|
70
70
|
|
|
71
|
-
warnings.warn(
|
|
72
|
-
f"No default target specified for provider {provider_id}. \
|
|
73
|
-
Please check the provider name and try again or create an issue here: \
|
|
74
|
-
https://github.com/microsoft/qdk-python/issues.")
|
|
75
71
|
return Target
|
|
76
72
|
|
|
77
73
|
def create_target(
|
|
@@ -105,7 +101,7 @@ https://github.com/microsoft/qdk-python/issues.")
|
|
|
105
101
|
):
|
|
106
102
|
cls = self._target_cls(provider_id, status.id)
|
|
107
103
|
if hasattr(cls, "from_target_status"):
|
|
108
|
-
return cls.from_target_status(self._workspace, status, **kwargs)
|
|
104
|
+
return cls.from_target_status(self._workspace, provider_id, status, **kwargs)
|
|
109
105
|
elif cls is not None:
|
|
110
106
|
return cls(name=status.id, **kwargs)
|
|
111
107
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: azure-quantum
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0
|
|
4
4
|
Summary: Python client for Azure Quantum
|
|
5
5
|
Home-page: https://github.com/microsoft/azure-quantum-python
|
|
6
6
|
Author: Microsoft
|
|
@@ -14,7 +14,7 @@ Requires-Dist: azure-core<2.0,>=1.30
|
|
|
14
14
|
Requires-Dist: azure-identity<2.0,>=1.17
|
|
15
15
|
Requires-Dist: azure-storage-blob==12.20
|
|
16
16
|
Requires-Dist: msrest<1.0,>=0.7.1
|
|
17
|
-
Requires-Dist: numpy
|
|
17
|
+
Requires-Dist: numpy>=1.21.0
|
|
18
18
|
Requires-Dist: deprecated<2.0,>=1.2.12
|
|
19
19
|
Requires-Dist: Markdown>=3.4.1
|
|
20
20
|
Requires-Dist: python-markdown-math>=0.8
|
|
@@ -22,6 +22,8 @@ Provides-Extra: cirq
|
|
|
22
22
|
Requires-Dist: cirq-core<=1.4.1,>=1.3.0; extra == "cirq"
|
|
23
23
|
Requires-Dist: cirq-ionq<=1.4.1,>=1.3.0; extra == "cirq"
|
|
24
24
|
Provides-Extra: dev
|
|
25
|
+
Requires-Dist: pytest>=7.1.2; extra == "dev"
|
|
26
|
+
Requires-Dist: pytest-xdist<4.0,>=3.8.0; extra == "dev"
|
|
25
27
|
Requires-Dist: vcrpy>=4.3.1; extra == "dev"
|
|
26
28
|
Requires-Dist: azure-devtools<2.0,>=1.2.0; extra == "dev"
|
|
27
29
|
Requires-Dist: graphviz>=0.20.1; extra == "dev"
|
|
@@ -40,6 +42,8 @@ Requires-Dist: pyquil==4.13.1; extra == "quil"
|
|
|
40
42
|
Provides-Extra: all
|
|
41
43
|
Requires-Dist: cirq-core<=1.4.1,>=1.3.0; extra == "all"
|
|
42
44
|
Requires-Dist: cirq-ionq<=1.4.1,>=1.3.0; extra == "all"
|
|
45
|
+
Requires-Dist: pytest>=7.1.2; extra == "all"
|
|
46
|
+
Requires-Dist: pytest-xdist<4.0,>=3.8.0; extra == "all"
|
|
43
47
|
Requires-Dist: vcrpy>=4.3.1; extra == "all"
|
|
44
48
|
Requires-Dist: azure-devtools<2.0,>=1.2.0; extra == "all"
|
|
45
49
|
Requires-Dist: graphviz>=0.20.1; extra == "all"
|
|
@@ -56,9 +60,9 @@ Requires-Dist: pyquil==4.13.1; extra == "all"
|
|
|
56
60
|
|
|
57
61
|
# Azure Quantum #
|
|
58
62
|
|
|
59
|
-
[](https://badge.fury.io/py/azure-quantum)
|
|
60
64
|
|
|
61
|
-
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs
|
|
65
|
+
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs. The `azure-quantum` package for Python provides functionality for interacting with Azure Quantum workspaces, including creating jobs, listing jobs, and retrieving job results. For more information, view the [Azure Quantum Documentation](https://learn.microsoft.com/en-us/azure/quantum/).
|
|
62
66
|
|
|
63
67
|
This package supports submitting quantum programs or circuits written with Python. To submit quantum programs written with Q#, Microsoft's Domain-specific language for Quantum Programming, view [Submit Q# Jobs to Azure Quantum](https://learn.microsoft.com/azure/quantum/how-to-submit-jobs).
|
|
64
68
|
|
|
@@ -66,21 +70,10 @@ This package supports submitting quantum programs or circuits written with Pytho
|
|
|
66
70
|
|
|
67
71
|
The package is released on PyPI and can be installed via `pip`:
|
|
68
72
|
|
|
69
|
-
|
|
70
|
-
pip install azure-quantum
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
To use `azure-quantum` for submitting quantum circuits expressed with [Qiskit](https://pypi.org/project/qiskit), install with optional dependencies:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
pip install azure-quantum[qiskit]
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
To use `azure-quantum` for submitting quantum circuits expressed with [Cirq](https://pypi.org/project/cirq), install with optional dependencies:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
pip install azure-quantum[cirq]
|
|
83
|
-
```
|
|
73
|
+
- For default installation - `pip install azure-quantum`
|
|
74
|
+
- Submit quantum circuits written in [Q#](https://pypi.org/project/qsharp) - `pip install azure-quantum[qsharp]`
|
|
75
|
+
- Submit quantum circuits written in [Qiskit](https://pypi.org/project/qiskit) - `pip install azure-quantum[qiskit]`
|
|
76
|
+
- Submit quantum circuits written in [Cirq](https://pypi.org/project/cirq) - `pip install azure-quantum[cirq]`
|
|
84
77
|
|
|
85
78
|
## Getting started and Quickstart guides ##
|
|
86
79
|
|
|
@@ -131,7 +124,7 @@ result = job.get_results()
|
|
|
131
124
|
|
|
132
125
|
## Examples ##
|
|
133
126
|
|
|
134
|
-
You can find example Python scripts that use the Azure Quantum Python API in the [
|
|
127
|
+
You can find example Python scripts that use the Azure Quantum Python API in the [samples](https://github.com/microsoft/azure-quantum-python/tree/main/samples) directory.
|
|
135
128
|
|
|
136
129
|
## Contributing ##
|
|
137
130
|
|
|
@@ -13,10 +13,6 @@ azure/quantum/_workspace_connection_params.py
|
|
|
13
13
|
azure/quantum/storage.py
|
|
14
14
|
azure/quantum/version.py
|
|
15
15
|
azure/quantum/workspace.py
|
|
16
|
-
azure/quantum/_authentication/__init__.py
|
|
17
|
-
azure/quantum/_authentication/_chained.py
|
|
18
|
-
azure/quantum/_authentication/_default.py
|
|
19
|
-
azure/quantum/_authentication/_token.py
|
|
20
16
|
azure/quantum/_client/__init__.py
|
|
21
17
|
azure/quantum/_client/_client.py
|
|
22
18
|
azure/quantum/_client/_configuration.py
|
|
@@ -63,10 +59,6 @@ azure/quantum/target/params.py
|
|
|
63
59
|
azure/quantum/target/quantinuum.py
|
|
64
60
|
azure/quantum/target/target.py
|
|
65
61
|
azure/quantum/target/target_factory.py
|
|
66
|
-
azure/quantum/target/microsoft/elements/__init__.py
|
|
67
|
-
azure/quantum/target/microsoft/elements/dft/__init__.py
|
|
68
|
-
azure/quantum/target/microsoft/elements/dft/job.py
|
|
69
|
-
azure/quantum/target/microsoft/elements/dft/target.py
|
|
70
62
|
azure/quantum/target/pasqal/__init__.py
|
|
71
63
|
azure/quantum/target/pasqal/result.py
|
|
72
64
|
azure/quantum/target/pasqal/target.py
|
|
@@ -2,7 +2,7 @@ azure-core<2.0,>=1.30
|
|
|
2
2
|
azure-identity<2.0,>=1.17
|
|
3
3
|
azure-storage-blob==12.20
|
|
4
4
|
msrest<1.0,>=0.7.1
|
|
5
|
-
numpy
|
|
5
|
+
numpy>=1.21.0
|
|
6
6
|
deprecated<2.0,>=1.2.12
|
|
7
7
|
Markdown>=3.4.1
|
|
8
8
|
python-markdown-math>=0.8
|
|
@@ -10,6 +10,8 @@ python-markdown-math>=0.8
|
|
|
10
10
|
[all]
|
|
11
11
|
cirq-core<=1.4.1,>=1.3.0
|
|
12
12
|
cirq-ionq<=1.4.1,>=1.3.0
|
|
13
|
+
pytest>=7.1.2
|
|
14
|
+
pytest-xdist<4.0,>=3.8.0
|
|
13
15
|
vcrpy>=4.3.1
|
|
14
16
|
azure-devtools<2.0,>=1.2.0
|
|
15
17
|
graphviz>=0.20.1
|
|
@@ -27,6 +29,8 @@ cirq-core<=1.4.1,>=1.3.0
|
|
|
27
29
|
cirq-ionq<=1.4.1,>=1.3.0
|
|
28
30
|
|
|
29
31
|
[dev]
|
|
32
|
+
pytest>=7.1.2
|
|
33
|
+
pytest-xdist<4.0,>=3.8.0
|
|
30
34
|
vcrpy>=4.3.1
|
|
31
35
|
azure-devtools<2.0,>=1.2.0
|
|
32
36
|
graphviz>=0.20.1
|
|
@@ -4,7 +4,7 @@ azure-identity>=1.17,<2.0
|
|
|
4
4
|
# More than one match for "https://mystorage.blob.core.windows.net/.../rawOutputData"
|
|
5
5
|
azure-storage-blob==12.20
|
|
6
6
|
msrest>=0.7.1,<1.0
|
|
7
|
-
numpy>=1.21.0
|
|
7
|
+
numpy>=1.21.0
|
|
8
8
|
deprecated>=1.2.12,<2.0
|
|
9
9
|
Markdown>=3.4.1
|
|
10
10
|
python-markdown-math>=0.8
|