azure-quantum 1.1.1.dev0__tar.gz → 1.1.2.dev0__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-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/PKG-INFO +12 -13
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/README.md +11 -12
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_authentication/_default.py +11 -11
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/_version.py +1 -1
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_constants.py +9 -7
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_workspace_connection_params.py +69 -71
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/base_job.py +1 -1
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/job.py +4 -2
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/provider.py +0 -2
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/__init__.py +0 -5
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/elements/dft/job.py +2 -2
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/rigetti/target.py +0 -4
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/target_factory.py +2 -8
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/version.py +1 -1
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/workspace.py +2 -2
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure_quantum.egg-info/PKG-INFO +12 -13
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure_quantum.egg-info/SOURCES.txt +0 -11
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/__init__.py +0 -11
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/online_problem.py +0 -21
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/problem.py +0 -393
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/solvers.py +0 -10
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/streaming_problem.py +0 -387
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/term.py +0 -203
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/toshiba/__init__.py +0 -10
- azure-quantum-1.1.1.dev0/azure/quantum/optimization/toshiba/solvers.py +0 -12
- azure-quantum-1.1.1.dev0/azure/quantum/target/solvers.py +0 -382
- azure-quantum-1.1.1.dev0/azure/quantum/target/toshiba/__init__.py +0 -7
- azure-quantum-1.1.1.dev0/azure/quantum/target/toshiba/solvers.py +0 -130
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_authentication/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_authentication/_chained.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_authentication/_token.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/_client.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/_configuration.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/_patch.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/_serialization.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/_vendor.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/models/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/models/_enums.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/models/_models.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/models/_patch.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/operations/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/operations/_operations.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_client/operations/_patch.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/argument_types/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/argument_types/types.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/chemistry/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/job.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/service.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/targets/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/targets/ionq.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/targets/quantinuum.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/cirq/targets/target.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/filtered_job.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/job_failed_with_results_error.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/session.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/workspace_item.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/job/workspace_item_factory.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/backend.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/ionq.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/microsoft.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/qci.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/quantinuum.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/backends/rigetti.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/job.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/results/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/qiskit/results/resource_estimator.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/storage.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/ionq.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/elements/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/elements/dft/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/elements/dft/target.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/job.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/result.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/microsoft/target.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/params.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/pasqal/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/pasqal/result.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/pasqal/target.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/quantinuum.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/rigetti/__init__.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/rigetti/result.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/target.py +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure_quantum.egg-info/dependency_links.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure_quantum.egg-info/requires.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure_quantum.egg-info/top_level.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/requirements-cirq.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/requirements-dev.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/requirements-qiskit.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/requirements-qsharp.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/requirements-quil.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/requirements.txt +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/setup.cfg +0 -0
- {azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: azure-quantum
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.2.dev0
|
|
4
4
|
Summary: Python client for Azure Quantum
|
|
5
5
|
Home-page: https://github.com/microsoft/azure-quantum-python
|
|
6
6
|
Author: Microsoft
|
|
@@ -23,10 +23,9 @@ Provides-Extra: all
|
|
|
23
23
|
|
|
24
24
|
[/_apis/build/status/microsoft.qdk-python?branchName=main)](https://dev.azure.com/ms-quantum-public/Microsoft%20Quantum%20(public)/_build/latest?definitionId=32&branchName=main) [](https://badge.fury.io/py/azure-quantum)
|
|
25
25
|
|
|
26
|
-
Azure Quantum is Microsoft's cloud service for running Quantum Computing
|
|
27
|
-
including creating jobs, listing jobs, and retrieving job results. For more information, view the [Azure Quantum Documentation](https://docs.microsoft.com/azure/quantum).
|
|
26
|
+
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs and circuits with our quantum partners and technologies. 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/).
|
|
28
27
|
|
|
29
|
-
This package supports submitting quantum
|
|
28
|
+
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).
|
|
30
29
|
|
|
31
30
|
## Installation ##
|
|
32
31
|
|
|
@@ -50,13 +49,13 @@ pip install azure-quantum[cirq]
|
|
|
50
49
|
|
|
51
50
|
## Getting started and Quickstart guides ##
|
|
52
51
|
|
|
53
|
-
To work in Azure Quantum, you need an Azure subscription. If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/). Follow the [Create an Azure Quantum workspace](https://
|
|
52
|
+
To work in Azure Quantum, you need an Azure subscription. If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/). Follow the [Create an Azure Quantum workspace](https://learn.microsoft.com/azure/quantum/how-to-create-workspace) how-to guide to set up your Workspace and enable your preferred providers.
|
|
54
53
|
|
|
55
54
|
To get started, visit the following Quickstart guides:
|
|
56
55
|
|
|
57
|
-
- [Quickstart: Submit a circuit with Qiskit](https://
|
|
58
|
-
- [Quickstart: Submit a circuit with Cirq](https://
|
|
59
|
-
- [Quickstart: Submit a circuit with a provider-specific format](https://
|
|
56
|
+
- [Quickstart: Submit a circuit with Qiskit](https://learn.microsoft.com/azure/quantum/quickstart-microsoft-qiskit)
|
|
57
|
+
- [Quickstart: Submit a circuit with Cirq](https://learn.microsoft.com/azure/quantum/quickstart-microsoft-qiskit)
|
|
58
|
+
- [Quickstart: Submit a circuit with a provider-specific format](https://learn.microsoft.com/azure/quantum/quickstart-microsoft-provider-format).
|
|
60
59
|
|
|
61
60
|
## General usage ##
|
|
62
61
|
|
|
@@ -80,16 +79,16 @@ To list all targets that are available to your workspace, run
|
|
|
80
79
|
workspace.get_targets()
|
|
81
80
|
```
|
|
82
81
|
|
|
83
|
-
### Submit a quantum
|
|
82
|
+
### Submit a quantum program or circuit ###
|
|
84
83
|
|
|
85
|
-
First, define a quantum
|
|
84
|
+
First, define a quantum program or circuit, and create a job by submitting it to one of the available targets:
|
|
86
85
|
|
|
87
86
|
```python
|
|
88
87
|
# Enter target name below
|
|
89
|
-
target = workspace.get_targets("")
|
|
88
|
+
target = workspace.get_targets("mytarget")
|
|
90
89
|
|
|
91
|
-
# Submit quantum
|
|
92
|
-
job = target.submit(
|
|
90
|
+
# Submit quantum program or circuit
|
|
91
|
+
job = target.submit(my_quantum_program)
|
|
93
92
|
|
|
94
93
|
# Wait for job to complete and fetch results
|
|
95
94
|
result = job.get_results()
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
[/_apis/build/status/microsoft.qdk-python?branchName=main)](https://dev.azure.com/ms-quantum-public/Microsoft%20Quantum%20(public)/_build/latest?definitionId=32&branchName=main) [](https://badge.fury.io/py/azure-quantum)
|
|
6
6
|
|
|
7
|
-
Azure Quantum is Microsoft's cloud service for running Quantum Computing
|
|
8
|
-
including creating jobs, listing jobs, and retrieving job results. For more information, view the [Azure Quantum Documentation](https://docs.microsoft.com/azure/quantum).
|
|
7
|
+
Azure Quantum is Microsoft's cloud service for running Quantum Computing programs and circuits with our quantum partners and technologies. 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/).
|
|
9
8
|
|
|
10
|
-
This package supports submitting quantum
|
|
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).
|
|
11
10
|
|
|
12
11
|
## Installation ##
|
|
13
12
|
|
|
@@ -31,13 +30,13 @@ pip install azure-quantum[cirq]
|
|
|
31
30
|
|
|
32
31
|
## Getting started and Quickstart guides ##
|
|
33
32
|
|
|
34
|
-
To work in Azure Quantum, you need an Azure subscription. If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/). Follow the [Create an Azure Quantum workspace](https://
|
|
33
|
+
To work in Azure Quantum, you need an Azure subscription. If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/). Follow the [Create an Azure Quantum workspace](https://learn.microsoft.com/azure/quantum/how-to-create-workspace) how-to guide to set up your Workspace and enable your preferred providers.
|
|
35
34
|
|
|
36
35
|
To get started, visit the following Quickstart guides:
|
|
37
36
|
|
|
38
|
-
- [Quickstart: Submit a circuit with Qiskit](https://
|
|
39
|
-
- [Quickstart: Submit a circuit with Cirq](https://
|
|
40
|
-
- [Quickstart: Submit a circuit with a provider-specific format](https://
|
|
37
|
+
- [Quickstart: Submit a circuit with Qiskit](https://learn.microsoft.com/azure/quantum/quickstart-microsoft-qiskit)
|
|
38
|
+
- [Quickstart: Submit a circuit with Cirq](https://learn.microsoft.com/azure/quantum/quickstart-microsoft-qiskit)
|
|
39
|
+
- [Quickstart: Submit a circuit with a provider-specific format](https://learn.microsoft.com/azure/quantum/quickstart-microsoft-provider-format).
|
|
41
40
|
|
|
42
41
|
## General usage ##
|
|
43
42
|
|
|
@@ -61,16 +60,16 @@ To list all targets that are available to your workspace, run
|
|
|
61
60
|
workspace.get_targets()
|
|
62
61
|
```
|
|
63
62
|
|
|
64
|
-
### Submit a quantum
|
|
63
|
+
### Submit a quantum program or circuit ###
|
|
65
64
|
|
|
66
|
-
First, define a quantum
|
|
65
|
+
First, define a quantum program or circuit, and create a job by submitting it to one of the available targets:
|
|
67
66
|
|
|
68
67
|
```python
|
|
69
68
|
# Enter target name below
|
|
70
|
-
target = workspace.get_targets("")
|
|
69
|
+
target = workspace.get_targets("mytarget")
|
|
71
70
|
|
|
72
|
-
# Submit quantum
|
|
73
|
-
job = target.submit(
|
|
71
|
+
# Submit quantum program or circuit
|
|
72
|
+
job = target.submit(my_quantum_program)
|
|
74
73
|
|
|
75
74
|
# Wait for job to complete and fetch results
|
|
76
75
|
result = job.get_results()
|
{azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_authentication/_default.py
RENAMED
|
@@ -50,43 +50,43 @@ class _DefaultAzureCredential(_ChainedTokenCredential):
|
|
|
50
50
|
This is a mitigation for bug https://github.com/Azure/azure-sdk-for-python/issues/18975
|
|
51
51
|
We need the following parameters to enable auto-detection of tenant_id
|
|
52
52
|
- subscription_id
|
|
53
|
-
-
|
|
53
|
+
- arm_endpoint (defaults to the production url "https://management.azure.com/")
|
|
54
54
|
3) Add custom TokenFileCredential as first method to attempt,
|
|
55
55
|
which will look for a local access token.
|
|
56
56
|
"""
|
|
57
57
|
def __init__(
|
|
58
58
|
self,
|
|
59
|
-
|
|
59
|
+
arm_endpoint: str,
|
|
60
60
|
subscription_id: str,
|
|
61
61
|
client_id: Optional[str] = None,
|
|
62
62
|
tenant_id: Optional[str] = None,
|
|
63
63
|
authority: Optional[str] = None,
|
|
64
64
|
):
|
|
65
|
-
if
|
|
66
|
-
raise ValueError("
|
|
65
|
+
if arm_endpoint is None:
|
|
66
|
+
raise ValueError("arm_endpoint is mandatory parameter")
|
|
67
67
|
if subscription_id is None:
|
|
68
68
|
raise ValueError("subscription_id is mandatory parameter")
|
|
69
69
|
|
|
70
70
|
self.authority = self._authority_or_default(
|
|
71
71
|
authority=authority,
|
|
72
|
-
|
|
72
|
+
arm_endpoint=arm_endpoint)
|
|
73
73
|
self.tenant_id = tenant_id
|
|
74
74
|
self.subscription_id = subscription_id
|
|
75
|
-
self.
|
|
75
|
+
self.arm_endpoint = arm_endpoint
|
|
76
76
|
self.client_id = client_id
|
|
77
77
|
# credentials will be created lazy on the first call to get_token
|
|
78
78
|
super(_DefaultAzureCredential, self).__init__()
|
|
79
79
|
|
|
80
|
-
def _authority_or_default(self, authority: str,
|
|
80
|
+
def _authority_or_default(self, authority: str, arm_endpoint: str):
|
|
81
81
|
if authority:
|
|
82
82
|
return AzureIdentityInternals.normalize_authority(authority)
|
|
83
|
-
if
|
|
83
|
+
if arm_endpoint == ConnectionConstants.ARM_DOGFOOD_ENDPOINT:
|
|
84
84
|
return ConnectionConstants.DOGFOOD_AUTHORITY
|
|
85
85
|
return ConnectionConstants.AUTHORITY
|
|
86
86
|
|
|
87
87
|
def _initialize_credentials(self):
|
|
88
88
|
self._discover_tenant_id_(
|
|
89
|
-
|
|
89
|
+
arm_endpoint=self.arm_endpoint,
|
|
90
90
|
subscription_id=self.subscription_id)
|
|
91
91
|
credentials = []
|
|
92
92
|
credentials.append(_TokenFileCredential())
|
|
@@ -120,7 +120,7 @@ class _DefaultAzureCredential(_ChainedTokenCredential):
|
|
|
120
120
|
|
|
121
121
|
return super(_DefaultAzureCredential, self).get_token(*scopes, **kwargs)
|
|
122
122
|
|
|
123
|
-
def _discover_tenant_id_(self,
|
|
123
|
+
def _discover_tenant_id_(self, arm_endpoint:str, subscription_id:str):
|
|
124
124
|
"""
|
|
125
125
|
If the tenant_id was not given, try to obtain it
|
|
126
126
|
by calling the management endpoint for the subscription_id,
|
|
@@ -131,7 +131,7 @@ class _DefaultAzureCredential(_ChainedTokenCredential):
|
|
|
131
131
|
|
|
132
132
|
try:
|
|
133
133
|
url = (
|
|
134
|
-
f"{
|
|
134
|
+
f"{arm_endpoint.rstrip('/')}/subscriptions/"
|
|
135
135
|
+ f"{subscription_id}?api-version=2018-01-01"
|
|
136
136
|
+ "&discover-tenant-id" # used by the test recording infrastructure
|
|
137
137
|
)
|
|
@@ -17,7 +17,6 @@ class EnvironmentVariables:
|
|
|
17
17
|
QUANTUM_SUBSCRIPTION_ID = "AZURE_QUANTUM_SUBSCRIPTION_ID"
|
|
18
18
|
SUBSCRIPTION_ID = "SUBSCRIPTION_ID"
|
|
19
19
|
WORKSPACE_NAME = "AZURE_QUANTUM_WORKSPACE_NAME"
|
|
20
|
-
QUANTUM_BASE_URL = "AZURE_QUANTUM_BASEURL"
|
|
21
20
|
QUANTUM_ENV = "AZURE_QUANTUM_ENV"
|
|
22
21
|
AZURE_CLIENT_ID = SdkEnvironmentVariables.AZURE_CLIENT_ID
|
|
23
22
|
AZURE_CLIENT_SECRET = SdkEnvironmentVariables.AZURE_CLIENT_SECRET
|
|
@@ -33,7 +32,6 @@ class EnvironmentVariables:
|
|
|
33
32
|
QUANTUM_SUBSCRIPTION_ID,
|
|
34
33
|
SUBSCRIPTION_ID,
|
|
35
34
|
WORKSPACE_NAME,
|
|
36
|
-
QUANTUM_BASE_URL,
|
|
37
35
|
QUANTUM_ENV,
|
|
38
36
|
AZURE_CLIENT_ID,
|
|
39
37
|
AZURE_CLIENT_SECRET,
|
|
@@ -59,15 +57,15 @@ class ConnectionConstants:
|
|
|
59
57
|
DOGFOOD_AUTHORITY = "login.windows-ppe.net"
|
|
60
58
|
|
|
61
59
|
# pylint: disable=unnecessary-lambda-assignment
|
|
62
|
-
|
|
60
|
+
GET_QUANTUM_PRODUCTION_ENDPOINT = \
|
|
63
61
|
lambda location: f"https://{location}.quantum.azure.com/"
|
|
64
|
-
|
|
62
|
+
GET_QUANTUM_CANARY_ENDPOINT = \
|
|
65
63
|
lambda location: f"https://{location or 'eastus2euap'}.quantum.azure.com/"
|
|
66
|
-
|
|
64
|
+
GET_QUANTUM_DOGFOOD_ENDPOINT = \
|
|
67
65
|
lambda location: f"https://{location}.quantum-test.azure.com/"
|
|
68
66
|
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
ARM_PRODUCTION_ENDPOINT = "https://management.azure.com/"
|
|
68
|
+
ARM_DOGFOOD_ENDPOINT = "https://api-dogfood.resources.windows-int.net/"
|
|
71
69
|
|
|
72
70
|
VALID_RESOURCE_ID = (
|
|
73
71
|
lambda subscription_id, resource_group, workspace_name:
|
|
@@ -87,3 +85,7 @@ class ConnectionConstants:
|
|
|
87
85
|
)
|
|
88
86
|
|
|
89
87
|
QUANTUM_API_KEY_HEADER = "x-ms-quantum-api-key"
|
|
88
|
+
|
|
89
|
+
GUID_REGEX_PATTERN = (
|
|
90
|
+
r"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
|
|
91
|
+
)
|
{azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/_workspace_connection_params.py
RENAMED
|
@@ -19,6 +19,7 @@ from azure.quantum._constants import (
|
|
|
19
19
|
EnvironmentKind,
|
|
20
20
|
EnvironmentVariables,
|
|
21
21
|
ConnectionConstants,
|
|
22
|
+
GUID_REGEX_PATTERN,
|
|
22
23
|
)
|
|
23
24
|
|
|
24
25
|
class WorkspaceConnectionParams:
|
|
@@ -28,24 +29,24 @@ class WorkspaceConnectionParams:
|
|
|
28
29
|
"""
|
|
29
30
|
|
|
30
31
|
RESOURCE_ID_REGEX = re.compile(
|
|
31
|
-
|
|
32
|
+
fr"""
|
|
32
33
|
^
|
|
33
|
-
/subscriptions/(?P<subscription_id>
|
|
34
|
-
/resourceGroups/(?P<resource_group>[^\s/]
|
|
34
|
+
/subscriptions/(?P<subscription_id>{GUID_REGEX_PATTERN})
|
|
35
|
+
/resourceGroups/(?P<resource_group>[^\s/]+)
|
|
35
36
|
/providers/Microsoft\.Quantum
|
|
36
|
-
/Workspaces/(?P<workspace_name>[^\s/]
|
|
37
|
+
/Workspaces/(?P<workspace_name>[^\s/]+)
|
|
37
38
|
$
|
|
38
39
|
""",
|
|
39
40
|
re.VERBOSE | re.IGNORECASE)
|
|
40
41
|
|
|
41
42
|
CONNECTION_STRING_REGEX = re.compile(
|
|
42
|
-
|
|
43
|
+
fr"""
|
|
43
44
|
^
|
|
44
|
-
SubscriptionId=(?P<subscription_id>
|
|
45
|
-
ResourceGroupName=(?P<resource_group>[^\s
|
|
46
|
-
WorkspaceName=(?P<workspace_name>[^\s
|
|
47
|
-
ApiKey=(?P<api_key>[^\s
|
|
48
|
-
QuantumEndpoint=(?P<
|
|
45
|
+
SubscriptionId=(?P<subscription_id>{GUID_REGEX_PATTERN});
|
|
46
|
+
ResourceGroupName=(?P<resource_group>[^\s;]+);
|
|
47
|
+
WorkspaceName=(?P<workspace_name>[^\s;]+);
|
|
48
|
+
ApiKey=(?P<api_key>[^\s;]+);
|
|
49
|
+
QuantumEndpoint=(?P<quantum_endpoint>https://(?P<location>[^\s\.]+).quantum(?:-test)?.azure.com/);
|
|
49
50
|
""",
|
|
50
51
|
re.VERBOSE | re.IGNORECASE)
|
|
51
52
|
|
|
@@ -55,8 +56,8 @@ class WorkspaceConnectionParams:
|
|
|
55
56
|
resource_group: Optional[str] = None,
|
|
56
57
|
workspace_name: Optional[str] = None,
|
|
57
58
|
location: Optional[str] = None,
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
quantum_endpoint: Optional[str] = None,
|
|
60
|
+
arm_endpoint: Optional[str] = None,
|
|
60
61
|
environment: Union[str, EnvironmentKind, None] = None,
|
|
61
62
|
credential: Optional[object] = None,
|
|
62
63
|
resource_id: Optional[str] = None,
|
|
@@ -72,8 +73,8 @@ class WorkspaceConnectionParams:
|
|
|
72
73
|
# they have special getters/setters
|
|
73
74
|
self._location = None
|
|
74
75
|
self._environment = None
|
|
75
|
-
self.
|
|
76
|
-
self.
|
|
76
|
+
self._quantum_endpoint = None
|
|
77
|
+
self._arm_endpoint = None
|
|
77
78
|
# regular connection properties
|
|
78
79
|
self.subscription_id = None
|
|
79
80
|
self.resource_group = None
|
|
@@ -93,8 +94,8 @@ class WorkspaceConnectionParams:
|
|
|
93
94
|
self.apply_connection_string(connection_string)
|
|
94
95
|
self.merge(
|
|
95
96
|
api_version=api_version,
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
arm_endpoint=arm_endpoint,
|
|
98
|
+
quantum_endpoint=quantum_endpoint,
|
|
98
99
|
client_id=client_id,
|
|
99
100
|
credential=credential,
|
|
100
101
|
environment=environment,
|
|
@@ -138,60 +139,60 @@ class WorkspaceConnectionParams:
|
|
|
138
139
|
else value)
|
|
139
140
|
|
|
140
141
|
@property
|
|
141
|
-
def
|
|
142
|
-
"""
|
|
143
|
-
The api-key stored in a AzureKeyCredential.
|
|
144
|
-
"""
|
|
145
|
-
return (self.credential.key
|
|
146
|
-
if isinstance(self.credential, AzureKeyCredential)
|
|
147
|
-
else None)
|
|
148
|
-
|
|
149
|
-
@api_key.setter
|
|
150
|
-
def api_key(self, value: str):
|
|
151
|
-
if value:
|
|
152
|
-
self.credential = AzureKeyCredential(value)
|
|
153
|
-
self._api_key = value
|
|
154
|
-
|
|
155
|
-
@property
|
|
156
|
-
def base_url(self):
|
|
142
|
+
def quantum_endpoint(self):
|
|
157
143
|
"""
|
|
158
|
-
The data plane
|
|
159
|
-
Defaults to well-known
|
|
144
|
+
The Azure Quantum data plane endpoint.
|
|
145
|
+
Defaults to well-known endpoint based on the environment.
|
|
160
146
|
"""
|
|
161
|
-
if self.
|
|
162
|
-
return self.
|
|
147
|
+
if self._quantum_endpoint:
|
|
148
|
+
return self._quantum_endpoint
|
|
163
149
|
if not self.location:
|
|
164
150
|
raise ValueError("Location not specified")
|
|
165
151
|
if self.environment is EnvironmentKind.PRODUCTION:
|
|
166
|
-
return ConnectionConstants.
|
|
152
|
+
return ConnectionConstants.GET_QUANTUM_PRODUCTION_ENDPOINT(self.location)
|
|
167
153
|
if self.environment is EnvironmentKind.CANARY:
|
|
168
|
-
return ConnectionConstants.
|
|
154
|
+
return ConnectionConstants.GET_QUANTUM_CANARY_ENDPOINT(self.location)
|
|
169
155
|
if self.environment is EnvironmentKind.DOGFOOD:
|
|
170
|
-
return ConnectionConstants.
|
|
156
|
+
return ConnectionConstants.GET_QUANTUM_DOGFOOD_ENDPOINT(self.location)
|
|
171
157
|
raise ValueError(f"Unknown environment `{self.environment}`.")
|
|
172
158
|
|
|
173
|
-
@
|
|
174
|
-
def
|
|
175
|
-
self.
|
|
159
|
+
@quantum_endpoint.setter
|
|
160
|
+
def quantum_endpoint(self, value: str):
|
|
161
|
+
self._quantum_endpoint = value
|
|
176
162
|
|
|
177
163
|
@property
|
|
178
|
-
def
|
|
164
|
+
def arm_endpoint(self):
|
|
179
165
|
"""
|
|
180
|
-
The control plane
|
|
181
|
-
Defaults to well-known
|
|
166
|
+
The control plane endpoint.
|
|
167
|
+
Defaults to well-known arm_endpoint based on the environment.
|
|
182
168
|
"""
|
|
183
|
-
if self.
|
|
184
|
-
return self.
|
|
169
|
+
if self._arm_endpoint:
|
|
170
|
+
return self._arm_endpoint
|
|
185
171
|
if self.environment is EnvironmentKind.DOGFOOD:
|
|
186
|
-
return ConnectionConstants.
|
|
172
|
+
return ConnectionConstants.ARM_DOGFOOD_ENDPOINT
|
|
187
173
|
if self.environment in [EnvironmentKind.PRODUCTION,
|
|
188
174
|
EnvironmentKind.CANARY]:
|
|
189
|
-
return ConnectionConstants.
|
|
175
|
+
return ConnectionConstants.ARM_PRODUCTION_ENDPOINT
|
|
190
176
|
raise ValueError(f"Unknown environment `{self.environment}`.")
|
|
191
177
|
|
|
192
|
-
@
|
|
193
|
-
def
|
|
194
|
-
self.
|
|
178
|
+
@arm_endpoint.setter
|
|
179
|
+
def arm_endpoint(self, value: str):
|
|
180
|
+
self._arm_endpoint = value
|
|
181
|
+
|
|
182
|
+
@property
|
|
183
|
+
def api_key(self):
|
|
184
|
+
"""
|
|
185
|
+
The api-key stored in a AzureKeyCredential.
|
|
186
|
+
"""
|
|
187
|
+
return (self.credential.key
|
|
188
|
+
if isinstance(self.credential, AzureKeyCredential)
|
|
189
|
+
else None)
|
|
190
|
+
|
|
191
|
+
@api_key.setter
|
|
192
|
+
def api_key(self, value: str):
|
|
193
|
+
if value:
|
|
194
|
+
self.credential = AzureKeyCredential(value)
|
|
195
|
+
self._api_key = value
|
|
195
196
|
|
|
196
197
|
def __repr__(self):
|
|
197
198
|
"""
|
|
@@ -241,8 +242,8 @@ class WorkspaceConnectionParams:
|
|
|
241
242
|
resource_group: Optional[str] = None,
|
|
242
243
|
workspace_name: Optional[str] = None,
|
|
243
244
|
location: Optional[str] = None,
|
|
244
|
-
|
|
245
|
-
|
|
245
|
+
quantum_endpoint: Optional[str] = None,
|
|
246
|
+
arm_endpoint: Optional[str] = None,
|
|
246
247
|
environment: Union[str, EnvironmentKind, None] = None,
|
|
247
248
|
credential: Optional[object] = None,
|
|
248
249
|
user_agent: Optional[str] = None,
|
|
@@ -259,8 +260,8 @@ class WorkspaceConnectionParams:
|
|
|
259
260
|
"""
|
|
260
261
|
self._merge(
|
|
261
262
|
api_version=api_version,
|
|
262
|
-
|
|
263
|
-
|
|
263
|
+
arm_endpoint=arm_endpoint,
|
|
264
|
+
quantum_endpoint=quantum_endpoint,
|
|
264
265
|
client_id=client_id,
|
|
265
266
|
credential=credential,
|
|
266
267
|
environment=environment,
|
|
@@ -282,8 +283,8 @@ class WorkspaceConnectionParams:
|
|
|
282
283
|
resource_group: Optional[str] = None,
|
|
283
284
|
workspace_name: Optional[str] = None,
|
|
284
285
|
location: Optional[str] = None,
|
|
285
|
-
|
|
286
|
-
|
|
286
|
+
quantum_endpoint: Optional[str] = None,
|
|
287
|
+
arm_endpoint: Optional[str] = None,
|
|
287
288
|
environment: Union[str, EnvironmentKind, None] = None,
|
|
288
289
|
credential: Optional[object] = None,
|
|
289
290
|
user_agent: Optional[str] = None,
|
|
@@ -301,8 +302,8 @@ class WorkspaceConnectionParams:
|
|
|
301
302
|
"""
|
|
302
303
|
self._merge(
|
|
303
304
|
api_version=api_version,
|
|
304
|
-
|
|
305
|
-
|
|
305
|
+
arm_endpoint=arm_endpoint,
|
|
306
|
+
quantum_endpoint=quantum_endpoint,
|
|
306
307
|
client_id=client_id,
|
|
307
308
|
credential=credential,
|
|
308
309
|
environment=environment,
|
|
@@ -325,8 +326,8 @@ class WorkspaceConnectionParams:
|
|
|
325
326
|
resource_group: Optional[str] = None,
|
|
326
327
|
workspace_name: Optional[str] = None,
|
|
327
328
|
location: Optional[str] = None,
|
|
328
|
-
|
|
329
|
-
|
|
329
|
+
quantum_endpoint: Optional[str] = None,
|
|
330
|
+
arm_endpoint: Optional[str] = None,
|
|
330
331
|
environment: Union[str, EnvironmentKind, None] = None,
|
|
331
332
|
credential: Optional[object] = None,
|
|
332
333
|
user_agent: Optional[str] = None,
|
|
@@ -365,8 +366,8 @@ class WorkspaceConnectionParams:
|
|
|
365
366
|
self.api_key = _get_value_or_default(self.api_key, api_key)
|
|
366
367
|
# for these properties that have a default value in the getter, we use
|
|
367
368
|
# the private field as the old_value
|
|
368
|
-
self.
|
|
369
|
-
self.
|
|
369
|
+
self.quantum_endpoint = _get_value_or_default(self._quantum_endpoint, quantum_endpoint)
|
|
370
|
+
self.arm_endpoint = _get_value_or_default(self._arm_endpoint, arm_endpoint)
|
|
370
371
|
return self
|
|
371
372
|
|
|
372
373
|
def _merge_connection_params(
|
|
@@ -394,8 +395,8 @@ class WorkspaceConnectionParams:
|
|
|
394
395
|
# for these properties that have a default value in the getter,
|
|
395
396
|
# so we use the private field instead
|
|
396
397
|
# pylint: disable=protected-access
|
|
397
|
-
|
|
398
|
-
|
|
398
|
+
arm_endpoint=connection_params._arm_endpoint,
|
|
399
|
+
quantum_endpoint=connection_params._quantum_endpoint,
|
|
399
400
|
)
|
|
400
401
|
return self
|
|
401
402
|
|
|
@@ -407,7 +408,7 @@ class WorkspaceConnectionParams:
|
|
|
407
408
|
return (self.credential
|
|
408
409
|
or _DefaultAzureCredential(
|
|
409
410
|
subscription_id=self.subscription_id,
|
|
410
|
-
|
|
411
|
+
arm_endpoint=self.arm_endpoint,
|
|
411
412
|
tenant_id=self.tenant_id))
|
|
412
413
|
|
|
413
414
|
def get_auth_policy(self) -> Any:
|
|
@@ -506,8 +507,6 @@ class WorkspaceConnectionParams:
|
|
|
506
507
|
# because the getter return default values
|
|
507
508
|
self.environment = (self._environment
|
|
508
509
|
or os.environ.get(EnvironmentVariables.QUANTUM_ENV))
|
|
509
|
-
self.base_url = (self._base_url
|
|
510
|
-
or os.environ.get(EnvironmentVariables.QUANTUM_BASE_URL))
|
|
511
510
|
# only try to use the connection string from env var if
|
|
512
511
|
# we really need it
|
|
513
512
|
if (not self.location
|
|
@@ -540,7 +539,6 @@ class WorkspaceConnectionParams:
|
|
|
540
539
|
resource_group=get_value('resource_group'),
|
|
541
540
|
workspace_name=get_value('workspace_name'),
|
|
542
541
|
location=get_value('location'),
|
|
543
|
-
|
|
544
|
-
arm_base_url=get_value('arm_base_url'),
|
|
542
|
+
quantum_endpoint=get_value('quantum_endpoint'),
|
|
545
543
|
api_key=get_value('api_key'),
|
|
546
544
|
)
|
|
@@ -79,7 +79,7 @@ class Job(BaseJob, FilteredJob):
|
|
|
79
79
|
:type timeout_secs: int
|
|
80
80
|
:param print_progress: Print "." to stdout to display progress
|
|
81
81
|
:type print_progress: bool
|
|
82
|
-
:raises TimeoutError
|
|
82
|
+
:raises: :class:`TimeoutError` If the total poll time exceeds timeout, raise.
|
|
83
83
|
"""
|
|
84
84
|
self.refresh()
|
|
85
85
|
poll_wait = Job._default_poll_wait
|
|
@@ -106,10 +106,12 @@ class Job(BaseJob, FilteredJob):
|
|
|
106
106
|
"""Get job results by downloading the results blob from the
|
|
107
107
|
storage container linked via the workspace.
|
|
108
108
|
|
|
109
|
+
Raises :class:`RuntimeError` if job execution fails.
|
|
110
|
+
|
|
109
111
|
:param timeout_secs: Timeout in seconds, defaults to 300
|
|
110
112
|
:type timeout_secs: float
|
|
111
|
-
:raises RuntimeError: Raises RuntimeError if job execution failed
|
|
112
113
|
:return: Results dictionary with histogram shots, or raw results if not a json object.
|
|
114
|
+
:rtype: Any
|
|
113
115
|
"""
|
|
114
116
|
if self.results is not None:
|
|
115
117
|
return self.results
|
|
@@ -24,8 +24,6 @@ from azure.quantum.qiskit.backends.backend import AzureBackendBase
|
|
|
24
24
|
from azure.quantum.qiskit.job import AzureQuantumJob
|
|
25
25
|
from azure.quantum.qiskit.backends import *
|
|
26
26
|
|
|
27
|
-
# Target ID keyword for parameter-free solvers
|
|
28
|
-
PARAMETER_FREE = "parameterfree"
|
|
29
27
|
|
|
30
28
|
QISKIT_USER_AGENT = "azure-quantum-qiskit"
|
|
31
29
|
|
|
@@ -6,10 +6,6 @@
|
|
|
6
6
|
"""Defines set of targets for interacting with Azure Quantum"""
|
|
7
7
|
|
|
8
8
|
from .target import Target
|
|
9
|
-
from .solvers import Solver
|
|
10
|
-
from .toshiba import (
|
|
11
|
-
SimulatedBifurcationMachine
|
|
12
|
-
)
|
|
13
9
|
from .ionq import IonQ
|
|
14
10
|
from .quantinuum import Quantinuum
|
|
15
11
|
from .rigetti import Rigetti
|
|
@@ -22,7 +18,6 @@ DEFAULT_TARGETS = {
|
|
|
22
18
|
"ionq": IonQ,
|
|
23
19
|
"quantinuum": Quantinuum,
|
|
24
20
|
"rigetti": Rigetti,
|
|
25
|
-
"toshiba": Solver,
|
|
26
21
|
"pasqal": Pasqal
|
|
27
22
|
}
|
|
28
23
|
|
|
@@ -27,13 +27,13 @@ class MicrosoftElementsDftJob(Job):
|
|
|
27
27
|
|
|
28
28
|
:param timeout_secs: Timeout in seconds, defaults to 300
|
|
29
29
|
:type timeout_secs: float
|
|
30
|
-
:raises RuntimeError
|
|
30
|
+
:raises: :class:`RuntimeError` Raises RuntimeError if job execution failed
|
|
31
31
|
:return: Results dictionary with histogram shots, or raw results if not a json object.
|
|
32
32
|
"""
|
|
33
33
|
|
|
34
34
|
try:
|
|
35
35
|
job_results = super().get_results(timeout_secs)
|
|
36
|
-
return job_results
|
|
36
|
+
return job_results
|
|
37
37
|
except JobFailedWithResultsError as e:
|
|
38
38
|
failure_results = e.get_failure_results()
|
|
39
39
|
if MicrosoftElementsDftJob._is_dft_failure_results(failure_results):
|
{azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/rigetti/target.py
RENAMED
|
@@ -30,7 +30,6 @@ class RigettiTarget(str, Enum):
|
|
|
30
30
|
"""A simulator target for Quil. See https://github.com/quil-lang/qvm for more info."""
|
|
31
31
|
|
|
32
32
|
ANKAA_9Q_1 = "rigetti.qpu.ankaa-9q-1"
|
|
33
|
-
ASPEN_M_3 = "rigetti.qpu.aspen-m-3"
|
|
34
33
|
ANKAA_2 = "rigetti.qpu.ankaa-2"
|
|
35
34
|
|
|
36
35
|
def simulators() -> List[str]:
|
|
@@ -43,7 +42,6 @@ class RigettiTarget(str, Enum):
|
|
|
43
42
|
"""Returns a list of QPU targets"""
|
|
44
43
|
return [
|
|
45
44
|
RigettiTarget.ANKAA_9Q_1.value,
|
|
46
|
-
RigettiTarget.ASPEN_M_3.value,
|
|
47
45
|
RigettiTarget.ANKAA_2.value,
|
|
48
46
|
]
|
|
49
47
|
|
|
@@ -54,8 +52,6 @@ class RigettiTarget(str, Enum):
|
|
|
54
52
|
return 9
|
|
55
53
|
elif target_name == RigettiTarget.QVM.value:
|
|
56
54
|
return 20
|
|
57
|
-
elif target_name == RigettiTarget.ASPEN_M_3.value:
|
|
58
|
-
return 80
|
|
59
55
|
elif target_name == RigettiTarget.ANKAA_2.value:
|
|
60
56
|
return 84
|
|
61
57
|
else:
|
{azure-quantum-1.1.1.dev0 → azure-quantum-1.1.2.dev0}/azure/quantum/target/target_factory.py
RENAMED
|
@@ -10,9 +10,6 @@ if TYPE_CHECKING:
|
|
|
10
10
|
from azure.quantum import Workspace
|
|
11
11
|
from azure.quantum._client.models import TargetStatus
|
|
12
12
|
|
|
13
|
-
# Target ID keyword for parameter-free solvers
|
|
14
|
-
PARAMETER_FREE = "parameterfree"
|
|
15
|
-
|
|
16
13
|
|
|
17
14
|
class TargetFactory:
|
|
18
15
|
"""Factory class for generating a Target based on a
|
|
@@ -136,13 +133,10 @@ https://github.com/microsoft/qdk-python/issues.")
|
|
|
136
133
|
return self.from_target_status(*target_statuses[0], **kwargs)
|
|
137
134
|
|
|
138
135
|
else:
|
|
139
|
-
# Don't return redundant
|
|
136
|
+
# Don't return redundant targets
|
|
140
137
|
return [
|
|
141
138
|
self.from_target_status(_provider_id, status, **kwargs)
|
|
142
139
|
for _provider_id, status in target_statuses
|
|
143
|
-
if
|
|
144
|
-
and (
|
|
145
|
-
_provider_id.lower() in self._default_targets
|
|
140
|
+
if _provider_id.lower() in self._default_targets
|
|
146
141
|
or status.id in self._all_targets
|
|
147
|
-
)
|
|
148
142
|
]
|