mirror of
https://github.com/wassname/openrouter-python-sdk-retry-errors.git
synced 2026-07-30 12:20:57 +08:00
Initial commit: OpenRouter Python SDK
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
This commit is contained in:
@@ -0,0 +1,177 @@
|
||||
"""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)
|
||||
Reference in New Issue
Block a user