diff --git a/StarRailUID/starrailuid_charinfo/__init__.py b/StarRailUID/starrailuid_charinfo/__init__.py index bd56f4d..a03873b 100644 --- a/StarRailUID/starrailuid_charinfo/__init__.py +++ b/StarRailUID/starrailuid_charinfo/__init__.py @@ -2,18 +2,18 @@ import re from pathlib import Path from typing import Tuple, cast +from PIL import Image +from gsuid_core.sv import SV from gsuid_core.bot import Bot from gsuid_core.models import Event -from gsuid_core.sv import SV -from PIL import Image +from .to_card import api_to_card from ..utils.convert import get_uid +from ..utils.sr_prefix import PREFIX from ..utils.error_reply import UID_HINT +from .get_char_img import draw_char_info_img from ..utils.image.convert import convert_img from ..utils.resource.RESOURCE_PATH import TEMP_PATH -from ..utils.sr_prefix import PREFIX -from .get_char_img import draw_char_info_img -from .to_card import api_to_card sv_char_info_config = SV('sr面板设置', pm=2) sv_get_char_info = SV('sr面板查询', priority=10) diff --git a/StarRailUID/starrailuid_charinfo/get_char_img.py b/StarRailUID/starrailuid_charinfo/get_char_img.py index 79f96d0..22753a4 100644 --- a/StarRailUID/starrailuid_charinfo/get_char_img.py +++ b/StarRailUID/starrailuid_charinfo/get_char_img.py @@ -1,39 +1,39 @@ -import json import re +import json from pathlib import Path -from typing import Dict, Optional, Tuple, Union +from typing import Dict, Tuple, Union, Optional from gsuid_core.logger import logger +from starrail_damage_cal.to_data import api_to_dict from starrail_damage_cal.excel.model import ( AvatarPromotionConfig, EquipmentPromotionConfig, ) -from starrail_damage_cal.to_data import api_to_dict +from .draw_char_img import draw_char_img from ..utils.error_reply import CHAR_HINT +from ..utils.resource.RESOURCE_PATH import PLAYER_PATH from ..utils.map.name_covert import ( - alias_to_char_name, - alias_to_weapon_name, name_to_avatar_id, name_to_weapon_id, + alias_to_char_name, + alias_to_weapon_name, ) from ..utils.map.SR_MAP_PATH import ( - AvatarRankSkillUp, - EquipmentID2Name, - EquipmentID2Rarity, Property2Name, - avatarId2DamageType, - avatarId2EnName, + EquipmentID2Name, + AvatarRankSkillUp, + EquipmentID2Rarity, + rankId2Name, + skillId2Name, avatarId2Name, + skillId2Effect, + avatarId2EnName, avatarId2Rarity, characterSkillTree, - rankId2Name, skillId2AttackType, - skillId2Effect, - skillId2Name, + avatarId2DamageType, ) -from ..utils.resource.RESOURCE_PATH import PLAYER_PATH -from .draw_char_img import draw_char_img WEAPON_TO_INT = { '一': 1, diff --git a/StarRailUID/starrailuid_note/__init__.py b/StarRailUID/starrailuid_note/__init__.py index 865d20f..83134b3 100644 --- a/StarRailUID/starrailuid_note/__init__.py +++ b/StarRailUID/starrailuid_note/__init__.py @@ -9,13 +9,13 @@ from ..utils.sr_prefix import PREFIX from ..utils.error_reply import UID_HINT from .draw_note_card import draw_note_img -sv_get_monthly_data = SV("sr查询月历") +sv_get_monthly_data = SV('sr查询月历') # 群聊内 每月统计 功能 -@sv_get_monthly_data.on_fullmatch(f"{PREFIX}每月统计") +@sv_get_monthly_data.on_fullmatch(f'{PREFIX}每月统计') async def send_monthly_data(bot: Bot, ev: Event): - sr_uid = await GsBind.get_uid_by_game(ev.user_id, ev.bot_id, "sr") + sr_uid = await GsBind.get_uid_by_game(ev.user_id, ev.bot_id, 'sr') if sr_uid is None: return UID_HINT await bot.send(await award(sr_uid)) @@ -24,13 +24,13 @@ async def send_monthly_data(bot: Bot, ev: Event): @sv_get_monthly_data.on_fullmatch( ( - f"{PREFIX}开拓月历", - f"{PREFIX}zj", - f"{PREFIX}月历", + f'{PREFIX}开拓月历', + f'{PREFIX}zj', + f'{PREFIX}月历', ) ) async def send_monthly_pic(bot: Bot, ev: Event): - await bot.logger.info("开始执行[sr开拓月历]") + await bot.logger.info('开始执行[sr开拓月历]') sr_uid = await get_uid(bot, ev) if sr_uid is None: return UID_HINT diff --git a/StarRailUID/starrailuid_roleinfo/__init__.py b/StarRailUID/starrailuid_roleinfo/__init__.py index b205d39..c9c27e6 100644 --- a/StarRailUID/starrailuid_roleinfo/__init__.py +++ b/StarRailUID/starrailuid_roleinfo/__init__.py @@ -10,28 +10,28 @@ from ..utils.sr_prefix import PREFIX from ..utils.error_reply import UID_HINT from .draw_roleinfo_card import get_role_img, get_detail_img -sv_get_info = SV("sr查询信息") +sv_get_info = SV('sr查询信息') -@sv_get_info.on_command(f"{PREFIX}uid") +@sv_get_info.on_command(f'{PREFIX}uid') async def send_role_info(bot: Bot, ev: Event): - name = "".join(re.findall("[\u4e00-\u9fa5]", ev.text)) + name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) if name: return None uid = await get_uid(bot, ev) if uid is None: - return "你还没有绑定UID噢,请使用[sr绑定uid123]完成绑定!" + return '你还没有绑定UID噢,请使用[sr绑定uid123]完成绑定!' - logger.info(f"[sr查询信息]UID: {uid}") - await bot.logger.info("开始执行[sr查询信息]") + logger.info(f'[sr查询信息]UID: {uid}') + await bot.logger.info('开始执行[sr查询信息]') await bot.send(await get_role_img(uid)) return None -@sv_get_info.on_command(f"{PREFIX}练度统计") +@sv_get_info.on_command(f'{PREFIX}练度统计') async def send_detail_info(bot: Bot, ev: Event): - name = "".join(re.findall("[\u4e00-\u9fa5]", ev.text)) + name = ''.join(re.findall('[\u4e00-\u9fa5]', ev.text)) if name: return None get_uid_ = await get_uid(bot, ev, True) @@ -41,7 +41,7 @@ async def send_detail_info(bot: Bot, ev: Event): if uid is None: return await bot.send(UID_HINT) - logger.info(f"[sr查询信息]UID: {uid}") - await bot.logger.info("开始执行[sr查询信息]") + logger.info(f'[sr查询信息]UID: {uid}') + await bot.logger.info('开始执行[sr查询信息]') await bot.send(await get_detail_img(user_id, uid)) return None diff --git a/StarRailUID/starrailuid_roleinfo/draw_roleinfo_card.py b/StarRailUID/starrailuid_roleinfo/draw_roleinfo_card.py index e2a7516..617913a 100644 --- a/StarRailUID/starrailuid_roleinfo/draw_roleinfo_card.py +++ b/StarRailUID/starrailuid_roleinfo/draw_roleinfo_card.py @@ -1,35 +1,33 @@ import asyncio from pathlib import Path -from typing import Dict, List, Optional, Union +from typing import Dict, List, Union, Optional +from PIL import Image, ImageDraw from gsuid_core.logger import logger from gsuid_core.utils.error_reply import get_error -from PIL import Image, ImageDraw from gsuid_core.utils.image.image_tools import ( get_qq_avatar, draw_pic_with_ring, ) +from ..utils.mys_api import mys_api +from .utils import get_icon, wrap_list +from ..utils.image.convert import convert_img +from ..utils.fonts.first_world import fw_font_24 from ..sruid_utils.api.mys.models import ( + Stats, AvatarDetail, + RoleBasicInfo, AvatarListItem, AvatarListItemDetail, - RoleBasicInfo, - Stats, ) -from ..utils.fonts.first_world import fw_font_24 from ..utils.fonts.starrail_fonts import ( sr_font_22, sr_font_24, - sr_font_26, sr_font_28, sr_font_30, sr_font_36, - sr_font_40, ) -from ..utils.image.convert import convert_img -from ..utils.mys_api import mys_api -from .utils import get_icon, wrap_list TEXT_PATH = Path(__file__).parent / 'texture2D' @@ -167,7 +165,7 @@ async def _draw_avatar_card( char_bg.paste(char_icon, (4, 8), mask=char_icon) char_bg.paste(element_icon, (10, 10), mask=element_icon) - + if avatar.rank > 0: char_bg.paste(rank_bg, (89, 6), mask=rank_bg) char_draw.text( @@ -384,10 +382,10 @@ async def get_detail_card(qid: Union[str, int], sr_uid: str) -> Union[bytes, str else: char_info = char_info.resize((1050, img_height)) char_img_draw = ImageDraw.Draw(char_info) - + char_title = Image.open(TEXT_PATH / 'title.png') char_info.paste(char_title, (0, 0), char_title) - + # 获取头像 _id = str(qid) if _id.startswith('http'): @@ -400,10 +398,10 @@ async def get_detail_card(qid: Union[str, int], sr_uid: str) -> Union[bytes, str # 绘制抬头 char_img_draw.text((525, 420), f'UID {sr_uid}', white_color, sr_font_28, 'mm') - + title_img = Image.open(TEXT_PATH / 'bar_title.png') char_info.paste(title_img, (0, 515), mask=title_img) - + for index, avatar in enumerate(avatar_list.avatar_list): avatar_detail = await mys_api.get_avatar_detail(sr_uid, str(avatar.id)) if isinstance(avatar_detail, int): diff --git a/StarRailUID/starrailuid_roleinfo/utils.py b/StarRailUID/starrailuid_roleinfo/utils.py index b21d117..89afb1a 100644 --- a/StarRailUID/starrailuid_roleinfo/utils.py +++ b/StarRailUID/starrailuid_roleinfo/utils.py @@ -1,10 +1,10 @@ from io import BytesIO from pathlib import Path -from typing import Generator, List, TypeVar +from typing import List, TypeVar, Generator +from PIL import Image from aiohttp import ClientSession from gsuid_core.data_store import get_res_path -from PIL import Image T = TypeVar('T') diff --git a/StarRailUID/utils/convert.py b/StarRailUID/utils/convert.py index 1edefa3..35c1a57 100644 --- a/StarRailUID/utils/convert.py +++ b/StarRailUID/utils/convert.py @@ -23,16 +23,16 @@ async def get_uid( async def get_uid( bot: Bot, ev: Event, get_user_id: bool = False, only_uid: bool = False ) -> Union[Optional[str], Tuple[Optional[str], str]]: - uid_data = re.findall(r"\d{9}", ev.text) + uid_data = re.findall(r'\d{9}', ev.text) user_id = ev.at if ev.at else ev.user_id if uid_data: sr_uid: Optional[str] = uid_data[0] if sr_uid: - ev.text = ev.text.replace(sr_uid, "") + ev.text = ev.text.replace(sr_uid, '') else: - sr_uid = await GsBind.get_uid_by_game(ev.user_id, ev.bot_id, "sr") + sr_uid = await GsBind.get_uid_by_game(ev.user_id, ev.bot_id, 'sr') if only_uid: - sr_uid = await GsBind.get_uid_by_game(ev.user_id, ev.bot_id, "sr") + sr_uid = await GsBind.get_uid_by_game(ev.user_id, ev.bot_id, 'sr') if get_user_id: return sr_uid, user_id return sr_uid diff --git a/StarRailUID/utils/resource/download_from_cos.py b/StarRailUID/utils/resource/download_from_cos.py index 0ba86ec..033041b 100644 --- a/StarRailUID/utils/resource/download_from_cos.py +++ b/StarRailUID/utils/resource/download_from_cos.py @@ -2,33 +2,33 @@ import asyncio from pathlib import Path from typing import Dict, List, Tuple, Union -from aiohttp import ClientTimeout, TCPConnector -from aiohttp.client import ClientSession from bs4 import BeautifulSoup -from gsuid_core.logger import logger -from gsuid_core.utils.download_resource.download_core import find_fastest_url -from gsuid_core.utils.download_resource.download_file import download from msgspec import json as msgjson +from gsuid_core.logger import logger +from aiohttp.client import ClientSession +from aiohttp import TCPConnector, ClientTimeout +from gsuid_core.utils.download_resource.download_file import download +from gsuid_core.utils.download_resource.download_core import find_fastest_url from .download_url import download_file from .RESOURCE_PATH import ( - CHAR_ICON_PATH, - CHAR_PORTRAIT_PATH, - CHAR_PREVIEW_PATH, - CONSUMABLE_PATH, - ELEMENT_PATH, - GUIDE_CHARACTER_PATH, - GUIDE_LIGHT_CONE_PATH, + WIKI_PATH, GUIDE_PATH, RELIC_PATH, - RESOURCE_PATH, SKILL_PATH, WEAPON_PATH, - WIKI_LIGHT_CONE_PATH, - WIKI_MATERIAL_FOR_ROLE, - WIKI_PATH, - WIKI_RELIC_PATH, + ELEMENT_PATH, + RESOURCE_PATH, + CHAR_ICON_PATH, WIKI_ROLE_PATH, + CONSUMABLE_PATH, + WIKI_RELIC_PATH, + CHAR_PREVIEW_PATH, + CHAR_PORTRAIT_PATH, + GUIDE_CHARACTER_PATH, + WIKI_LIGHT_CONE_PATH, + GUIDE_LIGHT_CONE_PATH, + WIKI_MATERIAL_FOR_ROLE, ) with Path.open( diff --git a/requirements.txt b/requirements.txt index c8b049b..e421d75 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,68 +4,83 @@ aiofiles==23.2.1 \ --hash=sha256:19297512c647d4b27a2cf7c34caa7e405c0d60b5560618a29a9fe027b18b0107 \ --hash=sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a -aiohttp==3.8.6 \ - --hash=sha256:002f23e6ea8d3dd8d149e569fd580c999232b5fbc601c48d55398fbc2e582e8c \ - --hash=sha256:01770d8c04bd8db568abb636c1fdd4f7140b284b8b3e0b4584f070180c1e5c62 \ - --hash=sha256:0fa375b3d34e71ccccf172cab401cd94a72de7a8cc01847a7b3386204093bb47 \ - --hash=sha256:14cd52ccf40006c7a6cd34a0f8663734e5363fd981807173faf3a017e202fec9 \ - --hash=sha256:16d330b3b9db87c3883e565340d292638a878236418b23cc8b9b11a054aaa887 \ - --hash=sha256:1bed815f3dc3d915c5c1e556c397c8667826fbc1b935d95b0ad680787896a358 \ - --hash=sha256:1d84166673694841d8953f0a8d0c90e1087739d24632fe86b1a08819168b4566 \ - --hash=sha256:253bf92b744b3170eb4c4ca2fa58f9c4b87aeb1df42f71d4e78815e6e8b73c9e \ - --hash=sha256:255ba9d6d5ff1a382bb9a578cd563605aa69bec845680e21c44afc2670607a95 \ - --hash=sha256:2817b2f66ca82ee699acd90e05c95e79bbf1dc986abb62b61ec8aaf851e81c93 \ - --hash=sha256:2d5b785c792802e7b275c420d84f3397668e9d49ab1cb52bd916b3b3ffcf09ad \ - --hash=sha256:33164093be11fcef3ce2571a0dccd9041c9a93fa3bde86569d7b03120d276c6f \ - --hash=sha256:39a312d0e991690ccc1a61f1e9e42daa519dcc34ad03eb6f826d94c1190190dd \ - --hash=sha256:3b2ab182fc28e7a81f6c70bfbd829045d9480063f5ab06f6e601a3eddbbd49a0 \ - --hash=sha256:3c68330a59506254b556b99a91857428cab98b2f84061260a67865f7f52899f5 \ - --hash=sha256:3f0e27e5b733803333bb2371249f41cf42bae8884863e8e8965ec69bebe53132 \ - --hash=sha256:3f5c7ce535a1d2429a634310e308fb7d718905487257060e5d4598e29dc17f0b \ - --hash=sha256:3fd194939b1f764d6bb05490987bfe104287bbf51b8d862261ccf66f48fb4096 \ - --hash=sha256:41bdc2ba359032e36c0e9de5a3bd00d6fb7ea558a6ce6b70acedf0da86458321 \ - --hash=sha256:41d55fc043954cddbbd82503d9cc3f4814a40bcef30b3569bc7b5e34130718c1 \ - --hash=sha256:42c89579f82e49db436b69c938ab3e1559e5a4409eb8639eb4143989bc390f2f \ - --hash=sha256:4ac39027011414dbd3d87f7edb31680e1f430834c8cef029f11c66dad0670aa5 \ - --hash=sha256:4fcf3eabd3fd1a5e6092d1242295fa37d0354b2eb2077e6eb670accad78e40e1 \ - --hash=sha256:6c5f938d199a6fdbdc10bbb9447496561c3a9a565b43be564648d81e1102ac22 \ - --hash=sha256:6e2f9cc8e5328f829f6e1fb74a0a3a939b14e67e80832975e01929e320386b34 \ - --hash=sha256:71783b0b6455ac8f34b5ec99d83e686892c50498d5d00b8e56d47f41b38fbe04 \ - --hash=sha256:76b36b3124f0223903609944a3c8bf28a599b2cc0ce0be60b45211c8e9be97f8 \ - --hash=sha256:7bc88fc494b1f0311d67f29fee6fd636606f4697e8cc793a2d912ac5b19aa38d \ - --hash=sha256:7ee912f7e78287516df155f69da575a0ba33b02dd7c1d6614dbc9463f43066e3 \ - --hash=sha256:86f20cee0f0a317c76573b627b954c412ea766d6ada1a9fcf1b805763ae7feeb \ - --hash=sha256:89341b2c19fb5eac30c341133ae2cc3544d40d9b1892749cdd25892bbc6ac951 \ - --hash=sha256:8d399dade330c53b4106160f75f55407e9ae7505263ea86f2ccca6bfcbdb4921 \ - --hash=sha256:8e31e9db1bee8b4f407b77fd2507337a0a80665ad7b6c749d08df595d88f1cf5 \ - --hash=sha256:918810ef188f84152af6b938254911055a72e0f935b5fbc4c1a4ed0b0584aed1 \ - --hash=sha256:93c15c8e48e5e7b89d5cb4613479d144fda8344e2d886cf694fd36db4cc86865 \ - --hash=sha256:96603a562b546632441926cd1293cfcb5b69f0b4159e6077f7c7dbdfb686af4d \ - --hash=sha256:99c5ac4ad492b4a19fc132306cd57075c28446ec2ed970973bbf036bcda1bcc6 \ - --hash=sha256:9c19b26acdd08dd239e0d3669a3dddafd600902e37881f13fbd8a53943079dbc \ - --hash=sha256:9de50a199b7710fa2904be5a4a9b51af587ab24c8e540a7243ab737b45844543 \ - --hash=sha256:9e2ee0ac5a1f5c7dd3197de309adfb99ac4617ff02b0603fd1e65b07dc772e4b \ - --hash=sha256:a2ece4af1f3c967a4390c284797ab595a9f1bc1130ef8b01828915a05a6ae684 \ - --hash=sha256:ad1407db8f2f49329729564f71685557157bfa42b48f4b93e53721a16eb813ed \ - --hash=sha256:b04691bc6601ef47c88f0255043df6f570ada1a9ebef99c34bd0b72866c217ae \ - --hash=sha256:b0cf2a4501bff9330a8a5248b4ce951851e415bdcce9dc158e76cfd55e15085c \ - --hash=sha256:b30e963f9e0d52c28f284d554a9469af073030030cef8693106d918b2ca92f54 \ - --hash=sha256:bd111d7fc5591ddf377a408ed9067045259ff2770f37e2d94e6478d0f3fc0c17 \ - --hash=sha256:bdf70bfe5a1414ba9afb9d49f0c912dc524cf60141102f3a11143ba3d291870f \ - --hash=sha256:caf486ac1e689dda3502567eb89ffe02876546599bbf915ec94b1fa424eeffd4 \ - --hash=sha256:ccc360e87341ad47c777f5723f68adbb52b37ab450c8bc3ca9ca1f3e849e5fe2 \ - --hash=sha256:d52d5dc7c6682b720280f9d9db41d36ebe4791622c842e258c9206232251ab2b \ - --hash=sha256:d67f8baed00870aa390ea2590798766256f31dc5ed3ecc737debb6e97e2ede78 \ - --hash=sha256:d76e8b13161a202d14c9584590c4df4d068c9567c99506497bdd67eaedf36403 \ - --hash=sha256:e1d8cb0b56b3587c5c01de3bf2f600f186da7e7b5f7353d1bf26a8ddca57f965 \ - --hash=sha256:e3f1e3f1a1751bb62b4a1b7f4e435afcdade6c17a4fd9b9d43607cebd242924a \ - --hash=sha256:e6a00ffcc173e765e200ceefb06399ba09c06db97f401f920513a10c803604ca \ - --hash=sha256:e827d48cf802de06d9c935088c2924e3c7e7533377d66b6f31ed175c1620e05e \ - --hash=sha256:ec00c3305788e04bf6d29d42e504560e159ccaf0be30c09203b468a6c1ccd3b2 \ - --hash=sha256:ec4fd86658c6a8964d75426517dc01cbf840bbf32d055ce64a9e63a40fd7b771 \ - --hash=sha256:efd2fcf7e7b9d7ab16e6b7d54205beded0a9c8566cb30f09c1abe42b4e22bdcb \ - --hash=sha256:f0f03211fd14a6a0aed2997d4b1c013d49fb7b50eeb9ffdf5e51f23cfe2c77fa \ - --hash=sha256:f628dbf3c91e12f4d6c8b3f092069567d8eb17814aebba3d7d60c149391aee3a +aiohttp==3.9.0 \ + --hash=sha256:05857848da443c8c12110d99285d499b4e84d59918a21132e45c3f0804876994 \ + --hash=sha256:05a183f1978802588711aed0dea31e697d760ce9055292db9dc1604daa9a8ded \ + --hash=sha256:09f23292d29135025e19e8ff4f0a68df078fe4ee013bca0105b2e803989de92d \ + --hash=sha256:11ca808f9a6b63485059f5f6e164ef7ec826483c1212a44f268b3653c91237d8 \ + --hash=sha256:1736d87dad8ef46a8ec9cddd349fa9f7bd3a064c47dd6469c0d6763d3d49a4fc \ + --hash=sha256:1df43596b826022b14998f0460926ce261544fedefe0d2f653e1b20f49e96454 \ + --hash=sha256:23170247ef89ffa842a02bbfdc425028574d9e010611659abeb24d890bc53bb8 \ + --hash=sha256:2779f5e7c70f7b421915fd47db332c81de365678180a9f3ab404088f87ba5ff9 \ + --hash=sha256:28185e36a78d247c55e9fbea2332d16aefa14c5276a582ce7a896231c6b1c208 \ + --hash=sha256:2cbc14a13fb6b42d344e4f27746a4b03a2cb0c1c3c5b932b0d6ad8881aa390e3 \ + --hash=sha256:2d71abc15ff7047412ef26bf812dfc8d0d1020d664617f4913df2df469f26b76 \ + --hash=sha256:2d820162c8c2bdbe97d328cd4f417c955ca370027dce593345e437b2e9ffdc4d \ + --hash=sha256:317719d7f824eba55857fe0729363af58e27c066c731bc62cd97bc9c3d9c7ea4 \ + --hash=sha256:35a68cd63ca6aaef5707888f17a70c36efe62b099a4e853d33dc2e9872125be8 \ + --hash=sha256:3607375053df58ed6f23903aa10cf3112b1240e8c799d243bbad0f7be0666986 \ + --hash=sha256:366bc870d7ac61726f32a489fbe3d1d8876e87506870be66b01aeb84389e967e \ + --hash=sha256:3abf0551874fecf95f93b58f25ef4fc9a250669a2257753f38f8f592db85ddea \ + --hash=sha256:3d7f6235c7475658acfc1769d968e07ab585c79f6ca438ddfecaa9a08006aee2 \ + --hash=sha256:3dd8119752dd30dd7bca7d4bc2a92a59be6a003e4e5c2cf7e248b89751b8f4b7 \ + --hash=sha256:42fe4fd9f0dfcc7be4248c162d8056f1d51a04c60e53366b0098d1267c4c9da8 \ + --hash=sha256:45820ddbb276113ead8d4907a7802adb77548087ff5465d5c554f9aa3928ae7d \ + --hash=sha256:4790e44f46a4aa07b64504089def5744d3b6780468c4ec3a1a36eb7f2cae9814 \ + --hash=sha256:4afa8f71dba3a5a2e1e1282a51cba7341ae76585345c43d8f0e624882b622218 \ + --hash=sha256:4b777c9286b6c6a94f50ddb3a6e730deec327e9e2256cb08b5530db0f7d40fd8 \ + --hash=sha256:4ee1b4152bc3190cc40ddd6a14715e3004944263ea208229ab4c297712aa3075 \ + --hash=sha256:51a4cd44788ea0b5e6bb8fa704597af3a30be75503a7ed1098bc5b8ffdf6c982 \ + --hash=sha256:536b01513d67d10baf6f71c72decdf492fb7433c5f2f133e9a9087379d4b6f31 \ + --hash=sha256:571760ad7736b34d05597a1fd38cbc7d47f7b65deb722cb8e86fd827404d1f6b \ + --hash=sha256:5a2eb5311a37fe105aa35f62f75a078537e1a9e4e1d78c86ec9893a3c97d7a30 \ + --hash=sha256:5ab16c254e2312efeb799bc3c06897f65a133b38b69682bf75d1f1ee1a9c43a9 \ + --hash=sha256:65b0a70a25456d329a5e1426702dde67be0fb7a4ead718005ba2ca582d023a94 \ + --hash=sha256:673343fbc0c1ac44d0d2640addc56e97a052504beacd7ade0dc5e76d3a4c16e8 \ + --hash=sha256:6777a390e41e78e7c45dab43a4a0196c55c3b8c30eebe017b152939372a83253 \ + --hash=sha256:6896b8416be9ada4d22cd359d7cb98955576ce863eadad5596b7cdfbf3e17c6c \ + --hash=sha256:694df243f394629bcae2d8ed94c589a181e8ba8604159e6e45e7b22e58291113 \ + --hash=sha256:70e851f596c00f40a2f00a46126c95c2e04e146015af05a9da3e4867cfc55911 \ + --hash=sha256:7276fe0017664414fdc3618fca411630405f1aaf0cc3be69def650eb50441787 \ + --hash=sha256:76a86a9989ebf82ee61e06e2bab408aec4ea367dc6da35145c3352b60a112d11 \ + --hash=sha256:7a94bde005a8f926d0fa38b88092a03dea4b4875a61fbcd9ac6f4351df1b57cd \ + --hash=sha256:7ae5f99a32c53731c93ac3075abd3e1e5cfbe72fc3eaac4c27c9dd64ba3b19fe \ + --hash=sha256:7e8a3b79b6d186a9c99761fd4a5e8dd575a48d96021f220ac5b5fa856e5dd029 \ + --hash=sha256:816f4db40555026e4cdda604a1088577c1fb957d02f3f1292e0221353403f192 \ + --hash=sha256:8303531e2c17b1a494ffaeba48f2da655fe932c4e9a2626c8718403c83e5dd2b \ + --hash=sha256:8488519aa05e636c5997719fe543c8daf19f538f4fa044f3ce94bee608817cff \ + --hash=sha256:87c8b0a6487e8109427ccf638580865b54e2e3db4a6e0e11c02639231b41fc0f \ + --hash=sha256:8c9e5f4d7208cda1a2bb600e29069eecf857e6980d0ccc922ccf9d1372c16f4b \ + --hash=sha256:94697c7293199c2a2551e3e3e18438b4cba293e79c6bc2319f5fd652fccb7456 \ + --hash=sha256:9623cfd9e85b76b83ef88519d98326d4731f8d71869867e47a0b979ffec61c73 \ + --hash=sha256:98d21092bf2637c5fa724a428a69e8f5955f2182bff61f8036827cf6ce1157bf \ + --hash=sha256:99ae01fb13a618b9942376df77a1f50c20a281390dad3c56a6ec2942e266220d \ + --hash=sha256:9c196b30f1b1aa3363a69dd69079ae9bec96c2965c4707eaa6914ba099fb7d4f \ + --hash=sha256:a00ce44c21612d185c5275c5cba4bab8d7c1590f248638b667ed8a782fa8cd6f \ + --hash=sha256:a1b66dbb8a7d5f50e9e2ea3804b01e766308331d0cac76eb30c563ac89c95985 \ + --hash=sha256:a1d7edf74a36de0e5ca50787e83a77cf352f5504eb0ffa3f07000a911ba353fb \ + --hash=sha256:a1e3b3c107ccb0e537f309f719994a55621acd2c8fdf6d5ce5152aed788fb940 \ + --hash=sha256:a486ddf57ab98b6d19ad36458b9f09e6022de0381674fe00228ca7b741aacb2f \ + --hash=sha256:ac9669990e2016d644ba8ae4758688534aabde8dbbc81f9af129c3f5f01ca9cd \ + --hash=sha256:b1a2ea8252cacc7fd51df5a56d7a2bb1986ed39be9397b51a08015727dfb69bd \ + --hash=sha256:c5b7bf8fe4d39886adc34311a233a2e01bc10eb4e842220235ed1de57541a896 \ + --hash=sha256:c67a51ea415192c2e53e4e048c78bab82d21955b4281d297f517707dc836bf3d \ + --hash=sha256:ca4fddf84ac7d8a7d0866664936f93318ff01ee33e32381a115b19fb5a4d1202 \ + --hash=sha256:d5b9345ab92ebe6003ae11d8092ce822a0242146e6fa270889b9ba965457ca40 \ + --hash=sha256:d97c3e286d0ac9af6223bc132dc4bad6540b37c8d6c0a15fe1e70fb34f9ec411 \ + --hash=sha256:db04d1de548f7a62d1dd7e7cdf7c22893ee168e22701895067a28a8ed51b3735 \ + --hash=sha256:dcf71c55ec853826cd70eadb2b6ac62ec577416442ca1e0a97ad875a1b3a0305 \ + --hash=sha256:de3cc86f4ea8b4c34a6e43a7306c40c1275e52bfa9748d869c6b7d54aa6dad80 \ + --hash=sha256:deac0a32aec29608eb25d730f4bc5a261a65b6c48ded1ed861d2a1852577c932 \ + --hash=sha256:e18d92c3e9e22553a73e33784fcb0ed484c9874e9a3e96c16a8d6a1e74a0217b \ + --hash=sha256:eb6dfd52063186ac97b4caa25764cdbcdb4b10d97f5c5f66b0fa95052e744eb7 \ + --hash=sha256:f09960b5bb1017d16c0f9e9f7fc42160a5a49fa1e87a175fd4a2b1a1833ea0af \ + --hash=sha256:f1e4f254e9c35d8965d377e065c4a8a55d396fe87c8e7e8429bcfdeeb229bfb3 \ + --hash=sha256:f32c86dc967ab8c719fd229ce71917caad13cc1e8356ee997bf02c5b368799bf \ + --hash=sha256:f50b4663c3e0262c3a361faf440761fbef60ccdde5fe8545689a4b3a3c149fb4 \ + --hash=sha256:f8e05f5163528962ce1d1806fce763ab893b1c5b7ace0a3538cd81a90622f844 \ + --hash=sha256:f929f4c9b9a00f3e6cc0587abb95ab9c05681f8b14e0fe1daecfa83ea90f8318 \ + --hash=sha256:f9e09a1c83521d770d170b3801eea19b89f41ccaa61d53026ed111cb6f088887 aiosignal==1.3.1 \ --hash=sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc \ --hash=sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17