From a9baa7df89786d07076b61293b6916c2ffd14e00 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 9 Feb 2026 18:01:08 +0100 Subject: [PATCH] fix asyncio import error --- sp_api/base/__init__.py | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/sp_api/base/__init__.py b/sp_api/base/__init__.py index 3d5194eed..e16d936e9 100644 --- a/sp_api/base/__init__.py +++ b/sp_api/base/__init__.py @@ -1,5 +1,6 @@ +from typing import TYPE_CHECKING + from .base_client import BaseClient -from .client import Client from .helpers import ( fill_query_params, sp_endpoint, @@ -36,11 +37,14 @@ from .processing_status import ProcessingStatus from .reportTypes import ReportType from .feedTypes import FeedType -from sp_api.auth import AccessTokenClient, Credentials -from sp_api.auth.exceptions import AuthorizationError from sp_api.base.inegibility_reasons import IneligibilityReasonList from .marketplaces import AwsEnv +if TYPE_CHECKING: + from .client import Client + from sp_api.auth import AccessTokenClient, Credentials + from sp_api.auth.exceptions import AuthorizationError + __all__ = [ "Credentials", @@ -92,3 +96,23 @@ # Backward-compatibility aliases for docs and legacy imports. FeedTypes = FeedType FulfillmentChannels = FulfillmentChannel + + +def __getattr__(name): + if name == "Client": + from .client import Client + + globals()[name] = Client + return Client + if name in {"AccessTokenClient", "Credentials"}: + from sp_api.auth import AccessTokenClient, Credentials + + exports = {"AccessTokenClient": AccessTokenClient, "Credentials": Credentials} + globals()[name] = exports[name] + return exports[name] + if name == "AuthorizationError": + from sp_api.auth.exceptions import AuthorizationError + + globals()[name] = AuthorizationError + return AuthorizationError + raise AttributeError(f"module '{__name__}' has no attribute '{name}'")