diff --git a/pyproject.toml b/pyproject.toml index 5da6034..524b672 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [tool.ruff] -target-version = "py39" +target-version = "py310" line-length = 100 lint.isort = { known-first-party = [ "braket", diff --git a/setup.py b/setup.py index a6bf495..711df72 100644 --- a/setup.py +++ b/setup.py @@ -26,7 +26,10 @@ python_requires=">= 3.11", packages=find_namespace_packages(where="src", exclude=("test",)), package_dir={"": "src"}, - install_requires=["pydantic>2"], + install_requires=[ + "pydantic>2", + "setuptools==81.0.0", # pin until https://github.com/pypa/setuptools/issues/5174 is fixed + ], extras_require={ "test": [ "jsonschema", diff --git a/src/braket/device_schema/aqt/aqt_device_capabilities_v1.py b/src/braket/device_schema/aqt/aqt_device_capabilities_v1.py index 03d46b1..c187690 100644 --- a/src/braket/device_schema/aqt/aqt_device_capabilities_v1.py +++ b/src/braket/device_schema/aqt/aqt_device_capabilities_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Union from pydantic.v1 import Field @@ -50,8 +49,8 @@ class AqtDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[OpenQASMDeviceActionProperties, OpenQASMProgramSetDeviceActionProperties], + DeviceActionType | str, + OpenQASMDeviceActionProperties | OpenQASMProgramSetDeviceActionProperties, ] paradigm: GateModelQpuParadigmProperties provider: AqtProviderProperties diff --git a/src/braket/device_schema/device_action_properties.py b/src/braket/device_schema/device_action_properties.py index 704d77c..fa65c9d 100644 --- a/src/braket/device_schema/device_action_properties.py +++ b/src/braket/device_schema/device_action_properties.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from enum import Enum -from typing import Union from pydantic.v1 import BaseModel @@ -49,4 +48,4 @@ class DeviceActionProperties(BaseModel): """ version: list[str] - actionType: Union[DeviceActionType, str] + actionType: DeviceActionType | str diff --git a/src/braket/device_schema/device_capabilities.py b/src/braket/device_schema/device_capabilities.py index 9391a4c..341093f 100644 --- a/src/braket/device_schema/device_capabilities.py +++ b/src/braket/device_schema/device_capabilities.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Union from pydantic.v1 import BaseModel @@ -72,5 +71,5 @@ class DeviceCapabilities(BaseModel): """ service: DeviceServiceProperties - action: dict[Union[DeviceActionType, str], DeviceActionProperties] + action: dict[DeviceActionType | str, DeviceActionProperties] deviceParameters: dict diff --git a/src/braket/device_schema/device_execution_window.py b/src/braket/device_schema/device_execution_window.py index 4a8021d..3b60eae 100644 --- a/src/braket/device_schema/device_execution_window.py +++ b/src/braket/device_schema/device_execution_window.py @@ -13,7 +13,6 @@ from datetime import time from enum import Enum -from typing import Union from pydantic.v1 import BaseModel @@ -67,6 +66,6 @@ class DeviceExecutionWindow(BaseModel): """ - executionDay: Union[ExecutionDay, str] + executionDay: ExecutionDay | str windowStartHour: time windowEndHour: time diff --git a/src/braket/device_schema/device_service_properties_v1.py b/src/braket/device_schema/device_service_properties_v1.py index a429c2b..3633dca 100644 --- a/src/braket/device_schema/device_service_properties_v1.py +++ b/src/braket/device_schema/device_service_properties_v1.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from datetime import datetime -from typing import Optional from pydantic.v1 import BaseModel, Field @@ -61,9 +60,9 @@ class DeviceDocumentation(BaseModel): >>> DeviceDocumentation.parse_raw(json.dumps(input_json)) """ - imageUrl: Optional[str] - summary: Optional[str] - externalDocumentationUrl: Optional[str] + imageUrl: str | None + summary: str | None + externalDocumentationUrl: str | None class DeviceServiceProperties(BraketSchemaBase): @@ -120,8 +119,8 @@ class DeviceServiceProperties(BraketSchemaBase): braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) executionWindows: list[DeviceExecutionWindow] shotsRange: tuple[int, int] - deviceCost: Optional[DeviceCost] - deviceDocumentation: Optional[DeviceDocumentation] - deviceLocation: Optional[str] - updatedAt: Optional[datetime] - getTaskPollIntervalMillis: Optional[int] + deviceCost: DeviceCost | None + deviceDocumentation: DeviceDocumentation | None + deviceLocation: str | None + updatedAt: datetime | None + getTaskPollIntervalMillis: int | None diff --git a/src/braket/device_schema/dwave/dwave_2000Q_device_level_parameters_v1.py b/src/braket/device_schema/dwave/dwave_2000Q_device_level_parameters_v1.py index 5f405e1..9b788e6 100644 --- a/src/braket/device_schema/dwave/dwave_2000Q_device_level_parameters_v1.py +++ b/src/braket/device_schema/dwave/dwave_2000Q_device_level_parameters_v1.py @@ -11,7 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union +# ruff: noqa: N999 from pydantic.v1 import Field @@ -80,20 +80,20 @@ class Dwave2000QDeviceLevelParameters(BraketSchemaBase): name="braket.device_schema.dwave.dwave_2000Q_device_level_parameters", version="1" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) - annealingOffsets: Optional[list[float]] - annealingSchedule: Optional[list[list[float]]] - annealingDuration: Optional[float] = Field(gt=0) - autoScale: Optional[bool] - beta: Optional[float] - chains: Optional[list[list[int]]] - compensateFluxDrift: Optional[bool] - fluxBiases: Optional[list[float]] - initialState: Optional[list[int]] - maxResults: Optional[int] = Field(gt=0) - postprocessingType: Optional[Union[PostProcessingType, str]] - programmingThermalizationDuration: Optional[int] - readoutThermalizationDuration: Optional[int] - reduceIntersampleCorrelation: Optional[bool] - reinitializeState: Optional[bool] - resultFormat: Optional[ResultFormat] - spinReversalTransformCount: Optional[int] = Field(gt=0) + annealingOffsets: list[float] | None + annealingSchedule: list[list[float]] | None + annealingDuration: float | None = Field(gt=0) + autoScale: bool | None + beta: float | None + chains: list[list[int]] | None + compensateFluxDrift: bool | None + fluxBiases: list[float] | None + initialState: list[int] | None + maxResults: int | None = Field(gt=0) + postprocessingType: PostProcessingType | str | None + programmingThermalizationDuration: int | None + readoutThermalizationDuration: int | None + reduceIntersampleCorrelation: bool | None + reinitializeState: bool | None + resultFormat: ResultFormat | None + spinReversalTransformCount: int | None = Field(gt=0) diff --git a/src/braket/device_schema/dwave/dwave_2000Q_device_parameters_v1.py b/src/braket/device_schema/dwave/dwave_2000Q_device_parameters_v1.py index afb5732..1ccc234 100644 --- a/src/braket/device_schema/dwave/dwave_2000Q_device_parameters_v1.py +++ b/src/braket/device_schema/dwave/dwave_2000Q_device_parameters_v1.py @@ -11,6 +11,8 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License +# ruff: noqa: N999 + from pydantic.v1 import Field from braket.device_schema.dwave.dwave_2000Q_device_level_parameters_v1 import ( diff --git a/src/braket/device_schema/dwave/dwave_advantage_device_level_parameters_v1.py b/src/braket/device_schema/dwave/dwave_advantage_device_level_parameters_v1.py index 43e5294..b4354ba 100644 --- a/src/braket/device_schema/dwave/dwave_advantage_device_level_parameters_v1.py +++ b/src/braket/device_schema/dwave/dwave_advantage_device_level_parameters_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import Field @@ -69,17 +68,17 @@ class DwaveAdvantageDeviceLevelParameters(BraketSchemaBase): name="braket.device_schema.dwave.dwave_advantage_device_level_parameters", version="1" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) - annealingOffsets: Optional[list[float]] - annealingSchedule: Optional[list[list[float]]] - annealingDuration: Optional[float] = Field(gt=0) - autoScale: Optional[bool] - compensateFluxDrift: Optional[bool] - fluxBiases: Optional[list[float]] - initialState: Optional[list[int]] - maxResults: Optional[int] = Field(gt=0) - programmingThermalizationDuration: Optional[int] - readoutThermalizationDuration: Optional[int] - reduceIntersampleCorrelation: Optional[bool] - reinitializeState: Optional[bool] - resultFormat: Optional[ResultFormat] - spinReversalTransformCount: Optional[int] = Field(gt=0) + annealingOffsets: list[float] | None + annealingSchedule: list[list[float]] | None + annealingDuration: float | None = Field(gt=0) + autoScale: bool | None + compensateFluxDrift: bool | None + fluxBiases: list[float] | None + initialState: list[int] | None + maxResults: int | None = Field(gt=0) + programmingThermalizationDuration: int | None + readoutThermalizationDuration: int | None + reduceIntersampleCorrelation: bool | None + reinitializeState: bool | None + resultFormat: ResultFormat | None + spinReversalTransformCount: int | None = Field(gt=0) diff --git a/src/braket/device_schema/dwave/dwave_device_parameters_v1.py b/src/braket/device_schema/dwave/dwave_device_parameters_v1.py index 9d1c3dc..5d78295 100644 --- a/src/braket/device_schema/dwave/dwave_device_parameters_v1.py +++ b/src/braket/device_schema/dwave/dwave_device_parameters_v1.py @@ -10,7 +10,6 @@ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union from pydantic.v1 import Field @@ -54,7 +53,7 @@ class DwaveDeviceParameters(BraketSchemaBase): name="braket.device_schema.dwave.dwave_device_parameters", version="1" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) - providerLevelParameters: Optional[DwaveProviderLevelParameters] - deviceLevelParameters: Optional[ - Union[DwaveAdvantageDeviceLevelParameters, Dwave2000QDeviceLevelParameters] - ] + providerLevelParameters: DwaveProviderLevelParameters | None + deviceLevelParameters: ( + DwaveAdvantageDeviceLevelParameters | Dwave2000QDeviceLevelParameters | None + ) diff --git a/src/braket/device_schema/dwave/dwave_provider_level_parameters_v1.py b/src/braket/device_schema/dwave/dwave_provider_level_parameters_v1.py index ce0d635..d63d300 100644 --- a/src/braket/device_schema/dwave/dwave_provider_level_parameters_v1.py +++ b/src/braket/device_schema/dwave/dwave_provider_level_parameters_v1.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from enum import Enum -from typing import Optional, Union from pydantic.v1 import Field @@ -97,20 +96,20 @@ class DwaveProviderLevelParameters(BraketSchemaBase): name="braket.device_schema.dwave.dwave_provider_level_parameters", version="1" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) - annealingOffsets: Optional[list[float]] - annealingSchedule: Optional[list[list[float]]] - annealingDuration: Optional[int] = Field(gt=0) - autoScale: Optional[bool] - beta: Optional[float] - chains: Optional[list[list[int]]] - compensateFluxDrift: Optional[bool] - fluxBiases: Optional[list[float]] - initialState: Optional[list[int]] - maxResults: Optional[int] = Field(gt=0) - postprocessingType: Optional[Union[PostProcessingType, str]] - programmingThermalizationDuration: Optional[int] - readoutThermalizationDuration: Optional[int] - reduceIntersampleCorrelation: Optional[bool] - reinitializeState: Optional[bool] - resultFormat: Optional[ResultFormat] - spinReversalTransformCount: Optional[int] = Field(gt=0) + annealingOffsets: list[float] | None + annealingSchedule: list[list[float]] | None + annealingDuration: int | None = Field(gt=0) + autoScale: bool | None + beta: float | None + chains: list[list[int]] | None + compensateFluxDrift: bool | None + fluxBiases: list[float] | None + initialState: list[int] | None + maxResults: int | None = Field(gt=0) + postprocessingType: PostProcessingType | str | None + programmingThermalizationDuration: int | None + readoutThermalizationDuration: int | None + reduceIntersampleCorrelation: bool | None + reinitializeState: bool | None + resultFormat: ResultFormat | None + spinReversalTransformCount: int | None = Field(gt=0) diff --git a/src/braket/device_schema/ionq/__init__.py b/src/braket/device_schema/ionq/__init__.py index a98f05b..3eea18d 100644 --- a/src/braket/device_schema/ionq/__init__.py +++ b/src/braket/device_schema/ionq/__init__.py @@ -15,6 +15,6 @@ IonqDeviceCapabilities, ) from braket.device_schema.ionq.ionq_device_parameters_v1 import IonqDeviceParameters # noqa: F401 -from braket.device_schema.ionq.ionq_provider_properties_v1 import ( # noqa: F401, E501 +from braket.device_schema.ionq.ionq_provider_properties_v1 import ( # noqa: F401 IonqProviderProperties, ) diff --git a/src/braket/device_schema/ionq/ionq_device_capabilities_v1.py b/src/braket/device_schema/ionq/ionq_device_capabilities_v1.py index 2c387ad..662e613 100644 --- a/src/braket/device_schema/ionq/ionq_device_capabilities_v1.py +++ b/src/braket/device_schema/ionq/ionq_device_capabilities_v1.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. import json -from typing import Optional, Union from pydantic.v1 import Field @@ -126,12 +125,12 @@ class IonqDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[OpenQASMDeviceActionProperties, JaqcdDeviceActionProperties], + DeviceActionType | str, + OpenQASMDeviceActionProperties | JaqcdDeviceActionProperties, ] paradigm: GateModelQpuParadigmProperties - provider: Optional[IonqProviderProperties] - standardized: Optional[StandardizedGateModelQpuDeviceProperties] + provider: IonqProviderProperties | None + standardized: StandardizedGateModelQpuDeviceProperties | None class Config: # Pydantic does not use the custom encoders/decoders of nested models: diff --git a/src/braket/device_schema/ionq/ionq_device_parameters_v1.py b/src/braket/device_schema/ionq/ionq_device_parameters_v1.py index f070e9b..aed1071 100644 --- a/src/braket/device_schema/ionq/ionq_device_parameters_v1.py +++ b/src/braket/device_schema/ionq/ionq_device_parameters_v1.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from importlib import import_module -from typing import Optional from pydantic.v1 import Field, validator @@ -54,7 +53,7 @@ class IonqDeviceParameters(BraketSchemaBase): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) paradigmParameters: GateModelParameters - errorMitigation: Optional[list[ErrorMitigationScheme]] = None + errorMitigation: list[ErrorMitigationScheme] | None = None @validator("errorMitigation", each_item=True, pre=True) def validate_em(cls, value, field): diff --git a/src/braket/device_schema/ionq/ionq_provider_properties_v1.py b/src/braket/device_schema/ionq/ionq_provider_properties_v1.py index 8df5ceb..9b9ca14 100644 --- a/src/braket/device_schema/ionq/ionq_provider_properties_v1.py +++ b/src/braket/device_schema/ionq/ionq_provider_properties_v1.py @@ -13,7 +13,6 @@ import json from importlib import import_module -from typing import Optional from pydantic.v1 import Field @@ -97,7 +96,7 @@ class IonqProviderProperties(BraketSchemaBase): braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) fidelity: dict[str, dict[str, float]] timing: dict[str, float] - errorMitigation: Optional[dict[type[ErrorMitigationScheme], ErrorMitigationProperties]] = None + errorMitigation: dict[type[ErrorMitigationScheme], ErrorMitigationProperties] | None = None class Config: json_loads = _loads_with_error_mitigation diff --git a/src/braket/device_schema/iqm/iqm_device_capabilities_v1.py b/src/braket/device_schema/iqm/iqm_device_capabilities_v1.py index 6286a86..e764d3e 100644 --- a/src/braket/device_schema/iqm/iqm_device_capabilities_v1.py +++ b/src/braket/device_schema/iqm/iqm_device_capabilities_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import Field @@ -51,9 +50,9 @@ class IqmDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[OpenQASMDeviceActionProperties, OpenQASMProgramSetDeviceActionProperties], + DeviceActionType | str, + OpenQASMDeviceActionProperties | OpenQASMProgramSetDeviceActionProperties, ] paradigm: GateModelQpuParadigmProperties - provider: Optional[IqmProviderProperties] - standardized: Optional[StandardizedGateModelQpuDeviceProperties] + provider: IqmProviderProperties | None + standardized: StandardizedGateModelQpuDeviceProperties | None diff --git a/src/braket/device_schema/iqm/iqm_provider_properties_v1.py b/src/braket/device_schema/iqm/iqm_provider_properties_v1.py index 8f37057..dca06c8 100644 --- a/src/braket/device_schema/iqm/iqm_provider_properties_v1.py +++ b/src/braket/device_schema/iqm/iqm_provider_properties_v1.py @@ -11,18 +11,18 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import TypeVar, Union +from typing import TypeVar from pydantic.v1 import Field from braket.schema_common.schema_base import BraketSchemaBase from braket.schema_common.schema_header import BraketSchemaHeader -GateFidelityType = TypeVar("GateFidelityType", bound=dict[str, Union[str, float]]) -OneQubitType = TypeVar("OneQubitType", bound=Union[float, list[GateFidelityType]]) -TwoQubitType = TypeVar("TwoQubitType", bound=dict[str, Union[float, dict[str, int]]]) +GateFidelityType = TypeVar("GateFidelityType", bound=dict[str, str | float]) +OneQubitType = TypeVar("OneQubitType", bound=float | list[GateFidelityType]) +TwoQubitType = TypeVar("TwoQubitType", bound=dict[str, float | dict[str, int]]) -QubitType = TypeVar("QubitType", bound=dict[str, Union[OneQubitType, TwoQubitType]]) +QubitType = TypeVar("QubitType", bound=dict[str, OneQubitType | TwoQubitType]) class IqmProviderProperties(BraketSchemaBase): diff --git a/src/braket/device_schema/jaqcd_device_action_properties.py b/src/braket/device_schema/jaqcd_device_action_properties.py index 626898c..7959cf5 100644 --- a/src/braket/device_schema/jaqcd_device_action_properties.py +++ b/src/braket/device_schema/jaqcd_device_action_properties.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional from pydantic.v1 import constr @@ -50,5 +49,5 @@ class JaqcdDeviceActionProperties(DeviceActionProperties): actionType: constr(regex=r"^braket\.ir\.jaqcd\.program$") supportedOperations: list[str] - supportedResultTypes: Optional[list[ResultType]] - disabledQubitRewiringSupported: Optional[bool] = None + supportedResultTypes: list[ResultType] | None + disabledQubitRewiringSupported: bool | None = None diff --git a/src/braket/device_schema/openqasm_device_action_properties.py b/src/braket/device_schema/openqasm_device_action_properties.py index 98b7bef..aa0a08b 100644 --- a/src/braket/device_schema/openqasm_device_action_properties.py +++ b/src/braket/device_schema/openqasm_device_action_properties.py @@ -11,9 +11,8 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional -from pydantic.v1 import constr +from pydantic.v1 import Field, constr from braket.device_schema.device_action_properties import DeviceActionProperties from braket.device_schema.result_type import ResultType @@ -64,16 +63,16 @@ class OpenQASMDeviceActionProperties(DeviceActionProperties): actionType: constr(regex=r"^braket\.ir\.openqasm\.program$") supportedOperations: list[str] - supportedModifiers: Optional[list[Modifier]] = [] - supportedPragmas: Optional[list[str]] = [] - forbiddenPragmas: Optional[list[str]] = [] - maximumQubitArrays: Optional[int] = None # None indicates no limit - maximumClassicalArrays: Optional[int] = None # None indicates no limit - forbiddenArrayOperations: Optional[list[str]] = [] - requiresAllQubitsMeasurement: Optional[bool] = False - supportPhysicalQubits: Optional[bool] = False - requiresContiguousQubitIndices: Optional[bool] = False - supportsPartialVerbatimBox: Optional[bool] = True - supportsUnassignedMeasurements: Optional[bool] = True - disabledQubitRewiringSupported: Optional[bool] = False - supportedResultTypes: Optional[list[ResultType]] + supportedModifiers: list[Modifier] | None = Field(default_factory=list) + supportedPragmas: list[str] | None = Field(default_factory=list) + forbiddenPragmas: list[str] | None = Field(default_factory=list) + maximumQubitArrays: int | None = None # None indicates no limit + maximumClassicalArrays: int | None = None # None indicates no limit + forbiddenArrayOperations: list[str] | None = Field(default_factory=list) + requiresAllQubitsMeasurement: bool | None = False + supportPhysicalQubits: bool | None = False + requiresContiguousQubitIndices: bool | None = False + supportsPartialVerbatimBox: bool | None = True + supportsUnassignedMeasurements: bool | None = True + disabledQubitRewiringSupported: bool | None = False + supportedResultTypes: list[ResultType] | None diff --git a/src/braket/device_schema/oqc/__init__.py b/src/braket/device_schema/oqc/__init__.py index 186be95..d17f62c 100644 --- a/src/braket/device_schema/oqc/__init__.py +++ b/src/braket/device_schema/oqc/__init__.py @@ -13,6 +13,6 @@ from braket.device_schema.oqc.oqc_device_capabilities_v1 import OqcDeviceCapabilities # noqa: F401 from braket.device_schema.oqc.oqc_device_parameters_v1 import OqcDeviceParameters # noqa: F401 -from braket.device_schema.oqc.oqc_provider_properties_v1 import ( # noqa: F401, E501 +from braket.device_schema.oqc.oqc_provider_properties_v1 import ( # noqa: F401 OqcProviderProperties, ) diff --git a/src/braket/device_schema/oqc/oqc_device_capabilities_v1.py b/src/braket/device_schema/oqc/oqc_device_capabilities_v1.py index bedb2db..013c2e7 100644 --- a/src/braket/device_schema/oqc/oqc_device_capabilities_v1.py +++ b/src/braket/device_schema/oqc/oqc_device_capabilities_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union from pydantic.v1 import Field @@ -115,10 +114,10 @@ class OqcDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[OpenQASMDeviceActionProperties, JaqcdDeviceActionProperties], + DeviceActionType | str, + OpenQASMDeviceActionProperties | JaqcdDeviceActionProperties, ] paradigm: GateModelQpuParadigmProperties - provider: Optional[OqcProviderProperties] - standardized: Optional[StandardizedGateModelQpuDeviceProperties] - pulse: Optional[PulseDeviceActionProperties] + provider: OqcProviderProperties | None + standardized: StandardizedGateModelQpuDeviceProperties | None + pulse: PulseDeviceActionProperties | None diff --git a/src/braket/device_schema/oqc/oqc_provider_properties_v1.py b/src/braket/device_schema/oqc/oqc_provider_properties_v1.py index 61caba5..511b92c 100644 --- a/src/braket/device_schema/oqc/oqc_provider_properties_v1.py +++ b/src/braket/device_schema/oqc/oqc_provider_properties_v1.py @@ -11,7 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import TypeVar, Union +from typing import TypeVar from pydantic.v1 import Field @@ -20,11 +20,11 @@ # TODO: Replace the calibration data with actual values we receive from the device. -GateFidelityType = TypeVar("GateFidelityType", bound=dict[str, Union[str, float]]) -OneQubitType = TypeVar("OneQubitType", bound=Union[float, list[GateFidelityType]]) -TwoQubitType = TypeVar("TwoQubitType", bound=dict[str, Union[float, dict[str, int]]]) +GateFidelityType = TypeVar("GateFidelityType", bound=dict[str, str | float]) +OneQubitType = TypeVar("OneQubitType", bound=float | list[GateFidelityType]) +TwoQubitType = TypeVar("TwoQubitType", bound=dict[str, float | dict[str, int]]) -QubitType = TypeVar("QubitType", bound=dict[str, Union[OneQubitType, TwoQubitType]]) +QubitType = TypeVar("QubitType", bound=dict[str, OneQubitType | TwoQubitType]) class OqcProviderProperties(BraketSchemaBase): diff --git a/src/braket/device_schema/pulse/frame_v1.py b/src/braket/device_schema/pulse/frame_v1.py index 6894436..bdf8320 100644 --- a/src/braket/device_schema/pulse/frame_v1.py +++ b/src/braket/device_schema/pulse/frame_v1.py @@ -11,7 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Any, Optional +from typing import Any from pydantic.v1 import BaseModel @@ -34,8 +34,8 @@ class Frame(BaseModel): frameId: str portId: str frequency: float - centerFrequency: Optional[float] + centerFrequency: float | None phase: float - associatedGate: Optional[str] - qubitMappings: Optional[list[int]] - qhpSpecificProperties: Optional[dict[str, Any]] + associatedGate: str | None + qubitMappings: list[int] | None + qhpSpecificProperties: dict[str, Any] | None diff --git a/src/braket/device_schema/pulse/native_gate_calibrations_v1.py b/src/braket/device_schema/pulse/native_gate_calibrations_v1.py index 4d862c2..078b1e1 100644 --- a/src/braket/device_schema/pulse/native_gate_calibrations_v1.py +++ b/src/braket/device_schema/pulse/native_gate_calibrations_v1.py @@ -11,7 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Any, Optional, Union +from typing import Any from pydantic.v1 import BaseModel, Field @@ -46,7 +46,7 @@ class Instruction(BaseModel): """ name: str - arguments: Optional[list[InstructionArgument]] + arguments: list[InstructionArgument] | None class PulseFunctionArgument(BaseModel): @@ -94,7 +94,7 @@ class NativeGate(BaseModel): name: str qubits: list[str] arguments: list[str] - calibrations: list[Union[Instruction, PulseFunction]] + calibrations: list[Instruction | PulseFunction] class TemplateWaveformArgument(BaseModel): @@ -195,11 +195,11 @@ class NativeGateCalibrations(BraketSchemaBase): ... } ... } >>> NativeGateCalibrations.parse_raw_schema(json.dumps(input_json)) - """ # noqa: E501 + """ _PROGRAM_HEADER = BraketSchemaHeader( name="braket.device_schema.pulse.native_gate_calibrations", version="1" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) gates: dict[str, dict[str, list[NativeGate]]] - waveforms: dict[str, Union[TemplateWaveform, ArbitraryWaveform]] + waveforms: dict[str, TemplateWaveform | ArbitraryWaveform] diff --git a/src/braket/device_schema/pulse/port_v1.py b/src/braket/device_schema/pulse/port_v1.py index d780e62..5f48f71 100644 --- a/src/braket/device_schema/pulse/port_v1.py +++ b/src/braket/device_schema/pulse/port_v1.py @@ -12,7 +12,7 @@ # language governing permissions and limitations under the License from enum import Enum -from typing import Any, Optional +from typing import Any from pydantic.v1 import BaseModel @@ -43,6 +43,6 @@ class Port(BaseModel): direction: Direction portType: str dt: float - qubitMappings: Optional[list[int]] - centerFrequencies: Optional[set[float]] - qhpSpecificProperties: Optional[dict[str, Any]] + qubitMappings: list[int] | None + centerFrequencies: set[float] | None + qhpSpecificProperties: dict[str, Any] | None diff --git a/src/braket/device_schema/pulse/pulse_device_action_properties_v1.py b/src/braket/device_schema/pulse/pulse_device_action_properties_v1.py index 34d882c..e12d468 100644 --- a/src/braket/device_schema/pulse/pulse_device_action_properties_v1.py +++ b/src/braket/device_schema/pulse/pulse_device_action_properties_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import AnyUrl, Field @@ -142,9 +141,9 @@ class PulseDeviceActionProperties(BraketSchemaBase): supportedQhpTemplateWaveforms: dict[str, PulseFunction] ports: dict[str, Port] supportedFunctions: dict[str, PulseFunction] - frames: Optional[dict[str, Frame]] - supportsLocalPulseElements: Optional[bool] = True - supportsDynamicFrames: Optional[bool] = True - supportsNonNativeGatesWithPulses: Optional[bool] = False - validationParameters: Optional[dict[str, float]] - nativeGateCalibrationsRef: Optional[AnyUrl] + frames: dict[str, Frame] | None + supportsLocalPulseElements: bool | None = True + supportsDynamicFrames: bool | None = True + supportsNonNativeGatesWithPulses: bool | None = False + validationParameters: dict[str, float] | None + nativeGateCalibrationsRef: AnyUrl | None diff --git a/src/braket/device_schema/pulse/pulse_function_v1.py b/src/braket/device_schema/pulse/pulse_function_v1.py index 93da7ca..89e1ec2 100644 --- a/src/braket/device_schema/pulse/pulse_function_v1.py +++ b/src/braket/device_schema/pulse/pulse_function_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import BaseModel @@ -30,7 +29,7 @@ class PulseFunctionArgument(BaseModel): name: str type: str optional: bool = False - description: Optional[str] + description: str | None class PulseFunction(BaseModel): @@ -46,4 +45,4 @@ class PulseFunction(BaseModel): functionName: str arguments: list[PulseFunctionArgument] - returnType: Optional[str] + returnType: str | None diff --git a/src/braket/device_schema/quera/__init__.py b/src/braket/device_schema/quera/__init__.py index 502861d..f0e9b26 100644 --- a/src/braket/device_schema/quera/__init__.py +++ b/src/braket/device_schema/quera/__init__.py @@ -11,7 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from braket.device_schema.quera.quera_ahs_paradigm_properties_v1 import ( # noqa: F401, E501 +from braket.device_schema.quera.quera_ahs_paradigm_properties_v1 import ( # noqa: F401 QueraAhsParadigmProperties, ) from braket.device_schema.quera.quera_device_capabilities_v1 import ( # noqa: F401 diff --git a/src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py b/src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py index 2d5bcfa..ad5674d 100644 --- a/src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py +++ b/src/braket/device_schema/quera/quera_ahs_paradigm_properties_v1.py @@ -12,7 +12,7 @@ # language governing permissions and limitations under the License. from decimal import Decimal -from typing import Annotated, Optional +from typing import Annotated from pydantic.v1 import BaseModel, Field @@ -151,7 +151,7 @@ class Rydberg(BaseModel): c6Coefficient: Decimal rydbergGlobal: RydbergGlobal - rydbergLocal: Optional[RydbergLocal] = None + rydbergLocal: RydbergLocal | None = None class PerformanceLattice(BaseModel): @@ -375,7 +375,7 @@ class PerformanceRydberg(BaseModel): """ rydbergGlobal: PerformanceRydbergGlobal - rydbergLocal: Optional[PerformanceRydbergLocal] = None + rydbergLocal: PerformanceRydbergLocal | None = None class Performance(BaseModel): diff --git a/src/braket/device_schema/result_type.py b/src/braket/device_schema/result_type.py index bba8d20..c3fae70 100644 --- a/src/braket/device_schema/result_type.py +++ b/src/braket/device_schema/result_type.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional from pydantic.v1 import BaseModel @@ -39,6 +38,6 @@ class ResultType(BaseModel): """ name: str - observables: Optional[list[str]] - minShots: Optional[int] - maxShots: Optional[int] + observables: list[str] | None + minShots: int | None + maxShots: int | None diff --git a/src/braket/device_schema/rigetti/rigetti_device_capabilities_v1.py b/src/braket/device_schema/rigetti/rigetti_device_capabilities_v1.py index f27f7a6..dd5d3bf 100644 --- a/src/braket/device_schema/rigetti/rigetti_device_capabilities_v1.py +++ b/src/braket/device_schema/rigetti/rigetti_device_capabilities_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union from pydantic.v1 import Field @@ -119,14 +118,12 @@ class RigettiDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[ - OpenQASMDeviceActionProperties, - OpenQASMProgramSetDeviceActionProperties, - JaqcdDeviceActionProperties, - ], + DeviceActionType | str, + OpenQASMDeviceActionProperties + | OpenQASMProgramSetDeviceActionProperties + | JaqcdDeviceActionProperties, ] paradigm: GateModelQpuParadigmProperties - provider: Optional[RigettiProviderProperties] - standardized: Optional[StandardizedGateModelQpuDeviceProperties] - pulse: Optional[PulseDeviceActionProperties] + provider: RigettiProviderProperties | None + standardized: StandardizedGateModelQpuDeviceProperties | None + pulse: PulseDeviceActionProperties | None diff --git a/src/braket/device_schema/rigetti/rigetti_device_capabilities_v2.py b/src/braket/device_schema/rigetti/rigetti_device_capabilities_v2.py index e11cf16..c534c5a 100644 --- a/src/braket/device_schema/rigetti/rigetti_device_capabilities_v2.py +++ b/src/braket/device_schema/rigetti/rigetti_device_capabilities_v2.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union from pydantic.v1 import Field @@ -119,14 +118,12 @@ class RigettiDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[ - OpenQASMDeviceActionProperties, - OpenQASMProgramSetDeviceActionProperties, - JaqcdDeviceActionProperties, - ], + DeviceActionType | str, + OpenQASMDeviceActionProperties + | OpenQASMProgramSetDeviceActionProperties + | JaqcdDeviceActionProperties, ] paradigm: GateModelQpuParadigmProperties - provider: Optional[RigettiProviderProperties] - standardized: Optional[StandardizedGateModelQpuDeviceProperties] - pulse: Optional[PulseDeviceActionProperties] + provider: RigettiProviderProperties | None + standardized: StandardizedGateModelQpuDeviceProperties | None + pulse: PulseDeviceActionProperties | None diff --git a/src/braket/device_schema/rigetti/rigetti_provider_properties_v2.py b/src/braket/device_schema/rigetti/rigetti_provider_properties_v2.py index f35a183..cde1e02 100644 --- a/src/braket/device_schema/rigetti/rigetti_provider_properties_v2.py +++ b/src/braket/device_schema/rigetti/rigetti_provider_properties_v2.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Union from pydantic.v1 import Field @@ -156,4 +155,4 @@ class RigettiProviderProperties(BraketSchemaBase): name="braket.device_schema.rigetti.rigetti_provider_properties", version="2" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) - specs: dict[str, Union[str, list, dict[str, Union[str, list]]]] + specs: dict[str, str | list | dict[str, str | list]] diff --git a/src/braket/device_schema/simulators/__init__.py b/src/braket/device_schema/simulators/__init__.py index a2476fd..f8ec76f 100644 --- a/src/braket/device_schema/simulators/__init__.py +++ b/src/braket/device_schema/simulators/__init__.py @@ -12,12 +12,12 @@ # language governing permissions and limitations under the License -from braket.device_schema.simulators.gate_model_simulator_device_capabilities_v1 import ( # noqa: F401, E501 +from braket.device_schema.simulators.gate_model_simulator_device_capabilities_v1 import ( # noqa: F401 GateModelSimulatorDeviceCapabilities, ) -from braket.device_schema.simulators.gate_model_simulator_device_parameters_v1 import ( # noqa: F401, E501 +from braket.device_schema.simulators.gate_model_simulator_device_parameters_v1 import ( # noqa: F401 GateModelSimulatorDeviceParameters, ) -from braket.device_schema.simulators.gate_model_simulator_paradigm_properties_v1 import ( # noqa: F401, E501 +from braket.device_schema.simulators.gate_model_simulator_paradigm_properties_v1 import ( # noqa: F401 GateModelSimulatorParadigmProperties, ) diff --git a/src/braket/device_schema/simulators/gate_model_simulator_device_capabilities_v1.py b/src/braket/device_schema/simulators/gate_model_simulator_device_capabilities_v1.py index 7294d39..362f717 100644 --- a/src/braket/device_schema/simulators/gate_model_simulator_device_capabilities_v1.py +++ b/src/braket/device_schema/simulators/gate_model_simulator_device_capabilities_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Union from pydantic.v1 import Field @@ -103,11 +102,9 @@ class GateModelSimulatorDeviceCapabilities(BraketSchemaBase, DeviceCapabilities) ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[ - OpenQASMDeviceActionProperties, - OpenQASMProgramSetDeviceActionProperties, - JaqcdDeviceActionProperties, - ], + DeviceActionType | str, + OpenQASMDeviceActionProperties + | OpenQASMProgramSetDeviceActionProperties + | JaqcdDeviceActionProperties, ] paradigm: GateModelSimulatorParadigmProperties diff --git a/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v1.py b/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v1.py index ea65b7e..ab6f5d5 100644 --- a/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v1.py +++ b/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v1.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from enum import Enum -from typing import Optional from pydantic.v1 import BaseModel, Field, confloat @@ -38,7 +37,7 @@ class FidelityType(BaseModel): """ name: str - description: Optional[str] + description: str | None class GateFidelity2Q(BaseModel): @@ -55,10 +54,10 @@ class GateFidelity2Q(BaseModel): for the presented value """ - direction: Optional[dict[QubitDirection, int]] = None + direction: dict[QubitDirection, int] | None = None gateName: str fidelity: confloat(ge=0, le=1) - standardError: Optional[confloat(ge=0, le=1)] = None + standardError: confloat(ge=0, le=1) | None = None fidelityType: FidelityType @@ -85,7 +84,7 @@ class Fidelity1Q(BaseModel): fidelityType: FidelityType fidelity: confloat(ge=0, le=1) - standardError: Optional[confloat(ge=0, le=1)] = None + standardError: confloat(ge=0, le=1) | None = None class CoherenceTime(BaseModel): @@ -98,7 +97,7 @@ class CoherenceTime(BaseModel): """ value: float - standardError: Optional[float] + standardError: float | None unit: str diff --git a/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v2.py b/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v2.py index e4ca240..e006f0e 100644 --- a/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v2.py +++ b/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v2.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from enum import Enum -from typing import Optional from pydantic.v1 import BaseModel, Field, confloat @@ -50,7 +49,7 @@ class FidelityType(BaseModel): """ name: str - description: Optional[str] + description: str | None class GateFidelity2Q(BaseModel): @@ -67,10 +66,10 @@ class GateFidelity2Q(BaseModel): for the presented value """ - direction: Optional[dict[QubitDirection, int]] = None + direction: dict[QubitDirection, int] | None = None gateName: str fidelity: confloat(ge=0, le=1) - standardError: Optional[confloat(ge=0, le=1)] = None + standardError: confloat(ge=0, le=1) | None = None fidelityType: FidelityType unit: UnitType @@ -99,7 +98,7 @@ class Fidelity1Q(BaseModel): fidelityType: FidelityType fidelity: confloat(ge=0, le=1) - standardError: Optional[confloat(ge=0, le=1)] = None + standardError: confloat(ge=0, le=1) | None = None unit: UnitType @@ -113,7 +112,7 @@ class CoherenceTime(BaseModel): """ value: float - standardError: Optional[float] + standardError: float | None unit: UnitType diff --git a/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v3.py b/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v3.py index bdcc0ad..ef1e6b5 100644 --- a/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v3.py +++ b/src/braket/device_schema/standardized_gate_model_qpu_device_properties_v3.py @@ -13,7 +13,6 @@ from datetime import datetime from enum import Enum -from typing import Optional from pydantic.v1 import BaseModel, Field, confloat @@ -57,7 +56,7 @@ class FidelityType(BaseModel): """ name: FidelityTypeName - description: Optional[str] + description: str | None class Fidelity(BaseModel): @@ -73,10 +72,10 @@ class Fidelity(BaseModel): unit (FidelityUnit): The expected unit for the fidelity """ - fidelityType: Optional[FidelityType] + fidelityType: FidelityType | None fidelity: confloat(ge=0, le=1) - standardError: Optional[confloat(ge=0, le=1)] = None - median: Optional[confloat(ge=0, le=1)] = None + standardError: confloat(ge=0, le=1) | None = None + median: confloat(ge=0, le=1) | None = None unit: FidelityUnit @@ -90,7 +89,7 @@ class Duration(BaseModel): """ value: float - standardError: Optional[float] + standardError: float | None unit: TimeUnit @@ -219,14 +218,14 @@ class StandardizedGateModelQpuDeviceProperties(BraketSchemaBase): name="braket.device_schema.standardized_gate_model_qpu_device_properties", version="3" ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) - oneQubitProperties: Optional[dict[str, OneQubitProperties]] - T1: Optional[Duration] - T2: Optional[Duration] - readoutFidelity: Optional[list[Fidelity]] - readoutDuration: Optional[Duration] - singleQubitGateDuration: Optional[Duration] - singleQubitFidelity: Optional[list[Fidelity]] - twoQubitGateFidelity: Optional[list[Fidelity]] - twoQubitGateDuration: Optional[Duration] - activeResetDuration: Optional[Duration] - updatedAt: Optional[datetime] + oneQubitProperties: dict[str, OneQubitProperties] | None + T1: Duration | None + T2: Duration | None + readoutFidelity: list[Fidelity] | None + readoutDuration: Duration | None + singleQubitGateDuration: Duration | None + singleQubitFidelity: list[Fidelity] | None + twoQubitGateFidelity: list[Fidelity] | None + twoQubitGateDuration: Duration | None + activeResetDuration: Duration | None + updatedAt: datetime | None diff --git a/src/braket/device_schema/xanadu/xanadu_device_capabilities_v1.py b/src/braket/device_schema/xanadu/xanadu_device_capabilities_v1.py index f4c84f2..9f914a3 100644 --- a/src/braket/device_schema/xanadu/xanadu_device_capabilities_v1.py +++ b/src/braket/device_schema/xanadu/xanadu_device_capabilities_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union from pydantic.v1 import Field @@ -99,8 +98,8 @@ class XanaduDeviceCapabilities(BraketSchemaBase, DeviceCapabilities): ) braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) action: dict[ - Union[DeviceActionType, str], - Union[BlackbirdDeviceActionProperties], + DeviceActionType | str, + BlackbirdDeviceActionProperties, ] paradigm: ContinuousVariableQpuParadigmProperties - provider: Optional[XanaduProviderProperties] + provider: XanaduProviderProperties | None diff --git a/src/braket/ir/ahs/physical_field.py b/src/braket/ir/ahs/physical_field.py index f31675b..22d9265 100644 --- a/src/braket/ir/ahs/physical_field.py +++ b/src/braket/ir/ahs/physical_field.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from decimal import Decimal -from typing import Union from pydantic.v1 import BaseModel @@ -33,4 +32,4 @@ class PhysicalField(BaseModel): """ time_series: TimeSeries - pattern: Union[str, list[Decimal]] + pattern: str | list[Decimal] diff --git a/src/braket/ir/ahs/program_v1.py b/src/braket/ir/ahs/program_v1.py index af044a7..4245e0a 100644 --- a/src/braket/ir/ahs/program_v1.py +++ b/src/braket/ir/ahs/program_v1.py @@ -53,4 +53,4 @@ class Program(BraketSchemaBase): hamiltonian: Hamiltonian class Config: - json_encoders = {Decimal: str} + json_encoders = {Decimal: str} # noqa: RUF012 diff --git a/src/braket/ir/annealing/problem_v1.py b/src/braket/ir/annealing/problem_v1.py index 22564e1..1785cb7 100644 --- a/src/braket/ir/annealing/problem_v1.py +++ b/src/braket/ir/annealing/problem_v1.py @@ -12,7 +12,6 @@ # language governing permissions and limitations under the License. from enum import Enum -from typing import Union from pydantic.v1 import Field, conint @@ -47,6 +46,6 @@ class Problem(BraketSchemaBase): _PROBLEM_HEADER = BraketSchemaHeader(name="braket.ir.annealing.problem", version="1") braketSchemaHeader: BraketSchemaHeader = Field(default=_PROBLEM_HEADER, const=_PROBLEM_HEADER) - type: Union[ProblemType, str] + type: ProblemType | str linear: dict[conint(ge=0), float] quadratic: dict[str, float] diff --git a/src/braket/ir/gate_model_shared/shared_models.py b/src/braket/ir/gate_model_shared/shared_models.py index b7deb8c..6c06627 100644 --- a/src/braket/ir/gate_model_shared/shared_models.py +++ b/src/braket/ir/gate_model_shared/shared_models.py @@ -11,8 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union - from pydantic.v1 import BaseModel, confloat, conint, conlist, constr, root_validator @@ -69,7 +67,7 @@ class OptionalMultiTarget(BaseModel): >>> OptionalMultiTarget(targets=[0, 1]) """ - targets: Optional[conlist(conint(ge=0), min_items=1)] + targets: conlist(conint(ge=0), min_items=1) | None class OptionalNestedMultiTarget(BaseModel): @@ -84,7 +82,7 @@ class OptionalNestedMultiTarget(BaseModel): >>> OptionalNestedMultiTarget(targets=[[0, 1], [2]]) """ - targets: Optional[conlist(conlist(conint(ge=0), min_items=1), min_items=1)] + targets: conlist(conlist(conint(ge=0), min_items=1), min_items=1) | None class OptionalMultiParameter(BaseModel): @@ -94,7 +92,7 @@ class OptionalMultiParameter(BaseModel): parameters (Optional[List[str]]): A list of parameter names. """ - parameters: Optional[conlist(constr(min_length=1), min_items=0)] + parameters: conlist(constr(min_length=1), min_items=0) | None class MultiControl(BaseModel): @@ -285,22 +283,22 @@ def validate_probabilities(cls, values): if not probabilities: raise ValueError("Pauli dictionary must not be empty.") - qubit_count = len(list(probabilities)[0]) + qubit_count = len(next(iter(probabilities))) - if qubit_count * "I" in probabilities.keys(): + if qubit_count * "I" in probabilities: i = qubit_count * "I" raise ValueError( f"{i} is not allowed as a key. Please enter only non-identity Pauli strings." ) - for pauli_string in probabilities.keys(): + for pauli_string in probabilities: if len(pauli_string) != qubit_count: raise ValueError("Length of each Pauli string must be equal to number of qubits.") total_prob = sum(probabilities.values()) if total_prob > 1.0 or total_prob < 0.0: raise ValueError( - f"Total probability must be a real number in the interval [0, 1]. Total probability was {total_prob}." # noqa: E501 + f"Total probability must be a real number in the interval [0, 1]. Total probability was {total_prob}." ) return values @@ -368,7 +366,7 @@ class Observable(BaseModel): of each operator in the list. Attributes: - observable (Union[List[Union[str, List[List[List[float]]]], str]): A list with at least + observable (list[str | list[list[list[float]]] | str): A list with at least one item and items are strings matching the observable regex or a two-dimensional hermitian matrix with complex entries. Each complex number is represented using a List[float] of size 2, with @@ -386,24 +384,17 @@ class Observable(BaseModel): _obs_regex = r"[xyzhi]" _term_regex = rf"{_coef_regex}?{_obs_regex}(\s*@\s*{_obs_regex})*" _hamiltonian_regex = rf"{_term_regex}(\s*\+\s*{_term_regex})*" - observable: Union[ - conlist( - Union[ - constr(regex="(x|y|z|h|i)"), - conlist( - conlist( - conlist( - confloat(gt=float("-inf"), lt=float("inf")), min_items=2, max_items=2 - ), - min_items=2, - ), - min_items=2, - ), - ], - min_items=1, + observable: conlist( + constr(regex="(x|y|z|h|i)") + | conlist( + conlist( + conlist(confloat(gt=float("-inf"), lt=float("inf")), min_items=2, max_items=2), + min_items=2, + ), + min_items=2, ), - constr(regex=_hamiltonian_regex), - ] + min_items=1, + ) | constr(regex=_hamiltonian_regex) class MultiState(BaseModel): diff --git a/src/braket/ir/jaqcd/instructions.py b/src/braket/ir/jaqcd/instructions.py index 4044ff7..121cf64 100644 --- a/src/braket/ir/jaqcd/instructions.py +++ b/src/braket/ir/jaqcd/instructions.py @@ -70,7 +70,7 @@ class Type(str, Enum): type = Type.h -class I(SingleTarget): # noqa: E742, E261 +class I(SingleTarget): """ Identity gate. diff --git a/src/braket/ir/jaqcd/program_v1.py b/src/braket/ir/jaqcd/program_v1.py index e0ca793..3b6404e 100644 --- a/src/braket/ir/jaqcd/program_v1.py +++ b/src/braket/ir/jaqcd/program_v1.py @@ -11,7 +11,7 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Any, Optional, Union +from typing import Any from pydantic.v1 import BaseModel, Field, validator @@ -134,16 +134,16 @@ EndVerbatimBox.Type.end_verbatim_box: EndVerbatimBox, } -Results = Union[ - Amplitude, - Expectation, - Probability, - Sample, - StateVector, - DensityMatrix, - Variance, - AdjointGradient, -] +Results = ( + Amplitude + | Expectation + | Probability + | Sample + | StateVector + | DensityMatrix + | Variance + | AdjointGradient +) class Program(BraketSchemaBase): @@ -218,8 +218,8 @@ class Program(BraketSchemaBase): _PROGRAM_HEADER = BraketSchemaHeader(name="braket.ir.jaqcd.program", version="1") braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) instructions: list[Any] - results: Optional[list[Results]] - basis_rotation_instructions: Optional[list[Any]] + results: list[Results] | None + basis_rotation_instructions: list[Any] | None @validator("instructions", "basis_rotation_instructions", each_item=True, pre=True) def validate_instructions(cls, value, field): diff --git a/src/braket/ir/openqasm/modifiers.py b/src/braket/ir/openqasm/modifiers.py index 71aed76..cc9080b 100644 --- a/src/braket/ir/openqasm/modifiers.py +++ b/src/braket/ir/openqasm/modifiers.py @@ -12,19 +12,18 @@ # language governing permissions and limitations under the License. from enum import Enum -from typing import Optional, Union from pydantic.v1 import BaseModel, constr class Control(BaseModel): name: constr(regex=r"^ctrl$") - max_qubits: Optional[int] = None # None indicates no limit + max_qubits: int | None = None # None indicates no limit class NegControl(BaseModel): name: constr(regex=r"^negctrl$") - max_qubits: Optional[int] = None # None indicates no limit + max_qubits: int | None = None # None indicates no limit class ExponentType(str, Enum): @@ -41,4 +40,4 @@ class Inverse(BaseModel): name: constr(regex=r"^inv$") -Modifier = Union[Control, NegControl, Power, Inverse] +Modifier = Control | NegControl | Power | Inverse diff --git a/src/braket/ir/openqasm/program_v1.py b/src/braket/ir/openqasm/program_v1.py index 005405d..1c4e9e5 100644 --- a/src/braket/ir/openqasm/program_v1.py +++ b/src/braket/ir/openqasm/program_v1.py @@ -11,17 +11,17 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional, Union - from pydantic.v1 import Field, confloat, constr from braket.schema_common import BraketSchemaBase, BraketSchemaHeader # support 1d array input for now -leaf_io_type = Union[ - constr(regex="^[01]+$", min_length=1, strict=True), confloat(ge=-float("inf"), strict=True), int -] -io_type = Union[leaf_io_type, list[leaf_io_type]] +leaf_io_type = ( + constr(regex="^[01]+$", min_length=1, strict=True) + | confloat(ge=-float("inf"), strict=True) + | int +) +io_type = leaf_io_type | list[leaf_io_type] class Program(BraketSchemaBase): @@ -43,9 +43,4 @@ class Program(BraketSchemaBase): _PROGRAM_HEADER = BraketSchemaHeader(name="braket.ir.openqasm.program", version="1") braketSchemaHeader: BraketSchemaHeader = Field(default=_PROGRAM_HEADER, const=_PROGRAM_HEADER) source: str - inputs: Optional[ - dict[ - constr(min_length=1), - io_type, - ] - ] + inputs: dict[constr(min_length=1), io_type] | None diff --git a/src/braket/jobs_data/persisted_job_data_v1.py b/src/braket/jobs_data/persisted_job_data_v1.py index 082b7a0..f67a739 100644 --- a/src/braket/jobs_data/persisted_job_data_v1.py +++ b/src/braket/jobs_data/persisted_job_data_v1.py @@ -12,7 +12,7 @@ # language governing permissions and limitations under the License from enum import Enum -from typing import Any, Union +from typing import Any from pydantic.v1 import Field @@ -54,4 +54,4 @@ class PersistedJobData(BraketSchemaBase): default=_PERSISTED_JOB_DATA_HEADER, const=_PERSISTED_JOB_DATA_HEADER ) dataDictionary: dict[str, Any] - dataFormat: Union[PersistedJobDataFormat, str] + dataFormat: PersistedJobDataFormat | str diff --git a/src/braket/schema_common/schema_base.py b/src/braket/schema_common/schema_base.py index 7a50fdf..e726ced 100644 --- a/src/braket/schema_common/schema_base.py +++ b/src/braket/schema_common/schema_base.py @@ -17,7 +17,7 @@ from pydantic.v1 import BaseModel -from braket.schema_common.schema_header import BraketSchemaHeader # noqa: F401 +from braket.schema_common.schema_header import BraketSchemaHeader class BraketSchemaBase(BaseModel): diff --git a/src/braket/task_result/additional_metadata.py b/src/braket/task_result/additional_metadata.py index 5a94241..cb51633 100644 --- a/src/braket/task_result/additional_metadata.py +++ b/src/braket/task_result/additional_metadata.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import BaseModel @@ -57,13 +56,13 @@ class AdditionalMetadata(BaseModel): >>> AdditionalMetadata(action=OpenQASMProgram(source='OPENQASM3.0; cx $0, $1')) """ - action: Optional[Union[JaqcdProgram, OpenQASMProgram, BlackbirdProgram, Problem, AHSProgram]] - aqtMetadata: Optional[AqtMetadata] - dwaveMetadata: Optional[DwaveMetadata] - ionqMetadata: Optional[IonQMetadata] - rigettiMetadata: Optional[RigettiMetadata] - oqcMetadata: Optional[OqcMetadata] - xanaduMetadata: Optional[XanaduMetadata] - queraMetadata: Optional[QueraMetadata] - simulatorMetadata: Optional[SimulatorMetadata] - iqmMetadata: Optional[IqmMetadata] + action: JaqcdProgram | OpenQASMProgram | BlackbirdProgram | Problem | AHSProgram | None + aqtMetadata: AqtMetadata | None + dwaveMetadata: DwaveMetadata | None + ionqMetadata: IonQMetadata | None + rigettiMetadata: RigettiMetadata | None + oqcMetadata: OqcMetadata | None + xanaduMetadata: XanaduMetadata | None + queraMetadata: QueraMetadata | None + simulatorMetadata: SimulatorMetadata | None + iqmMetadata: IqmMetadata | None diff --git a/src/braket/task_result/analog_hamiltonian_simulation_task_result_v1.py b/src/braket/task_result/analog_hamiltonian_simulation_task_result_v1.py index a82411e..04a783a 100644 --- a/src/braket/task_result/analog_hamiltonian_simulation_task_result_v1.py +++ b/src/braket/task_result/analog_hamiltonian_simulation_task_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import BaseModel, Field, conint, conlist, constr @@ -45,8 +44,8 @@ class AnalogHamiltonianSimulationShotResult(BaseModel): quantum evolution """ - preSequence: Optional[conlist(conint(ge=0, le=1), min_items=1)] - postSequence: Optional[conlist(conint(ge=0, le=1), min_items=1)] + preSequence: conlist(conint(ge=0, le=1), min_items=1) | None + postSequence: conlist(conint(ge=0, le=1), min_items=1) | None class AnalogHamiltonianSimulationShotMeasurement(BaseModel): @@ -83,5 +82,5 @@ class AnalogHamiltonianSimulationTaskResult(BraketSchemaBase): default=_AHS_TASK_RESULT_HEADER, const=_AHS_TASK_RESULT_HEADER ) taskMetadata: TaskMetadata - measurements: Optional[list[AnalogHamiltonianSimulationShotMeasurement]] - additionalMetadata: Optional[AdditionalMetadata] + measurements: list[AnalogHamiltonianSimulationShotMeasurement] | None + additionalMetadata: AdditionalMetadata | None diff --git a/src/braket/task_result/annealing_task_result_v1.py b/src/braket/task_result/annealing_task_result_v1.py index f994fc9..89cfe39 100644 --- a/src/braket/task_result/annealing_task_result_v1.py +++ b/src/braket/task_result/annealing_task_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import Field, conint, conlist @@ -43,9 +42,9 @@ class AnnealingTaskResult(BraketSchemaBase): braketSchemaHeader: BraketSchemaHeader = Field( default=_ANNEALING_TASK_RESULT_HEADER, const=_ANNEALING_TASK_RESULT_HEADER ) - solutions: Optional[list[conlist(conint(ge=-1, le=3), min_items=1)]] - solutionCounts: Optional[list[conint(ge=0)]] - values: Optional[list[float]] - variableCount: Optional[conint(ge=0)] + solutions: list[conlist(conint(ge=-1, le=3), min_items=1)] | None + solutionCounts: list[conint(ge=0)] | None + values: list[float] | None + variableCount: conint(ge=0) | None taskMetadata: TaskMetadata additionalMetadata: AdditionalMetadata diff --git a/src/braket/task_result/dwave_metadata_v1.py b/src/braket/task_result/dwave_metadata_v1.py index ad235ea..f5cbf5a 100644 --- a/src/braket/task_result/dwave_metadata_v1.py +++ b/src/braket/task_result/dwave_metadata_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import BaseModel, Field, conint, conlist @@ -28,19 +27,19 @@ class DwaveTiming(BaseModel): >>> DwaveTiming(qpuSamplingTime=1575, qpuAnnealTimePerSample=20) """ - qpuSamplingTime: Optional[conint(ge=0)] - qpuAnnealTimePerSample: Optional[conint(ge=0)] - qpuAccessTime: Optional[conint(ge=0)] - qpuAccessOverheadTime: Optional[conint(ge=0)] - qpuReadoutTimePerSample: Optional[conint(ge=0)] - qpuProgrammingTime: Optional[conint(ge=0)] - qpuDelayTimePerSample: Optional[conint(ge=0)] - postProcessingOverheadTime: Optional[conint(ge=0)] - totalPostProcessingTime: Optional[conint(ge=0)] - totalRealTime: Optional[conint(ge=0)] - runTimeChip: Optional[conint(ge=0)] - annealTimePerRun: Optional[conint(ge=0)] - readoutTimePerRun: Optional[conint(ge=0)] + qpuSamplingTime: conint(ge=0) | None + qpuAnnealTimePerSample: conint(ge=0) | None + qpuAccessTime: conint(ge=0) | None + qpuAccessOverheadTime: conint(ge=0) | None + qpuReadoutTimePerSample: conint(ge=0) | None + qpuProgrammingTime: conint(ge=0) | None + qpuDelayTimePerSample: conint(ge=0) | None + postProcessingOverheadTime: conint(ge=0) | None + totalPostProcessingTime: conint(ge=0) | None + totalRealTime: conint(ge=0) | None + runTimeChip: conint(ge=0) | None + annealTimePerRun: conint(ge=0) | None + readoutTimePerRun: conint(ge=0) | None class DwaveMetadata(BraketSchemaBase): diff --git a/src/braket/task_result/gate_model_task_result_v1.py b/src/braket/task_result/gate_model_task_result_v1.py index 938fa3e..501ecd1 100644 --- a/src/braket/task_result/gate_model_task_result_v1.py +++ b/src/braket/task_result/gate_model_task_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import BaseModel, Field, confloat, conint, conlist, constr @@ -31,8 +30,8 @@ class ResultTypeValue(BaseModel): value (Union[List, float, Dict]): The value of the requested result """ - type: Union[Results] - value: Union[list, float, dict] + type: Results + value: list | float | dict class GateModelTaskResult(BraketSchemaBase): @@ -64,16 +63,12 @@ class GateModelTaskResult(BraketSchemaBase): default=_GATE_MODEL_TASK_RESULT_HEADER, const=_GATE_MODEL_TASK_RESULT_HEADER ) # fmt: off - measurements: Optional[ - Union[ - conlist(conlist(conint(ge=0, le=1), min_items=1), min_items=1), - ] - ] + measurements: conlist(conlist(conint(ge=0, le=1), min_items=1), min_items=1) | None # fmt: on - measurementProbabilities: Optional[ - dict[constr(regex="^[01]+$", min_length=1), confloat(ge=0, le=1)] - ] - resultTypes: Optional[list[ResultTypeValue]] - measuredQubits: Optional[conlist(conint(ge=0), min_items=1)] + measurementProbabilities: ( + dict[constr(regex="^[01]+$", min_length=1), confloat(ge=0, le=1)] | None + ) + resultTypes: list[ResultTypeValue] | None + measuredQubits: conlist(conint(ge=0), min_items=1) | None taskMetadata: TaskMetadata additionalMetadata: AdditionalMetadata diff --git a/src/braket/task_result/ionq_metadata_v1.py b/src/braket/task_result/ionq_metadata_v1.py index 27c024b..5f41dfc 100644 --- a/src/braket/task_result/ionq_metadata_v1.py +++ b/src/braket/task_result/ionq_metadata_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. -from typing import Optional from pydantic.v1 import Field, confloat, constr @@ -33,6 +32,6 @@ class IonQMetadata(BraketSchemaBase): braketSchemaHeader: BraketSchemaHeader = Field( default=_IONQ_METADATA_HEADER, const=_IONQ_METADATA_HEADER ) - sharpenedProbabilities: Optional[ - dict[constr(regex="^[01]+$", min_length=1), confloat(ge=0, le=1)] - ] = None + sharpenedProbabilities: ( + dict[constr(regex="^[01]+$", min_length=1), confloat(ge=0, le=1)] | None + ) = None diff --git a/src/braket/task_result/photonic_model_task_result_v1.py b/src/braket/task_result/photonic_model_task_result_v1.py index 2e68d48..40873e6 100644 --- a/src/braket/task_result/photonic_model_task_result_v1.py +++ b/src/braket/task_result/photonic_model_task_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import Field, conint, conlist @@ -40,8 +39,9 @@ class PhotonicModelTaskResult(BraketSchemaBase): braketSchemaHeader: BraketSchemaHeader = Field( default=_PHOTONIC_MODEL_TASK_RESULT_HEADER, const=_PHOTONIC_MODEL_TASK_RESULT_HEADER ) - measurements: Optional[ + measurements: ( conlist(conlist(conlist(conint(ge=0, le=256), min_items=1), min_items=1), min_items=1) - ] + | None + ) taskMetadata: TaskMetadata additionalMetadata: AdditionalMetadata diff --git a/src/braket/task_result/program_result_v1.py b/src/braket/task_result/program_result_v1.py index ff0e5e0..82c228d 100644 --- a/src/braket/task_result/program_result_v1.py +++ b/src/braket/task_result/program_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Union from pydantic.v1 import Field @@ -44,8 +43,6 @@ class ProgramResult(BraketSchemaBase): default=_PROGRAM_SET_PROGRAM_RESULT_HEADER, const=_PROGRAM_SET_PROGRAM_RESULT_HEADER ) - executableResults: Union[ - list[str], list[Union[ProgramSetExecutableResult, ProgramSetExecutableFailure]] - ] - source: Union[str, Program] + executableResults: list[str] | list[ProgramSetExecutableResult | ProgramSetExecutableFailure] + source: str | Program additionalMetadata: AdditionalMetadata diff --git a/src/braket/task_result/program_set_executable_result_v1.py b/src/braket/task_result/program_set_executable_result_v1.py index 92a7c37..e62c32c 100644 --- a/src/braket/task_result/program_set_executable_result_v1.py +++ b/src/braket/task_result/program_set_executable_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import BaseModel, Field, confloat, conint, conlist, constr @@ -22,8 +21,6 @@ class ProgramSetExecutableResultMetadata(BaseModel): """Metadata for successful program executable.""" - pass - class ProgramSetExecutableResult(BraketSchemaBase): """ @@ -49,8 +46,8 @@ class ProgramSetExecutableResult(BraketSchemaBase): ) inputsIndex: int - measurements: Optional[Union[conlist(conlist(conint(ge=0, le=1), min_items=1), min_items=1),]] - measurementProbabilities: Optional[ - dict[constr(regex="^[01]+$", min_length=1), confloat(ge=0, le=1)] - ] - measuredQubits: Optional[conlist(conint(ge=0), min_items=1)] + measurements: conlist(conlist(conint(ge=0, le=1), min_items=1), min_items=1) | None + measurementProbabilities: ( + dict[constr(regex="^[01]+$", min_length=1), confloat(ge=0, le=1)] | None + ) + measuredQubits: conlist(conint(ge=0), min_items=1) | None diff --git a/src/braket/task_result/program_set_task_metadata_v1.py b/src/braket/task_result/program_set_task_metadata_v1.py index 76d5c69..3d44d41 100644 --- a/src/braket/task_result/program_set_task_metadata_v1.py +++ b/src/braket/task_result/program_set_task_metadata_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import BaseModel, Field, conint, constr @@ -43,11 +42,9 @@ class ProgramMetadata(BaseModel): """ executables: list[ - Union[ - ProgramSetExecutableFailureMetadata, - ProgramSetExecutableResultMetadata, - ProgramSetExecutableCancellationMetadata, - ] + ProgramSetExecutableFailureMetadata + | ProgramSetExecutableResultMetadata + | ProgramSetExecutableCancellationMetadata ] @@ -85,16 +82,15 @@ class ProgramSetTaskMetadata(BraketSchemaBase): requestedShots: conint(ge=0) successfulShots: conint(ge=0) programMetadata: list[ProgramMetadata] - deviceParameters: Optional[ - Union[ - GateModelSimulatorDeviceParameters, - IonqDeviceParameters, - IqmDeviceParameters, - RigettiDeviceParameters, - GateModelDeviceParameters, - ] - ] - createdAt: Optional[constr(min_length=1, max_length=24)] - endedAt: Optional[constr(min_length=1, max_length=24)] - status: Optional[constr(min_length=1, max_length=20)] + deviceParameters: ( + GateModelSimulatorDeviceParameters + | IonqDeviceParameters + | IqmDeviceParameters + | RigettiDeviceParameters + | GateModelDeviceParameters + | None + ) + createdAt: constr(min_length=1, max_length=24) | None + endedAt: constr(min_length=1, max_length=24) | None + status: constr(min_length=1, max_length=20) | None totalFailedExecutables: int diff --git a/src/braket/task_result/program_set_task_result_v1.py b/src/braket/task_result/program_set_task_result_v1.py index c400a0a..f2bd83f 100644 --- a/src/braket/task_result/program_set_task_result_v1.py +++ b/src/braket/task_result/program_set_task_result_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import Field @@ -41,6 +40,6 @@ class ProgramSetTaskResult(BraketSchemaBase): default=_PROGRAM_SET_TASK_RESULT_HEADER, const=_PROGRAM_SET_TASK_RESULT_HEADER ) - programResults: Union[list[str], list[ProgramResult]] - taskMetadata: Union[str, ProgramSetTaskMetadata] - s3Location: Optional[tuple[str, str]] + programResults: list[str] | list[ProgramResult] + taskMetadata: str | ProgramSetTaskMetadata + s3Location: tuple[str, str] | None diff --git a/src/braket/task_result/rigetti_metadata_v1.py b/src/braket/task_result/rigetti_metadata_v1.py index b4d1ba9..bf0840c 100644 --- a/src/braket/task_result/rigetti_metadata_v1.py +++ b/src/braket/task_result/rigetti_metadata_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional from pydantic.v1 import BaseModel, Field, confloat, conint, conlist, constr @@ -75,5 +74,5 @@ class RigettiMetadata(BraketSchemaBase): default=_RIGETTI_METADATA_HEADER, const=_RIGETTI_METADATA_HEADER ) - nativeQuilMetadata: Optional[NativeQuilMetadata] + nativeQuilMetadata: NativeQuilMetadata | None compiledProgram: constr(min_length=2) diff --git a/src/braket/task_result/task_metadata_v1.py b/src/braket/task_result/task_metadata_v1.py index 0d8941c..559d94a 100644 --- a/src/braket/task_result/task_metadata_v1.py +++ b/src/braket/task_result/task_metadata_v1.py @@ -11,7 +11,6 @@ # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License -from typing import Optional, Union from pydantic.v1 import Field, conint, constr @@ -67,21 +66,20 @@ class TaskMetadata(BraketSchemaBase): id: constr(min_length=1) shots: conint(ge=0) deviceId: constr(min_length=1) - deviceParameters: Optional[ - Union[ - DwaveDeviceParameters, - DwaveAdvantageDeviceParameters, - Dwave2000QDeviceParameters, - RigettiDeviceParameters, - IonqDeviceParameters, - OqcDeviceParameters, - GateModelSimulatorDeviceParameters, - XanaduDeviceParameters, - IqmDeviceParameters, - GateModelDeviceParameters, - ] - ] - createdAt: Optional[constr(min_length=1, max_length=24)] - endedAt: Optional[constr(min_length=1, max_length=24)] - status: Optional[constr(min_length=1, max_length=20)] - failureReason: Optional[constr(min_length=1)] + deviceParameters: ( + DwaveDeviceParameters + | DwaveAdvantageDeviceParameters + | Dwave2000QDeviceParameters + | RigettiDeviceParameters + | IonqDeviceParameters + | OqcDeviceParameters + | GateModelSimulatorDeviceParameters + | XanaduDeviceParameters + | IqmDeviceParameters + | GateModelDeviceParameters + | None + ) + createdAt: constr(min_length=1, max_length=24) | None + endedAt: constr(min_length=1, max_length=24) | None + status: constr(min_length=1, max_length=20) | None + failureReason: constr(min_length=1) | None diff --git a/test/unit_tests/braket/device_schema/test_standardized_gate_model_qpu_device_properties_v3.py b/test/unit_tests/braket/device_schema/test_standardized_gate_model_qpu_device_properties_v3.py index 1b16bac..d775936 100644 --- a/test/unit_tests/braket/device_schema/test_standardized_gate_model_qpu_device_properties_v3.py +++ b/test/unit_tests/braket/device_schema/test_standardized_gate_model_qpu_device_properties_v3.py @@ -77,11 +77,7 @@ def test_parse_success(): } ], "twoQubitGateDuration": {"value": 0.000200, "standardError": 0.000010, "unit": "s"}, - "activeResetDuration": { - "value": 0.000100, - "standardError": 0.000005, - "unit": "s" - }, + "activeResetDuration": {"value": 0.000100, "standardError": 0.000005, "unit": "s"}, "updatedAt": "2025-02-22T12:29:03Z", } assert StandardizedGateModelQpuDeviceProperties.parse_raw_schema(json.dumps(input))