🚨 make type checker happy

This commit is contained in:
2024-08-22 01:14:59 +08:00
parent a2108c9776
commit 3629a2ff4a

View File

@@ -1,7 +1,7 @@
from asyncio import gather from asyncio import gather
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from hashlib import md5 from hashlib import md5
from typing import TYPE_CHECKING, TypeVar from typing import TypeVar
from arclet.alconna import Arg, ArgFlag from arclet.alconna import Arg, ArgFlag
from nonebot import get_driver from nonebot import get_driver
@@ -39,16 +39,11 @@ from .. import add_block_handlers, alc
from ..constant import CANT_VERIFY_MESSAGE from ..constant import CANT_VERIFY_MESSAGE
from . import command, get_player from . import command, get_player
from .api import Player from .api import Player
from .api.schemas.summaries.league import LeagueSuccessModel, NeverPlayedData, NeverRatedData from .api.schemas.summaries.league import NeverPlayedData, NeverRatedData
from .constant import GAME_TYPE from .constant import GAME_TYPE
from .models import TETRIOUserConfig from .models import TETRIOUserConfig
from .typing import Template from .typing import Template
if TYPE_CHECKING:
from .api.schemas.summaries import SoloSuccessModel, ZenSuccessModel
from .api.schemas.user import User
from .api.schemas.user_info import UserInfoSuccess
UTC = timezone.utc UTC = timezone.utc
driver = get_driver() driver = get_driver()
@@ -154,26 +149,13 @@ def handling_special_value(value: N) -> N | None:
async def make_query_image_v2(player: Player) -> bytes: async def make_query_image_v2(player: Player) -> bytes:
user: User (
user_info: UserInfoSuccess (user, user_info, league, sprint, blitz, zen),
league: LeagueSuccessModel (avatar_revision, banner_revision),
sprint: SoloSuccessModel ) = await gather(
blitz: SoloSuccessModel gather(player.user, player.get_info(), player.league, player.sprint, player.blitz, player.zen),
zen: ZenSuccessModel gather(player.avatar_revision, player.banner_revision),
avatar_revision: int | None
banner_revision: int | None
# TODO)) 有没有什么办法能让这类型推导成功)
user, user_info, league, sprint, blitz, zen, avatar_revision, banner_revision = await gather( # type: ignore[assignment]
player.user,
player.get_info(),
player.league,
player.sprint,
player.blitz,
player.zen,
player.avatar_revision,
player.banner_revision,
) )
if sprint.data.record is not None: if sprint.data.record is not None:
duration = timedelta(milliseconds=sprint.data.record.results.stats.finaltime).total_seconds() duration = timedelta(milliseconds=sprint.data.record.results.stats.finaltime).total_seconds()
sprint_value = f'{duration:.3f}s' if duration < 60 else f'{duration // 60:.0f}m {duration % 60:.3f}s' # noqa: PLR2004 sprint_value = f'{duration:.3f}s' if duration < 60 else f'{duration // 60:.0f}m {duration % 60:.3f}s' # noqa: PLR2004