# This file was auto-generated by Fern from our API Definition.

# isort: skip_file

import typing
from importlib import import_module

if typing.TYPE_CHECKING:
    from .types import (
        AvailabilityTimes,
        AwsQasm3JobInput,
        AwsQasm3JobInputParams,
        AzureIonqJobInput,
        AzureIonqJobInputCircuitItem,
        AzureIonqJobInputCircuitItemType,
        AzureIonqJobInputParams,
        Backend,
        BackendAccessType,
        BackendHardwareProvider,
        BackendProvider,
        BackendStateInfo,
        BackendStateInfoStatus,
        BackendStatus,
        BackendTechnology,
        BackendType,
        CalibrationResponse,
        Configuration,
        ConfigurationOutputFormat,
        ConfigurationSupportedInputFormatsItem,
        Connectivity,
        Cost,
        CostGranularity,
        Documentation,
        DocumentationSdksItem,
        Gate,
        Job,
        JobInputFormat,
        JobProvider,
        JobSdkProvider,
        JobStatus,
        JobStatusResponse,
        JobStatusResponseStatus,
        JsonNode,
        OauthScope,
        PageResponseJob,
        PhotonicProperties,
        Qubit,
        ServiceExecutionId,
        ShotsRange,
    )
    from .errors import ForbiddenError, InternalServerError, NotFoundError, UnauthorizedError
    from . import backends, jobs
    from .client import AsyncGeneratedPlanqkQuantumClient, GeneratedPlanqkQuantumClient
    from .environment import GeneratedPlanqkQuantumClientEnvironment
    from .jobs import (
        CreateJobRequestInput,
        CreateJobRequestInputFormat,
        CreateJobRequestInputParams,
        CreateJobRequestInputParams_AwsIonqAria,
        CreateJobRequestInputParams_AwsIonqAria2,
        CreateJobRequestInputParams_AwsIonqForte,
        CreateJobRequestInputParams_AwsIqmGarnet,
        CreateJobRequestInputParams_AwsRigettiAnkaa,
        CreateJobRequestInputParams_AwsSimDm1,
        CreateJobRequestInputParams_AwsSimSv1,
        CreateJobRequestInputParams_AzureIonqSimulator,
        CreateJobRequestInput_AwsIonqAria,
        CreateJobRequestInput_AwsIonqAria2,
        CreateJobRequestInput_AwsIonqForte,
        CreateJobRequestInput_AwsIqmGarnet,
        CreateJobRequestInput_AwsRigettiAnkaa,
        CreateJobRequestInput_AwsSimDm1,
        CreateJobRequestInput_AwsSimSv1,
        CreateJobRequestInput_AzureIonqSimulator,
    )
_dynamic_imports: typing.Dict[str, str] = {
    "AsyncGeneratedPlanqkQuantumClient": ".client",
    "AvailabilityTimes": ".types",
    "AwsQasm3JobInput": ".types",
    "AwsQasm3JobInputParams": ".types",
    "AzureIonqJobInput": ".types",
    "AzureIonqJobInputCircuitItem": ".types",
    "AzureIonqJobInputCircuitItemType": ".types",
    "AzureIonqJobInputParams": ".types",
    "Backend": ".types",
    "BackendAccessType": ".types",
    "BackendHardwareProvider": ".types",
    "BackendProvider": ".types",
    "BackendStateInfo": ".types",
    "BackendStateInfoStatus": ".types",
    "BackendStatus": ".types",
    "BackendTechnology": ".types",
    "BackendType": ".types",
    "CalibrationResponse": ".types",
    "Configuration": ".types",
    "ConfigurationOutputFormat": ".types",
    "ConfigurationSupportedInputFormatsItem": ".types",
    "Connectivity": ".types",
    "Cost": ".types",
    "CostGranularity": ".types",
    "CreateJobRequestInput": ".jobs",
    "CreateJobRequestInputFormat": ".jobs",
    "CreateJobRequestInputParams": ".jobs",
    "CreateJobRequestInputParams_AwsIonqAria": ".jobs",
    "CreateJobRequestInputParams_AwsIonqAria2": ".jobs",
    "CreateJobRequestInputParams_AwsIonqForte": ".jobs",
    "CreateJobRequestInputParams_AwsIqmGarnet": ".jobs",
    "CreateJobRequestInputParams_AwsRigettiAnkaa": ".jobs",
    "CreateJobRequestInputParams_AwsSimDm1": ".jobs",
    "CreateJobRequestInputParams_AwsSimSv1": ".jobs",
    "CreateJobRequestInputParams_AzureIonqSimulator": ".jobs",
    "CreateJobRequestInput_AwsIonqAria": ".jobs",
    "CreateJobRequestInput_AwsIonqAria2": ".jobs",
    "CreateJobRequestInput_AwsIonqForte": ".jobs",
    "CreateJobRequestInput_AwsIqmGarnet": ".jobs",
    "CreateJobRequestInput_AwsRigettiAnkaa": ".jobs",
    "CreateJobRequestInput_AwsSimDm1": ".jobs",
    "CreateJobRequestInput_AwsSimSv1": ".jobs",
    "CreateJobRequestInput_AzureIonqSimulator": ".jobs",
    "Documentation": ".types",
    "DocumentationSdksItem": ".types",
    "ForbiddenError": ".errors",
    "Gate": ".types",
    "GeneratedPlanqkQuantumClient": ".client",
    "GeneratedPlanqkQuantumClientEnvironment": ".environment",
    "InternalServerError": ".errors",
    "Job": ".types",
    "JobInputFormat": ".types",
    "JobProvider": ".types",
    "JobSdkProvider": ".types",
    "JobStatus": ".types",
    "JobStatusResponse": ".types",
    "JobStatusResponseStatus": ".types",
    "JsonNode": ".types",
    "NotFoundError": ".errors",
    "OauthScope": ".types",
    "PageResponseJob": ".types",
    "PhotonicProperties": ".types",
    "Qubit": ".types",
    "ServiceExecutionId": ".types",
    "ShotsRange": ".types",
    "UnauthorizedError": ".errors",
    "backends": ".backends",
    "jobs": ".jobs",
}


