From 14b107b5a1d26db499a07576381b1a7bb9c54263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B4=9B=E6=B0=B4=E5=B1=85=E5=AE=A4?= Date: Fri, 5 May 2023 20:04:41 +0800 Subject: [PATCH] :art: Organize client subdirectories and add `__all__` variable Moves all subdirectories from 'simnet/client' to 'simnet/client/components' and adds the `__all__` variable to all affected files. This change is intended to improve code organization and make it easier to manage exported symbols from these modules. --- simnet/client/base.py | 2 ++ simnet/client/{account => components}/auth.py | 2 ++ simnet/client/{ => components}/chronicle/base.py | 2 ++ .../client/{ => components}/chronicle/genshin.py | 6 ++++-- .../client/{ => components}/chronicle/starrail.py | 4 +++- simnet/client/{ => components}/wish/base.py | 2 ++ simnet/client/{ => components}/wish/genshin.py | 9 ++++++--- simnet/client/{ => components}/wish/starrail.py | 8 +++++--- simnet/client/cookies.py | 2 ++ simnet/client/genshin.py | 8 ++++---- simnet/client/genshin.pyi | 8 ++++---- simnet/client/headers.py | 2 ++ simnet/client/routes.py | 15 +++++++++++++++ simnet/client/starrail.py | 8 ++++---- simnet/client/starrail.pyi | 8 ++++---- 15 files changed, 61 insertions(+), 25 deletions(-) rename simnet/client/{account => components}/auth.py (99%) rename simnet/client/{ => components}/chronicle/base.py (99%) rename simnet/client/{ => components}/chronicle/genshin.py (98%) rename simnet/client/{ => components}/chronicle/starrail.py (97%) rename simnet/client/{ => components}/wish/base.py (99%) rename simnet/client/{ => components}/wish/genshin.py (88%) rename simnet/client/{ => components}/wish/starrail.py (87%) diff --git a/simnet/client/base.py b/simnet/client/base.py index faaba18..3d22fc1 100644 --- a/simnet/client/base.py +++ b/simnet/client/base.py @@ -21,6 +21,8 @@ from simnet.utils.types import ( _LOGGER = logging.getLogger("SIMNet.BaseClient") +__all__ = ("BaseClient",) + class BaseClient(AsyncContextManager["BaseClient"]): """ diff --git a/simnet/client/account/auth.py b/simnet/client/components/auth.py similarity index 99% rename from simnet/client/account/auth.py rename to simnet/client/components/auth.py index 66e44c0..7842819 100644 --- a/simnet/client/account/auth.py +++ b/simnet/client/components/auth.py @@ -10,6 +10,8 @@ from simnet.client.routes import ( ) from simnet.utils.enum_ import Region +__all__ = ("AuthClient",) + class AuthClient(BaseClient): """ diff --git a/simnet/client/chronicle/base.py b/simnet/client/components/chronicle/base.py similarity index 99% rename from simnet/client/chronicle/base.py rename to simnet/client/components/chronicle/base.py index 8e3256f..779304f 100644 --- a/simnet/client/chronicle/base.py +++ b/simnet/client/components/chronicle/base.py @@ -4,6 +4,8 @@ from simnet.client.routes import RECORD_URL from simnet.utils.enum_ import Region, Game from simnet.utils.types import QueryParamTypes +__all__ = ("BaseChronicleClient",) + class BaseChronicleClient(BaseClient): """The base class for the Chronicle API client. diff --git a/simnet/client/chronicle/genshin.py b/simnet/client/components/chronicle/genshin.py similarity index 98% rename from simnet/client/chronicle/genshin.py rename to simnet/client/components/chronicle/genshin.py index aa04957..d63d977 100644 --- a/simnet/client/chronicle/genshin.py +++ b/simnet/client/components/chronicle/genshin.py @@ -1,7 +1,7 @@ import asyncio from typing import Optional, Any, List, Dict -from simnet.client.chronicle.base import BaseChronicleClient +from simnet.client.components.chronicle.base import BaseChronicleClient from simnet.errors import DataNotPublic, BadRequest from simnet.models.genshin.chronicle.abyss import SpiralAbyss, SpiralAbyssPair from simnet.models.genshin.chronicle.characters import Character @@ -14,8 +14,10 @@ from simnet.models.genshin.chronicle.stats import ( from simnet.utils.enum_ import Game from simnet.utils.player import recognize_genshin_server, recognize_region +__all__ = ("GenshinBattleChronicleClient",) -class GenshinChronicleClient(BaseChronicleClient): + +class GenshinBattleChronicleClient(BaseChronicleClient): """A client for retrieving data from Genshin's battle chronicle component. This class is used to retrieve various data objects from StarRail's battle chronicle component, diff --git a/simnet/client/chronicle/starrail.py b/simnet/client/components/chronicle/starrail.py similarity index 97% rename from simnet/client/chronicle/starrail.py rename to simnet/client/components/chronicle/starrail.py index 537830e..83a3944 100644 --- a/simnet/client/chronicle/starrail.py +++ b/simnet/client/components/chronicle/starrail.py @@ -1,6 +1,6 @@ from typing import Optional, Mapping, Dict, Any -from simnet.client.chronicle.base import BaseChronicleClient +from simnet.client.components.chronicle.base import BaseChronicleClient from simnet.errors import BadRequest, DataNotPublic from simnet.models.starrail.chronicle.characters import StarShipDetailCharacters from simnet.models.starrail.chronicle.notes import StarRailNote @@ -8,6 +8,8 @@ from simnet.models.starrail.chronicle.stats import StarRailUserStats from simnet.utils.enum_ import Game from simnet.utils.player import recognize_starrail_server, recognize_region +__all__ = ("StarRailBattleChronicleClient",) + class StarRailBattleChronicleClient(BaseChronicleClient): """A client for retrieving data from StarRail's battle chronicle component. diff --git a/simnet/client/wish/base.py b/simnet/client/components/wish/base.py similarity index 99% rename from simnet/client/wish/base.py rename to simnet/client/components/wish/base.py index d165ea0..b607239 100644 --- a/simnet/client/wish/base.py +++ b/simnet/client/components/wish/base.py @@ -6,6 +6,8 @@ from simnet.client.routes import GACHA_INFO_URL from simnet.utils.enum_ import Game from simnet.utils.lang import create_short_lang_code +__all__ = ("BaseWishClient",) + class BaseWishClient(BaseClient): """The base class for the Wish API client.""" diff --git a/simnet/client/wish/genshin.py b/simnet/client/components/wish/genshin.py similarity index 88% rename from simnet/client/wish/genshin.py rename to simnet/client/components/wish/genshin.py index b546a1a..c226bb7 100644 --- a/simnet/client/wish/genshin.py +++ b/simnet/client/components/wish/genshin.py @@ -1,14 +1,17 @@ from functools import partial from typing import Optional, List -from simnet.client.wish.base import BaseWishClient +from simnet.client.components.wish.base import BaseWishClient from simnet.models.genshin.wish import Wish from simnet.utils.enum_ import Game from simnet.utils.paginator import WishPaginator -class WishClient(BaseWishClient): - """The WishClient class for making requests towards the Wish API.""" +__all__ = ("GenshinWishClient",) + + +class GenshinWishClient(BaseWishClient): + """The GenshinWishClient class for making requests towards the Wish API.""" async def wish_history( self, diff --git a/simnet/client/wish/starrail.py b/simnet/client/components/wish/starrail.py similarity index 87% rename from simnet/client/wish/starrail.py rename to simnet/client/components/wish/starrail.py index f477f0d..541a67b 100644 --- a/simnet/client/wish/starrail.py +++ b/simnet/client/components/wish/starrail.py @@ -1,13 +1,15 @@ from functools import partial from typing import Optional, List -from simnet.client.wish.base import BaseWishClient +from simnet.client.components.wish.base import BaseWishClient from simnet.models.starrail.wish import StarRailWish from simnet.utils.enum_ import Game from simnet.utils.paginator import WishPaginator +__all__ = ("StarRailWishClient",) -class WishClient(BaseWishClient): - """The WishClient class for making requests towards the Wish API.""" + +class StarRailWishClient(BaseWishClient): + """The StarRailWishClient class for making requests towards the Wish API.""" async def wish_history( self, diff --git a/simnet/client/cookies.py b/simnet/client/cookies.py index 865b744..b70aca7 100644 --- a/simnet/client/cookies.py +++ b/simnet/client/cookies.py @@ -2,6 +2,8 @@ from typing import Optional from httpx import Cookies as _Cookies +__all__ = ("Cookies",) + class Cookies(_Cookies): """An extension of the `httpx.Cookies` class that includes additional functionality.""" diff --git a/simnet/client/genshin.py b/simnet/client/genshin.py index c341685..e9db717 100644 --- a/simnet/client/genshin.py +++ b/simnet/client/genshin.py @@ -1,9 +1,9 @@ -from simnet.client.account.auth import AuthClient -from simnet.client.chronicle.genshin import GenshinChronicleClient -from simnet.client.wish.genshin import WishClient +from simnet.client.components.auth import AuthClient +from simnet.client.components.chronicle.genshin import GenshinBattleChronicleClient +from simnet.client.components.wish.genshin import GenshinWishClient __all__ = ("GenshinClient",) -class GenshinClient(GenshinChronicleClient, WishClient, AuthClient): +class GenshinClient(GenshinBattleChronicleClient, GenshinWishClient, AuthClient): """A simple http client for StarRail endpoints.""" diff --git a/simnet/client/genshin.pyi b/simnet/client/genshin.pyi index 1877d72..b8fc2a5 100644 --- a/simnet/client/genshin.pyi +++ b/simnet/client/genshin.pyi @@ -1,12 +1,12 @@ from typing import Optional -from simnet.client.account.auth import AuthClient -from simnet.client.chronicle.genshin import GenshinChronicleClient -from simnet.client.wish.genshin import WishClient +from simnet.client.components.auth import AuthClient +from simnet.client.components.chronicle.genshin import GenshinBattleChronicleClient +from simnet.client.components.wish.genshin import GenshinWishClient from simnet.utils.enum_ import Region from simnet.utils.types import CookieTypes, HeaderTypes, TimeoutTypes -class GenshinClient(GenshinChronicleClient, WishClient, AuthClient): +class GenshinClient(GenshinBattleChronicleClient, GenshinWishClient, AuthClient): def __init__( self, cookies: Optional[CookieTypes] = None, diff --git a/simnet/client/headers.py b/simnet/client/headers.py index debc26b..030b240 100644 --- a/simnet/client/headers.py +++ b/simnet/client/headers.py @@ -1,5 +1,7 @@ from httpx import Headers as _Headers +__all__ = ("Headers",) + class Headers(_Headers): """An extension of the `httpx.Headers` class that includes additional functionality.""" diff --git a/simnet/client/routes.py b/simnet/client/routes.py index 7a528fd..d4bfcad 100644 --- a/simnet/client/routes.py +++ b/simnet/client/routes.py @@ -7,6 +7,21 @@ from simnet.utils.enum_ import Region, Game URLTypes = Union["URL", str] +__all__ = ( + "URL", + "BaseRoute", + "Route", + "InternationalRoute", + "GameRoute", + "RECORD_URL", + "GACHA_INFO_URL", + "AUTH_URL", + "GET_COOKIES_TOKEN_BY_STOKEN_URL", + "GET_LTOKEN_BY_STOKEN_URL", + "AUTH_KEY_URL", + "HK4E_LOGIN_URL", +) + class URL(_URL): """A subclass of httpx's URL class, with additional convenience methods for URL manipulation.""" diff --git a/simnet/client/starrail.py b/simnet/client/starrail.py index cf436e1..b1bf1fb 100644 --- a/simnet/client/starrail.py +++ b/simnet/client/starrail.py @@ -1,9 +1,9 @@ -from simnet.client.account.auth import AuthClient -from simnet.client.chronicle.starrail import StarRailBattleChronicleClient -from simnet.client.wish.starrail import WishClient +from simnet.client.components.auth import AuthClient +from simnet.client.components.chronicle.starrail import StarRailBattleChronicleClient +from simnet.client.components.wish.starrail import StarRailWishClient __all__ = ("StarRailClient",) -class StarRailClient(StarRailBattleChronicleClient, WishClient, AuthClient): +class StarRailClient(StarRailBattleChronicleClient, StarRailWishClient, AuthClient): """A simple http client for StarRail endpoints.""" diff --git a/simnet/client/starrail.pyi b/simnet/client/starrail.pyi index 6ef0557..3b02007 100644 --- a/simnet/client/starrail.pyi +++ b/simnet/client/starrail.pyi @@ -1,12 +1,12 @@ from typing import Optional -from simnet.client.account.auth import AuthClient -from simnet.client.chronicle.starrail import StarRailBattleChronicleClient -from simnet.client.wish.starrail import WishClient +from simnet.client.components.auth import AuthClient +from simnet.client.components.chronicle.starrail import StarRailBattleChronicleClient +from simnet.client.components.wish.starrail import StarRailWishClient from simnet.utils.enum_ import Region from simnet.utils.types import CookieTypes, HeaderTypes, TimeoutTypes -class StarRailClient(StarRailBattleChronicleClient, WishClient, AuthClient): +class StarRailClient(StarRailBattleChronicleClient, StarRailWishClient, AuthClient): def __init__( self, cookies: Optional[CookieTypes] = None,