diff --git a/azure-quantum/azure/quantum/job/base_job.py b/azure-quantum/azure/quantum/job/base_job.py index 4339c330..8d373247 100644 --- a/azure-quantum/azure/quantum/job/base_job.py +++ b/azure-quantum/azure/quantum/job/base_job.py @@ -85,6 +85,7 @@ def from_input_data( output_data_format: str = None, input_params: Dict[str, Any] = None, session_id: Optional[str] = None, + priority: Optional[str] = None, **kwargs ) -> "BaseJob": """Create a new Azure Quantum job based on a raw input_data payload. @@ -117,6 +118,8 @@ def from_input_data( :type input_params: Dict[str, Any] :param input_params: Input params for job :type input_params: Dict[str, Any] + :param priority: Priority of job. + :type priority: str :return: Azure Quantum Job :rtype: Job """ @@ -153,6 +156,7 @@ def from_input_data( provider_id=provider_id, input_params=input_params, session_id=session_id, + priority=priority, **kwargs ) @@ -171,6 +175,7 @@ def from_storage_uri( input_params: Dict[str, Any] = None, submit_job: bool = True, session_id: Optional[str] = None, + priority: Optional[str] = None, **kwargs ) -> "BaseJob": """Create new Job from URI if input data is already uploaded @@ -198,6 +203,8 @@ def from_storage_uri( :type input_params: Dict[str, Any] :param submit_job: If job should be submitted to the service, defaults to True :type submit_job: bool + :param priority: Priority of job. + :type priority: str :return: Job instance :rtype: Job """ @@ -223,6 +230,7 @@ def from_storage_uri( target=target, input_params=input_params, session_id=session_id, + priority=priority, **kwargs ) job = cls(workspace, details, **kwargs) diff --git a/azure-quantum/azure/quantum/job/session.py b/azure-quantum/azure/quantum/job/session.py index 9756135c..d04711b8 100644 --- a/azure-quantum/azure/quantum/job/session.py +++ b/azure-quantum/azure/quantum/job/session.py @@ -48,6 +48,9 @@ class Session(WorkspaceItem): close and not accept further jobs. :type job_failure_policy: Union[str, SessionJobFailurePolicy, None] + :param priority: Priority of the session. + :type priority: Optional[str] + :raises ValueError: if details is passed along individual parameters, or if required parameters are missing. """ @@ -61,6 +64,7 @@ def __init__( id: Optional[str] = None, name: Optional[str] = None, job_failure_policy: Union[str, SessionJobFailurePolicy, None] = None, + priority: Optional[str] = None, **kwargs): from azure.quantum.target import Target target_name = target.name if isinstance(target, Target) else target @@ -92,6 +96,7 @@ def __init__( provider_id=provider_id, target=target_name, job_failure_policy=job_failure_policy, + priority=priority, **kwargs) super().__init__( @@ -259,6 +264,7 @@ def open_session( id: Optional[str] = None, name: Optional[str] = None, job_failure_policy: Union[str, SessionJobFailurePolicy, None] = None, + priority: Optional[str] = None, **kwargs ) -> Session: """Opens a session and associates all future job submissions to that @@ -295,6 +301,10 @@ def open_session( :param job_failure_policy: The policy that determines when a session would fail, close and not accept further jobs. + :type job_failure_policy: Union[str, SessionJobFailurePolicy, None] + + :param priority: Priority of the session. + :type priority: Optional[str] :return: The session object with updated details after its opening. :rtype: Session @@ -309,6 +319,7 @@ def open_session( workspace=self._get_azure_workspace(), target=self._get_azure_target_id(), provider_id=self._get_azure_provider_id(), + priority=priority, **kwargs) self.latest_session = session return session.open() diff --git a/azure-quantum/azure/quantum/target/target.py b/azure-quantum/azure/quantum/target/target.py index 78eec242..facf12b7 100644 --- a/azure-quantum/azure/quantum/target/target.py +++ b/azure-quantum/azure/quantum/target/target.py @@ -2,7 +2,7 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. ## -from typing import TYPE_CHECKING, Any, Dict, Union, Type, Protocol, runtime_checkable +from typing import TYPE_CHECKING, Any, Dict, Union, Type, Optional, Protocol, runtime_checkable from dataclasses import dataclass import io import json @@ -210,6 +210,7 @@ def submit( name: str = "azure-quantum-job", shots: int = None, input_params: Union[Dict[str, Any], InputParams, None] = None, + priority: Optional[str] = None, **kwargs ) -> Job: """Submit input data and return Job. @@ -225,6 +226,8 @@ def submit( :type shots: int :param input_params: Input parameters :type input_params: Dict[str, Any] + :param priority: Priority of job. + :type priority: str :return: Azure Quantum job :rtype: azure.quantum.job.Job """ @@ -320,6 +323,7 @@ def _get_entrypoint(input_data): output_data_format=output_data_format, input_params=input_params, session_id=self.get_latest_session_id(), + priority=priority, **kwargs )