def __getattr__(attr_name: str) -> typing.Any:
    module_name = _dynamic_imports.get(attr_name)
    if module_name is None:
        raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
    try:
        module = import_module(module_name, __package__)
        if module_name == f".{attr_name}":
            return module
        else:
            return getattr(module, attr_name)
    except ImportError as e:
        raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
    except AttributeError as e:
        raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e


def __dir__():
    lazy_attrs = list(_dynamic_imports.keys())
    return sorted(lazy_attrs)


__all__ = [
    "AsyncGeneratedPlanqkQuantumClient",
    "AvailabilityTimes",
    "AwsQasm3JobInput",
    "AwsQasm3JobInputParams",
    "AzureIonqJobInput",
    "AzureIonqJobInputCircuitItem",
    "AzureIonqJobInputCircuitItemType",
    "AzureIonqJobInputParams",
    "Backend",
    "BackendAccessType",
    "BackendHardwareProvider",
    "BackendProvider",
    "BackendStateInfo",
    "BackendStateInfoStatus",
    "BackendStatus",
    "BackendTechnology",
    "BackendType",
    "CalibrationResponse",
    "Configuration",
    "ConfigurationOutputFormat",
    "ConfigurationSupportedInputFormatsItem",
    "Connectivity",
    "Cost",
    "CostGranularity",
    "CreateJobRequestInput",
    "CreateJobRequestInputFormat",
    "CreateJobRequestInputParams",
    "CreateJobRequestInputParams_AwsIonqAria",
    "CreateJobRequestInputParams_AwsIonqAria2",
    "CreateJobRequestInputParams_AwsIonqForte",
    "CreateJobRequestInputParams_AwsIqmGarnet",
    "CreateJobRequestInputParams_AwsRigettiAnkaa",
    "CreateJobRequestInputParams_AwsSimDm1",
    "CreateJobRequestInputParams_AwsSimSv1",
    "CreateJobRequestInputParams_AzureIonqSimulator",
    "CreateJobRequestInput_AwsIonqAria",
    "CreateJobRequestInput_AwsIonqAria2",
    "CreateJobRequestInput_AwsIonqForte",
    "CreateJobRequestInput_AwsIqmGarnet",
    "CreateJobRequestInput_AwsRigettiAnkaa",
    "CreateJobRequestInput_AwsSimDm1",
    "CreateJobRequestInput_AwsSimSv1",
    "CreateJobRequestInput_AzureIonqSimulator",
    "Documentation",
    "DocumentationSdksItem",
    "ForbiddenError",
    "Gate",
    "GeneratedPlanqkQuantumClient",
    "GeneratedPlanqkQuantumClientEnvironment",
    "InternalServerError",
    "Job",
    "JobInputFormat",
    "JobProvider",
    "JobSdkProvider",
    "JobStatus",
    "JobStatusResponse",
    "JobStatusResponseStatus",
    "JsonNode",
    "NotFoundError",
    "OauthScope",
    "PageResponseJob",
    "PhotonicProperties",
    "Qubit",
    "ServiceExecutionId",
    "ShotsRange",
    "UnauthorizedError",
    "backends",
    "jobs",
]
