Skip to content

Commit a73842f

Browse files
authored
Allow to set priority for Jobs and Sessions (#713)
1 parent 8f6d008 commit a73842f

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

azure-quantum/azure/quantum/job/base_job.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ def from_input_data(
8585
output_data_format: str = None,
8686
input_params: Dict[str, Any] = None,
8787
session_id: Optional[str] = None,
88+
priority: Optional[str] = None,
8889
**kwargs
8990
) -> "BaseJob":
9091
"""Create a new Azure Quantum job based on a raw input_data payload.
@@ -117,6 +118,8 @@ def from_input_data(
117118
:type input_params: Dict[str, Any]
118119
:param input_params: Input params for job
119120
:type input_params: Dict[str, Any]
121+
:param priority: Priority of job.
122+
:type priority: str
120123
:return: Azure Quantum Job
121124
:rtype: Job
122125
"""
@@ -153,6 +156,7 @@ def from_input_data(
153156
provider_id=provider_id,
154157
input_params=input_params,
155158
session_id=session_id,
159+
priority=priority,
156160
**kwargs
157161
)
158162

@@ -171,6 +175,7 @@ def from_storage_uri(
171175
input_params: Dict[str, Any] = None,
172176
submit_job: bool = True,
173177
session_id: Optional[str] = None,
178+
priority: Optional[str] = None,
174179
**kwargs
175180
) -> "BaseJob":
176181
"""Create new Job from URI if input data is already uploaded
@@ -198,6 +203,8 @@ def from_storage_uri(
198203
:type input_params: Dict[str, Any]
199204
:param submit_job: If job should be submitted to the service, defaults to True
200205
:type submit_job: bool
206+
:param priority: Priority of job.
207+
:type priority: str
201208
:return: Job instance
202209
:rtype: Job
203210
"""
@@ -223,6 +230,7 @@ def from_storage_uri(
223230
target=target,
224231
input_params=input_params,
225232
session_id=session_id,
233+
priority=priority,
226234
**kwargs
227235
)
228236
job = cls(workspace, details, **kwargs)

azure-quantum/azure/quantum/job/session.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ class Session(WorkspaceItem):
4848
close and not accept further jobs.
4949
:type job_failure_policy: Union[str, SessionJobFailurePolicy, None]
5050
51+
:param priority: Priority of the session.
52+
:type priority: Optional[str]
53+
5154
:raises ValueError: if details is passed along individual parameters,
5255
or if required parameters are missing.
5356
"""
@@ -61,6 +64,7 @@ def __init__(
6164
id: Optional[str] = None,
6265
name: Optional[str] = None,
6366
job_failure_policy: Union[str, SessionJobFailurePolicy, None] = None,
67+
priority: Optional[str] = None,
6468
**kwargs):
6569
from azure.quantum.target import Target
6670
target_name = target.name if isinstance(target, Target) else target
@@ -92,6 +96,7 @@ def __init__(
9296
provider_id=provider_id,
9397
target=target_name,
9498
job_failure_policy=job_failure_policy,
99+
priority=priority,
95100
**kwargs)
96101

97102
super().__init__(
@@ -259,6 +264,7 @@ def open_session(
259264
id: Optional[str] = None,
260265
name: Optional[str] = None,
261266
job_failure_policy: Union[str, SessionJobFailurePolicy, None] = None,
267+
priority: Optional[str] = None,
262268
**kwargs
263269
) -> Session:
264270
"""Opens a session and associates all future job submissions to that
@@ -295,6 +301,10 @@ def open_session(
295301
296302
:param job_failure_policy: The policy that determines when a session would fail,
297303
close and not accept further jobs.
304+
:type job_failure_policy: Union[str, SessionJobFailurePolicy, None]
305+
306+
:param priority: Priority of the session.
307+
:type priority: Optional[str]
298308
299309
:return: The session object with updated details after its opening.
300310
:rtype: Session
@@ -309,6 +319,7 @@ def open_session(
309319
workspace=self._get_azure_workspace(),
310320
target=self._get_azure_target_id(),
311321
provider_id=self._get_azure_provider_id(),
322+
priority=priority,
312323
**kwargs)
313324
self.latest_session = session
314325
return session.open()

azure-quantum/azure/quantum/target/target.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright (c) Microsoft Corporation. All rights reserved.
33
# Licensed under the MIT License.
44
##
5-
from typing import TYPE_CHECKING, Any, Dict, Union, Type, Protocol, runtime_checkable
5+
from typing import TYPE_CHECKING, Any, Dict, Union, Type, Optional, Protocol, runtime_checkable
66
from dataclasses import dataclass
77
import io
88
import json
@@ -210,6 +210,7 @@ def submit(
210210
name: str = "azure-quantum-job",
211211
shots: int = None,
212212
input_params: Union[Dict[str, Any], InputParams, None] = None,
213+
priority: Optional[str] = None,
213214
**kwargs
214215
) -> Job:
215216
"""Submit input data and return Job.
@@ -225,6 +226,8 @@ def submit(
225226
:type shots: int
226227
:param input_params: Input parameters
227228
:type input_params: Dict[str, Any]
229+
:param priority: Priority of job.
230+
:type priority: str
228231
:return: Azure Quantum job
229232
:rtype: azure.quantum.job.Job
230233
"""
@@ -320,6 +323,7 @@ def _get_entrypoint(input_data):
320323
output_data_format=output_data_format,
321324
input_params=input_params,
322325
session_id=self.get_latest_session_id(),
326+
priority=priority,
323327
**kwargs
324328
)
325329

0 commit comments

Comments
 (0)