mirror of
https://github.com/wassname/openrouter-python-sdk-retry-errors.git
synced 2026-07-30 12:20:57 +08:00
Auto-generated Python SDK for OpenRouter API, providing comprehensive client library with: - Chat completions and streaming support - Embeddings API - Model and provider information - API key management - Analytics and usage tracking - OAuth authentication flows - Full type hints and error handling
178 lines
6.7 KiB
Python
178 lines
6.7 KiB
Python
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
|
|
from .openroutererror import OpenRouterError
|
|
from typing import TYPE_CHECKING
|
|
from importlib import import_module
|
|
import builtins
|
|
import sys
|
|
|
|
if TYPE_CHECKING:
|
|
from .badgatewayresponse_error import (
|
|
BadGatewayResponseError,
|
|
BadGatewayResponseErrorData,
|
|
)
|
|
from .badrequestresponse_error import (
|
|
BadRequestResponseError,
|
|
BadRequestResponseErrorData,
|
|
)
|
|
from .chaterror import ChatError, ChatErrorData
|
|
from .edgenetworktimeoutresponse_error import (
|
|
EdgeNetworkTimeoutResponseError,
|
|
EdgeNetworkTimeoutResponseErrorData,
|
|
)
|
|
from .forbiddenresponse_error import (
|
|
ForbiddenResponseError,
|
|
ForbiddenResponseErrorData,
|
|
)
|
|
from .internalserverresponse_error import (
|
|
InternalServerResponseError,
|
|
InternalServerResponseErrorData,
|
|
)
|
|
from .no_response_error import NoResponseError
|
|
from .notfoundresponse_error import NotFoundResponseError, NotFoundResponseErrorData
|
|
from .openrouterdefaulterror import OpenRouterDefaultError
|
|
from .payloadtoolargeresponse_error import (
|
|
PayloadTooLargeResponseError,
|
|
PayloadTooLargeResponseErrorData,
|
|
)
|
|
from .paymentrequiredresponse_error import (
|
|
PaymentRequiredResponseError,
|
|
PaymentRequiredResponseErrorData,
|
|
)
|
|
from .provideroverloadedresponse_error import (
|
|
ProviderOverloadedResponseError,
|
|
ProviderOverloadedResponseErrorData,
|
|
)
|
|
from .requesttimeoutresponse_error import (
|
|
RequestTimeoutResponseError,
|
|
RequestTimeoutResponseErrorData,
|
|
)
|
|
from .responsevalidationerror import ResponseValidationError
|
|
from .serviceunavailableresponse_error import (
|
|
ServiceUnavailableResponseError,
|
|
ServiceUnavailableResponseErrorData,
|
|
)
|
|
from .toomanyrequestsresponse_error import (
|
|
TooManyRequestsResponseError,
|
|
TooManyRequestsResponseErrorData,
|
|
)
|
|
from .unauthorizedresponse_error import (
|
|
UnauthorizedResponseError,
|
|
UnauthorizedResponseErrorData,
|
|
)
|
|
from .unprocessableentityresponse_error import (
|
|
UnprocessableEntityResponseError,
|
|
UnprocessableEntityResponseErrorData,
|
|
)
|
|
|
|
__all__ = [
|
|
"BadGatewayResponseError",
|
|
"BadGatewayResponseErrorData",
|
|
"BadRequestResponseError",
|
|
"BadRequestResponseErrorData",
|
|
"ChatError",
|
|
"ChatErrorData",
|
|
"EdgeNetworkTimeoutResponseError",
|
|
"EdgeNetworkTimeoutResponseErrorData",
|
|
"ForbiddenResponseError",
|
|
"ForbiddenResponseErrorData",
|
|
"InternalServerResponseError",
|
|
"InternalServerResponseErrorData",
|
|
"NoResponseError",
|
|
"NotFoundResponseError",
|
|
"NotFoundResponseErrorData",
|
|
"OpenRouterDefaultError",
|
|
"OpenRouterError",
|
|
"PayloadTooLargeResponseError",
|
|
"PayloadTooLargeResponseErrorData",
|
|
"PaymentRequiredResponseError",
|
|
"PaymentRequiredResponseErrorData",
|
|
"ProviderOverloadedResponseError",
|
|
"ProviderOverloadedResponseErrorData",
|
|
"RequestTimeoutResponseError",
|
|
"RequestTimeoutResponseErrorData",
|
|
"ResponseValidationError",
|
|
"ServiceUnavailableResponseError",
|
|
"ServiceUnavailableResponseErrorData",
|
|
"TooManyRequestsResponseError",
|
|
"TooManyRequestsResponseErrorData",
|
|
"UnauthorizedResponseError",
|
|
"UnauthorizedResponseErrorData",
|
|
"UnprocessableEntityResponseError",
|
|
"UnprocessableEntityResponseErrorData",
|
|
]
|
|
|
|
_dynamic_imports: dict[str, str] = {
|
|
"BadGatewayResponseError": ".badgatewayresponse_error",
|
|
"BadGatewayResponseErrorData": ".badgatewayresponse_error",
|
|
"BadRequestResponseError": ".badrequestresponse_error",
|
|
"BadRequestResponseErrorData": ".badrequestresponse_error",
|
|
"ChatError": ".chaterror",
|
|
"ChatErrorData": ".chaterror",
|
|
"EdgeNetworkTimeoutResponseError": ".edgenetworktimeoutresponse_error",
|
|
"EdgeNetworkTimeoutResponseErrorData": ".edgenetworktimeoutresponse_error",
|
|
"ForbiddenResponseError": ".forbiddenresponse_error",
|
|
"ForbiddenResponseErrorData": ".forbiddenresponse_error",
|
|
"InternalServerResponseError": ".internalserverresponse_error",
|
|
"InternalServerResponseErrorData": ".internalserverresponse_error",
|
|
"NoResponseError": ".no_response_error",
|
|
"NotFoundResponseError": ".notfoundresponse_error",
|
|
"NotFoundResponseErrorData": ".notfoundresponse_error",
|
|
"OpenRouterDefaultError": ".openrouterdefaulterror",
|
|
"PayloadTooLargeResponseError": ".payloadtoolargeresponse_error",
|
|
"PayloadTooLargeResponseErrorData": ".payloadtoolargeresponse_error",
|
|
"PaymentRequiredResponseError": ".paymentrequiredresponse_error",
|
|
"PaymentRequiredResponseErrorData": ".paymentrequiredresponse_error",
|
|
"ProviderOverloadedResponseError": ".provideroverloadedresponse_error",
|
|
"ProviderOverloadedResponseErrorData": ".provideroverloadedresponse_error",
|
|
"RequestTimeoutResponseError": ".requesttimeoutresponse_error",
|
|
"RequestTimeoutResponseErrorData": ".requesttimeoutresponse_error",
|
|
"ResponseValidationError": ".responsevalidationerror",
|
|
"ServiceUnavailableResponseError": ".serviceunavailableresponse_error",
|
|
"ServiceUnavailableResponseErrorData": ".serviceunavailableresponse_error",
|
|
"TooManyRequestsResponseError": ".toomanyrequestsresponse_error",
|
|
"TooManyRequestsResponseErrorData": ".toomanyrequestsresponse_error",
|
|
"UnauthorizedResponseError": ".unauthorizedresponse_error",
|
|
"UnauthorizedResponseErrorData": ".unauthorizedresponse_error",
|
|
"UnprocessableEntityResponseError": ".unprocessableentityresponse_error",
|
|
"UnprocessableEntityResponseErrorData": ".unprocessableentityresponse_error",
|
|
}
|
|
|
|
|
|
def dynamic_import(modname, retries=3):
|
|
for attempt in range(retries):
|
|
try:
|
|
return import_module(modname, __package__)
|
|
except KeyError:
|
|
# Clear any half-initialized module and retry
|
|
sys.modules.pop(modname, None)
|
|
if attempt == retries - 1:
|
|
break
|
|
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
|
|
|
|
def __getattr__(attr_name: str) -> object:
|
|
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 = dynamic_import(module_name)
|
|
result = getattr(module, attr_name)
|
|
return result
|
|
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 = builtins.list(_dynamic_imports.keys())
|
|
return builtins.sorted(lazy_attrs)
|