From 93b268798520ac22667e97b4ac4c5d1f33b47c3a Mon Sep 17 00:00:00 2001 From: Benex254 Date: Tue, 6 Aug 2024 15:56:09 +0300 Subject: [PATCH] feat: import types only when type checking --- fastanime/AnimeProvider.py | 10 +++++----- fastanime/cli/commands/anilist/notifier.py | 7 +++++-- fastanime/cli/commands/anilist/paused.py | 7 +++++-- fastanime/cli/commands/anilist/planning.py | 7 +++++-- fastanime/cli/commands/anilist/rewatching.py | 7 +++++-- fastanime/cli/commands/anilist/watching.py | 7 +++++-- fastanime/libs/anime_provider/allanime/api.py | 4 +++- 7 files changed, 33 insertions(+), 16 deletions(-) diff --git a/fastanime/AnimeProvider.py b/fastanime/AnimeProvider.py index 22a79c7..8372d03 100644 --- a/fastanime/AnimeProvider.py +++ b/fastanime/AnimeProvider.py @@ -4,12 +4,12 @@ """ import logging -from typing import TYPE_CHECKING, Iterator +from typing import TYPE_CHECKING from .libs.anime_provider import anime_sources if TYPE_CHECKING: - from typing import Union + from typing import Iterator from .libs.anilist.anilist_data_schema import AnilistBaseMediaDataSchema from .libs.anime_provider.types import Anime, SearchResults, Server @@ -46,7 +46,7 @@ class AnimeProvider: self, user_query, translation_type, - anilist_obj: "Union[AnilistBaseMediaDataSchema ,None]" = None, + anilist_obj: "AnilistBaseMediaDataSchema | None" = None, nsfw=True, unknown=True, ) -> "SearchResults | None": @@ -75,7 +75,7 @@ class AnimeProvider: def get_anime( self, anime_id: str, - anilist_obj: "Union[AnilistBaseMediaDataSchema,None]" = None, + anilist_obj: "AnilistBaseMediaDataSchema | None" = None, ) -> "Anime | None": """core abstraction over getting info of an anime from all providers @@ -99,7 +99,7 @@ class AnimeProvider: anime, episode: str, translation_type: str, - anilist_obj: "Union[AnilistBaseMediaDataSchema,None]" = None, + anilist_obj: "AnilistBaseMediaDataSchema|None" = None, ) -> Iterator["Server"] | None: """core abstractions for getting juicy streams from all providers diff --git a/fastanime/cli/commands/anilist/notifier.py b/fastanime/cli/commands/anilist/notifier.py index 6808388..ef572f3 100644 --- a/fastanime/cli/commands/anilist/notifier.py +++ b/fastanime/cli/commands/anilist/notifier.py @@ -1,11 +1,14 @@ +from typing import TYPE_CHECKING + import click -from ...config import Config +if TYPE_CHECKING: + from ...config import Config @click.command(help="Check for notifications on anime you currently watching") @click.pass_obj -def notifier(config: Config): +def notifier(config: "Config"): import json import logging import os diff --git a/fastanime/cli/commands/anilist/paused.py b/fastanime/cli/commands/anilist/paused.py index 8efce97..a80faf6 100644 --- a/fastanime/cli/commands/anilist/paused.py +++ b/fastanime/cli/commands/anilist/paused.py @@ -1,11 +1,14 @@ +from typing import TYPE_CHECKING + import click -from ...config import Config +if TYPE_CHECKING: + from ...config import Config @click.command(help="View anime you paused on watching") @click.pass_obj -def paused(config: Config): +def paused(config: "Config"): from ....anilist import AniList from ...interfaces import anilist_interfaces from ...utils.tools import QueryDict, exit_app diff --git a/fastanime/cli/commands/anilist/planning.py b/fastanime/cli/commands/anilist/planning.py index 9bacee7..0d518c2 100644 --- a/fastanime/cli/commands/anilist/planning.py +++ b/fastanime/cli/commands/anilist/planning.py @@ -1,11 +1,14 @@ +from typing import TYPE_CHECKING + import click -from ...config import Config +if TYPE_CHECKING: + from ...config import Config @click.command(help="View anime you are planning on watching") @click.pass_obj -def planning(config: Config): +def planning(config: "Config"): from ....anilist import AniList from ...interfaces import anilist_interfaces from ...utils.tools import QueryDict, exit_app diff --git a/fastanime/cli/commands/anilist/rewatching.py b/fastanime/cli/commands/anilist/rewatching.py index 4b8567e..d3914b4 100644 --- a/fastanime/cli/commands/anilist/rewatching.py +++ b/fastanime/cli/commands/anilist/rewatching.py @@ -1,11 +1,14 @@ +from typing import TYPE_CHECKING + import click -from ...config import Config +if TYPE_CHECKING: + from ...config import Config @click.command(help="View anime you are rewatching") @click.pass_obj -def rewatching(config: Config): +def rewatching(config: "Config"): from ....anilist import AniList from ...interfaces import anilist_interfaces from ...utils.tools import QueryDict, exit_app diff --git a/fastanime/cli/commands/anilist/watching.py b/fastanime/cli/commands/anilist/watching.py index 91c2f44..f92a199 100644 --- a/fastanime/cli/commands/anilist/watching.py +++ b/fastanime/cli/commands/anilist/watching.py @@ -1,11 +1,14 @@ +from typing import TYPE_CHECKING + import click -from ...config import Config +if TYPE_CHECKING: + from ...config import Config @click.command(help="View anime you are watching") @click.pass_obj -def watching(config: Config): +def watching(config: "Config"): from ....anilist import AniList from ...interfaces import anilist_interfaces from ...utils.tools import QueryDict, exit_app diff --git a/fastanime/libs/anime_provider/allanime/api.py b/fastanime/libs/anime_provider/allanime/api.py index f470e85..5221509 100644 --- a/fastanime/libs/anime_provider/allanime/api.py +++ b/fastanime/libs/anime_provider/allanime/api.py @@ -5,7 +5,7 @@ abstraction over allanime api import json import logging -from typing import TYPE_CHECKING, Iterator +from typing import TYPE_CHECKING from requests.exceptions import Timeout @@ -21,6 +21,8 @@ from .gql_queries import ALLANIME_EPISODES_GQL, ALLANIME_SEARCH_GQL, ALLANIME_SH from .normalizer import normalize_anime, normalize_search_results if TYPE_CHECKING: + from typing import Iterator + from ....libs.anime_provider.allanime.types import AllAnimeEpisode from ....libs.anime_provider.types import Anime, Server logger = logging.getLogger(__name__)