mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-07 04:03:44 +08:00
Merge branch 'master' of https://github.com/qwerdvd/StarRailUID
This commit is contained in:
commit
33d7decf10
@ -13,22 +13,14 @@ STAR_RAIL_SIGN_EXTRA_INFO_URL = f"{OLD_URL}/event/luna/extra_info"
|
||||
STAR_RAIL_SIGN_EXTRA_REWARD_URL = f"{OLD_URL}/event/luna/extra_reward"
|
||||
STAR_RAIL_SIGN_URL = f"{OLD_URL}/event/luna/sign"
|
||||
STAR_RAIL_SIGN_URL_OS = f"{OS_URL}/event/luna/os/sign"
|
||||
STAR_RAIL_MONTH_INFO_URL = (
|
||||
f"{OLD_URL}/event/srledger/month_info"
|
||||
) # 开拓阅历接口
|
||||
STAR_RAIL_MONTH_INFO_URL = f"{OLD_URL}/event/srledger/month_info" # 开拓阅历接口
|
||||
STAR_RAIL_MONTH_DETAIL_URL = (
|
||||
f"{OLD_URL}/event/srledger/month_detail" # 开拓阅历详情接口
|
||||
)
|
||||
|
||||
STAR_RAIL_NOTE_URL = (
|
||||
f"{NEW_URL}/game_record/app/hkrpg/api/note"
|
||||
) # 实时便签接口
|
||||
STAR_RAIL_NOTE_URL_OS = (
|
||||
f"{OS_INFO_URL}/game_record/hkrpg/api/note"
|
||||
) # OS实时便签接口
|
||||
STAR_RAIL_INDEX_URL = (
|
||||
f"{NEW_URL}/game_record/app/hkrpg/api/index"
|
||||
) # 角色橱窗接口
|
||||
STAR_RAIL_NOTE_URL = f"{NEW_URL}/game_record/app/hkrpg/api/note" # 实时便签接口
|
||||
STAR_RAIL_NOTE_URL_OS = f"{OS_INFO_URL}/game_record/hkrpg/api/note" # OS实时便签接口
|
||||
STAR_RAIL_INDEX_URL = f"{NEW_URL}/game_record/app/hkrpg/api/index" # 角色橱窗接口
|
||||
STAR_RAIL_INDEX_URL_OS = (
|
||||
f"{OS_INFO_URL}/game_record/hkrpg/api/index" # OS角色橱窗接口
|
||||
)
|
||||
@ -49,9 +41,7 @@ STAR_RAIL_AVATAR_INFO_URL_OS = (
|
||||
CHALLENGE_INFO_URL = f"{NEW_URL}/game_record/app/hkrpg/api/challenge"
|
||||
CHALLENGE_INFO_URL_OS = f"{OS_INFO_URL}/game_record/hkrpg/api/challenge"
|
||||
|
||||
ROGUE_INFO_URL = (
|
||||
f"{NEW_URL}/game_record/app/hkrpg/api/rogue"
|
||||
) # 角色模拟宇宙信息接口
|
||||
ROGUE_INFO_URL = f"{NEW_URL}/game_record/app/hkrpg/api/rogue" # 角色模拟宇宙信息接口
|
||||
ROGUE_LOCUST_INFO_URL = (
|
||||
f"{NEW_URL}/game_record/app/hkrpg/api/rogue_locust" # 角色寰宇蝗灾信息接口
|
||||
)
|
||||
|
@ -95,7 +95,7 @@ async def send_char_info(bot: Bot, ev: Event):
|
||||
elif isinstance(im, Image.Image):
|
||||
await bot.send(await convert_img(im))
|
||||
elif isinstance(im, bytes):
|
||||
await bot.send(await convert_img(im))
|
||||
await bot.send(im)
|
||||
elif im is None:
|
||||
return
|
||||
else:
|
||||
|
@ -59,9 +59,7 @@ class JingYuan(BaseAvatar):
|
||||
|
||||
def extra_ability(self):
|
||||
logger.info('额外能力')
|
||||
logger.info(
|
||||
'【神君】下回合的攻击段数大于等于6段, 则其下回合的暴击伤害提高25%。'
|
||||
)
|
||||
logger.info('【神君】下回合的攻击段数大于等于6段, 则其下回合的暴击伤害提高25%。')
|
||||
self.extra_ability_attribute['CriticalDamageBase'] = 0.25
|
||||
logger.info('施放战技后, 暴击率提升10%')
|
||||
self.extra_ability_attribute['CriticalChanceBase'] = 0.1
|
||||
@ -123,9 +121,7 @@ class Danhengil(BaseAvatar):
|
||||
|
||||
def extra_ability(self):
|
||||
logger.info('额外能力')
|
||||
logger.info(
|
||||
'对拥有虚数属性弱点的敌方目标造成伤害时, 暴击伤害提高24%。'
|
||||
)
|
||||
logger.info('对拥有虚数属性弱点的敌方目标造成伤害时, 暴击伤害提高24%。')
|
||||
self.extra_ability_attribute['CriticalDamageBase'] = 0.24
|
||||
|
||||
|
||||
@ -340,9 +336,7 @@ class Welt(BaseAvatar):
|
||||
|
||||
def extra_ability(self):
|
||||
logger.info('额外能力')
|
||||
logger.info(
|
||||
'施放终结技时, 有100%基础概率使目标受到的伤害提高12%, 持续2回合。'
|
||||
)
|
||||
logger.info('施放终结技时, 有100%基础概率使目标受到的伤害提高12%, 持续2回合。')
|
||||
logger.info('对被弱点击破的敌方目标造成的伤害提高20')
|
||||
self.extra_ability_attribute['AllDamageAddedRatio'] = 0.32
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
import json
|
||||
from abc import abstractmethod
|
||||
from pathlib import Path
|
||||
from abc import abstractmethod
|
||||
from typing import List, Union
|
||||
|
||||
import msgspec
|
||||
from msgspec import Struct
|
||||
|
||||
from ....utils.excel.model import AvatarPromotionConfig
|
||||
from .model import DamageInstanceAvatar, DamageInstanceSkill
|
||||
from .SkillBase import BaseSkills
|
||||
from ....utils.excel.model import AvatarPromotionConfig
|
||||
from .model import DamageInstanceSkill, DamageInstanceAvatar
|
||||
|
||||
path = Path(__file__).parent.parent
|
||||
with Path.open(path / 'Excel' / 'SkillData.json', encoding='utf-8') as f:
|
||||
|
@ -261,9 +261,7 @@ class RoleInstance:
|
||||
# 检查是否有某一属性的抗性穿透
|
||||
attr_name = attr.split('ResistancePenetration')[0]
|
||||
if attr_name in (self.avatar.avatar_element, 'AllDamage'):
|
||||
logger.info(
|
||||
f'{attr_name}属性有{merged_attr[attr]}穿透加成'
|
||||
)
|
||||
logger.info(f'{attr_name}属性有{merged_attr[attr]}穿透加成')
|
||||
enemy_status_resistance += merged_attr[attr]
|
||||
# 检查是否有某一技能属性的抗性穿透
|
||||
if attr_name.__contains__('_'):
|
||||
|
@ -269,19 +269,16 @@ class BeforeDawn(BaseWeapon):
|
||||
attribute_bonus: Dict[str, float],
|
||||
):
|
||||
bp_skill_dmg_add = attribute_bonus.get('BPSkillDmgAdd', 0)
|
||||
attribute_bonus['BPSkillDmgAdd'] = (
|
||||
bp_skill_dmg_add
|
||||
+ (weapon_effect['23010']['Param']['e_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['BPSkillDmgAdd'] = bp_skill_dmg_add + (
|
||||
weapon_effect['23010']['Param']['e_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
ultra_dmg_add = attribute_bonus.get('UltraDmgAdd', 0)
|
||||
attribute_bonus['UltraDmgAdd'] = (
|
||||
ultra_dmg_add
|
||||
+ (weapon_effect['23010']['Param']['r_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['UltraDmgAdd'] = ultra_dmg_add + (
|
||||
weapon_effect['23010']['Param']['r_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
talent_dmg_add = attribute_bonus.get('TalentDmgAdd', 0)
|
||||
attribute_bonus['TalentDmgAdd'] = (
|
||||
talent_dmg_add
|
||||
+ (weapon_effect['23010']['Param']['t_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['TalentDmgAdd'] = talent_dmg_add + (
|
||||
weapon_effect['23010']['Param']['t_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
return attribute_bonus
|
||||
|
||||
@ -495,13 +492,10 @@ class GeniusesRepose(BaseWeapon):
|
||||
):
|
||||
if await self.check():
|
||||
critical_chance_base = attribute_bonus.get('CriticalDamageBase', 0)
|
||||
attribute_bonus['CriticalDamageBase'] = (
|
||||
critical_chance_base
|
||||
+ (
|
||||
weapon_effect['21020']['Param']['CriticalDamageBase'][
|
||||
self.weapon_rank - 1
|
||||
]
|
||||
)
|
||||
attribute_bonus['CriticalDamageBase'] = critical_chance_base + (
|
||||
weapon_effect['21020']['Param']['CriticalDamageBase'][
|
||||
self.weapon_rank - 1
|
||||
]
|
||||
)
|
||||
return attribute_bonus
|
||||
|
||||
@ -524,9 +518,8 @@ class MaketheWorldClamor(BaseWeapon):
|
||||
attribute_bonus: Dict[str, float],
|
||||
):
|
||||
ultra_dmg_add = attribute_bonus.get('UltraDmgAdd', 0)
|
||||
attribute_bonus['UltraDmgAdd'] = (
|
||||
ultra_dmg_add
|
||||
+ (weapon_effect['21013']['Param']['r_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['UltraDmgAdd'] = ultra_dmg_add + (
|
||||
weapon_effect['21013']['Param']['r_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
return attribute_bonus
|
||||
|
||||
@ -551,13 +544,8 @@ class TheBirthoftheSelf(BaseWeapon):
|
||||
):
|
||||
if await self.check():
|
||||
talent_dmg_add = attribute_bonus.get('TalentDmgAdd', 0)
|
||||
attribute_bonus['TalentDmgAdd'] = (
|
||||
talent_dmg_add
|
||||
+ (
|
||||
weapon_effect['21006']['Param']['t_dmg'][
|
||||
self.weapon_rank - 1
|
||||
]
|
||||
)
|
||||
attribute_bonus['TalentDmgAdd'] = talent_dmg_add + (
|
||||
weapon_effect['21006']['Param']['t_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
return attribute_bonus
|
||||
return attribute_bonus
|
||||
@ -1485,14 +1473,12 @@ class CollapsingSky(BaseWeapon):
|
||||
attribute_bonus: Dict[str, float],
|
||||
):
|
||||
normal_dmg_add = attribute_bonus.get('NormalDmgAdd', 0)
|
||||
attribute_bonus['NormalDmgAdd'] = (
|
||||
normal_dmg_add
|
||||
+ (weapon_effect['20002']['Param']['a_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['NormalDmgAdd'] = normal_dmg_add + (
|
||||
weapon_effect['20002']['Param']['a_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
bp_skill_dmg_add = attribute_bonus.get('BPSkillDmgAdd', 0)
|
||||
attribute_bonus['BPSkillDmgAdd'] = (
|
||||
bp_skill_dmg_add
|
||||
+ (weapon_effect['20002']['Param']['e_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['BPSkillDmgAdd'] = bp_skill_dmg_add + (
|
||||
weapon_effect['20002']['Param']['e_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
return attribute_bonus
|
||||
|
||||
@ -1645,9 +1631,8 @@ class DataBank(BaseWeapon):
|
||||
attribute_bonus: Dict[str, float],
|
||||
):
|
||||
ultra_dmg_add = attribute_bonus.get('UltraDmgAdd', 0)
|
||||
attribute_bonus['UltraDmgAdd'] = (
|
||||
ultra_dmg_add
|
||||
+ (weapon_effect['20006']['Param']['r_dmg'][self.weapon_rank - 1])
|
||||
attribute_bonus['UltraDmgAdd'] = ultra_dmg_add + (
|
||||
weapon_effect['20006']['Param']['r_dmg'][self.weapon_rank - 1]
|
||||
)
|
||||
return attribute_bonus
|
||||
|
||||
@ -1685,13 +1670,12 @@ class Thisbodyisasword(BaseWeapon):
|
||||
resistance_penetration = attribute_bonus.get(
|
||||
'AllResistancePenetration', 0
|
||||
)
|
||||
attribute_bonus['AllResistancePenetration'] = (
|
||||
resistance_penetration
|
||||
+ (
|
||||
weapon_effect['23014']['Param']['ResistancePenetration'][
|
||||
self.weapon_rank - 1
|
||||
]
|
||||
)
|
||||
attribute_bonus[
|
||||
'AllResistancePenetration'
|
||||
] = resistance_penetration + (
|
||||
weapon_effect['23014']['Param']['ResistancePenetration'][
|
||||
self.weapon_rank - 1
|
||||
]
|
||||
)
|
||||
|
||||
return attribute_bonus
|
||||
|
@ -130,9 +130,7 @@ async def get_char_args(
|
||||
if isinstance(char_data, str):
|
||||
return char_data
|
||||
else:
|
||||
for i, s in enumerate(
|
||||
['头部', '手部', '躯干', '腿部', '位面球', '连结绳']
|
||||
):
|
||||
for i, s in enumerate(['头部', '手部', '躯干', '腿部', '位面球', '连结绳']):
|
||||
if '赤沙' in part:
|
||||
continue
|
||||
if part[-1] in PieceName_ilst[i]:
|
||||
|
@ -1,7 +1,6 @@
|
||||
from typing import Dict, List
|
||||
from collections import Counter
|
||||
|
||||
|
||||
from ...utils.map.SR_MAP_PATH import RelicSetSkill, EquipmentID2AbilityProperty
|
||||
|
||||
|
||||
@ -97,18 +96,18 @@ class Character:
|
||||
set_property = status_add.Property
|
||||
set_value = status_add.Value
|
||||
if set_property != '':
|
||||
self.add_attr[set_property] = (
|
||||
set_value + self.add_attr.get(set_property, 0)
|
||||
)
|
||||
self.add_attr[
|
||||
set_property
|
||||
] = set_value + self.add_attr.get(set_property, 0)
|
||||
if count == 4:
|
||||
status_add = RelicSetSkill.RelicSet[str(set_id)]['4']
|
||||
if status_add:
|
||||
set_property = status_add.Property
|
||||
set_value = status_add.Value
|
||||
if set_property != '':
|
||||
self.add_attr[set_property] = (
|
||||
set_value + self.add_attr.get(set_property, 0)
|
||||
)
|
||||
self.add_attr[
|
||||
set_property
|
||||
] = set_value + self.add_attr.get(set_property, 0)
|
||||
|
||||
# logger.info(json.dumps(self.base_attributes))
|
||||
# logger.info(json.dumps(self.add_attr))
|
||||
|
@ -54,9 +54,7 @@ async def draw_enka_card(uid: str, char_list: List, showfrom: int = 0):
|
||||
return await convert_img(Image.new('RGBA', (0, 1), (255, 255, 255)))
|
||||
else:
|
||||
line1 = f'UID {uid} 刷新成功'
|
||||
line2 = (
|
||||
f'可以使用 sr查询{char_data_list[0]["avatarName"]} 查询详情角色面板'
|
||||
)
|
||||
line2 = f'可以使用 sr查询{char_data_list[0]["avatarName"]} 查询详情角色面板'
|
||||
char_num = len(char_data_list)
|
||||
if char_num <= 4:
|
||||
based_w, based_h = 1380, 926
|
||||
|
@ -8,9 +8,7 @@ from gsuid_core.utils.plugins_config.models import (
|
||||
)
|
||||
|
||||
CONIFG_DEFAULT: Dict[str, GSC] = {
|
||||
'SignTime': GsListStrConfig(
|
||||
'每晚签到时间设置', '每晚米游社签到时间设置(时,分)', ['0', '38']
|
||||
),
|
||||
'SignTime': GsListStrConfig('每晚签到时间设置', '每晚米游社签到时间设置(时,分)', ['0', '38']),
|
||||
'SignReportSimple': GsBoolConfig(
|
||||
'简洁签到报告',
|
||||
'开启后可以大大减少每日签到报告字数',
|
||||
|
@ -39,8 +39,6 @@ async def get_gachalog_by_link(bot: Bot, ev: Event):
|
||||
if ev.command.startswith('强制'):
|
||||
await bot.logger.info('[WARNING]本次为强制刷新')
|
||||
is_force = True
|
||||
await bot.send(
|
||||
f'UID{uid}开始执行[刷新抽卡记录],需要一定时间...请勿重复触发!'
|
||||
)
|
||||
await bot.send(f'UID{uid}开始执行[刷新抽卡记录],需要一定时间...请勿重复触发!')
|
||||
im = await save_gachalogs(uid, gacha_url, None, is_force)
|
||||
return await bot.send(im)
|
||||
|
@ -17,7 +17,5 @@ async def send_download_resource_msg(bot: Bot, ev: Event):
|
||||
|
||||
|
||||
async def startup():
|
||||
logger.info(
|
||||
'[sr资源文件下载] 正在检查与下载缺失的资源文件,可能需要较长时间,请稍等'
|
||||
)
|
||||
logger.info('[sr资源文件下载] 正在检查与下载缺失的资源文件,可能需要较长时间,请稍等')
|
||||
logger.info(f'[sr资源文件下载] {await download_all_resource()}')
|
||||
|
@ -65,9 +65,7 @@ async def send_daily_sign():
|
||||
single['msg'], 'direct', qid, single['bot_id'], '', ''
|
||||
)
|
||||
except Exception as e:
|
||||
logger.warning(
|
||||
f'[SR每日全部签到] QQ {qid} 私聊推送失败!错误信息:{e}'
|
||||
)
|
||||
logger.warning(f'[SR每日全部签到] QQ {qid} 私聊推送失败!错误信息:{e}')
|
||||
await asyncio.sleep(0.5)
|
||||
logger.info('[SR每日全部签到]私聊推送完成')
|
||||
|
||||
@ -76,9 +74,7 @@ async def send_daily_sign():
|
||||
# 根据succee数判断是否为简洁推送
|
||||
if group_msg_list[gid]['success'] >= 0:
|
||||
report = (
|
||||
'以下为签到失败报告:{}'.format(
|
||||
group_msg_list[gid]['push_message']
|
||||
)
|
||||
'以下为签到失败报告:{}'.format(group_msg_list[gid]['push_message'])
|
||||
if group_msg_list[gid]['push_message'] != ''
|
||||
else ''
|
||||
)
|
||||
|
@ -57,15 +57,11 @@ async def sign_in(sr_uid: str) -> str:
|
||||
Header['x-rpc-challenge'] = ch
|
||||
Header['x-rpc-validate'] = vl
|
||||
Header['x-rpc-seccode'] = f'{vl}|jordan'
|
||||
logger.info(
|
||||
f'[SR签到] {sr_uid} 已获取验证码, 等待时间{delay}秒'
|
||||
)
|
||||
logger.info(f'[SR签到] {sr_uid} 已获取验证码, 等待时间{delay}秒')
|
||||
await asyncio.sleep(delay)
|
||||
else:
|
||||
delay = 605 + random.randint(1, 120)
|
||||
logger.info(
|
||||
f'[SR签到] {sr_uid} 未获取验证码,等待{delay}秒后重试...'
|
||||
)
|
||||
logger.info(f'[SR签到] {sr_uid} 未获取验证码,等待{delay}秒后重试...')
|
||||
await asyncio.sleep(delay)
|
||||
continue
|
||||
logger.info('配置文件暂未开启[跳过无感验证],结束本次任务...')
|
||||
@ -74,9 +70,7 @@ async def sign_in(sr_uid: str) -> str:
|
||||
if index == 0:
|
||||
logger.info(f'[SR签到] {sr_uid} 该用户无校验码!')
|
||||
else:
|
||||
logger.info(
|
||||
f'[SR签到] [无感验证] {sr_uid} 该用户重试 {index} 次验证成功!'
|
||||
)
|
||||
logger.info(f'[SR签到] [无感验证] {sr_uid} 该用户重试 {index} 次验证成功!')
|
||||
break
|
||||
if (int(str(sr_uid)[0]) > 5) and (sign_data.code == 'ok'):
|
||||
# 国际服签到无risk_code字段
|
||||
@ -109,9 +103,7 @@ async def sign_in(sr_uid: str) -> str:
|
||||
sign_missed -= 1
|
||||
sign_missed = sign_info.sign_cnt_missed or sign_missed
|
||||
im = f'{mes_im}!\n{get_im}\n本月漏签次数:{sign_missed}'
|
||||
logger.info(
|
||||
f'[SR签到] {sr_uid} 签到完成, 结果: {mes_im}, 漏签次数: {sign_missed}'
|
||||
)
|
||||
logger.info(f'[SR签到] {sr_uid} 签到完成, 结果: {mes_im}, 漏签次数: {sign_missed}')
|
||||
return im
|
||||
|
||||
|
||||
@ -171,9 +163,7 @@ async def daily_sign():
|
||||
delay = 1
|
||||
else:
|
||||
delay = 50 + random.randint(3, 45)
|
||||
logger.info(
|
||||
f'[SR签到] 已签到{len(tasks)}个用户, 等待{delay}秒进行下一次签到'
|
||||
)
|
||||
logger.info(f'[SR签到] 已签到{len(tasks)}个用户, 等待{delay}秒进行下一次签到')
|
||||
tasks.clear()
|
||||
already = 0
|
||||
await asyncio.sleep(delay)
|
||||
|
@ -81,9 +81,7 @@ async def download_all_file_from_cos():
|
||||
or not Path.stat(path).st_size
|
||||
or not is_diff
|
||||
):
|
||||
logger.info(
|
||||
f'[cos]开始下载[{resource_type}]_[{name}]...'
|
||||
)
|
||||
logger.info(f'[cos]开始下载[{resource_type}]_[{name}]...')
|
||||
temp_num += 1
|
||||
if isinstance(url, int):
|
||||
logger.error(
|
||||
@ -121,6 +119,4 @@ async def download_all_file_from_cos():
|
||||
await _download(TASKS)
|
||||
await _download(TASKS)
|
||||
if count := len(failed_list):
|
||||
logger.error(
|
||||
f'[cos]仍有{count}个文件未下载,请使用命令 `下载全部资源` 重新下载'
|
||||
)
|
||||
logger.error(f'[cos]仍有{count}个文件未下载,请使用命令 `下载全部资源` 重新下载')
|
||||
|
57
poetry.lock
generated
57
poetry.lock
generated
@ -1,10 +1,9 @@
|
||||
# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand.
|
||||
# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "asgiref"
|
||||
version = "3.7.2"
|
||||
description = "ASGI specs, helper code, and adapters"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -22,7 +21,6 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"]
|
||||
name = "async-asgi-testclient"
|
||||
version = "1.4.11"
|
||||
description = "Async client for testing ASGI web applications"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
@ -37,7 +35,6 @@ requests = ">=2.21,<3.0"
|
||||
name = "black"
|
||||
version = "23.9.1"
|
||||
description = "The uncompromising code formatter."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -84,7 +81,6 @@ uvloop = ["uvloop (>=0.15.2)"]
|
||||
name = "certifi"
|
||||
version = "2023.7.22"
|
||||
description = "Python package for providing Mozilla's CA Bundle."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
@ -96,7 +92,6 @@ files = [
|
||||
name = "cfgv"
|
||||
version = "3.4.0"
|
||||
description = "Validate configuration and produce human readable error messages."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -108,7 +103,6 @@ files = [
|
||||
name = "charset-normalizer"
|
||||
version = "3.2.0"
|
||||
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7.0"
|
||||
files = [
|
||||
@ -193,7 +187,6 @@ files = [
|
||||
name = "click"
|
||||
version = "8.1.7"
|
||||
description = "Composable command line interface toolkit"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -208,7 +201,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
||||
name = "colorama"
|
||||
version = "0.4.6"
|
||||
description = "Cross-platform colored terminal text."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
||||
files = [
|
||||
@ -220,7 +212,6 @@ files = [
|
||||
name = "distlib"
|
||||
version = "0.3.7"
|
||||
description = "Distribution utilities"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
@ -232,7 +223,6 @@ files = [
|
||||
name = "exceptiongroup"
|
||||
version = "1.1.3"
|
||||
description = "Backport of PEP 654 (exception groups)"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -247,7 +237,6 @@ test = ["pytest (>=6)"]
|
||||
name = "filelock"
|
||||
version = "3.12.4"
|
||||
description = "A platform independent file lock."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -264,7 +253,6 @@ typing = ["typing-extensions (>=4.7.1)"]
|
||||
name = "flake8"
|
||||
version = "6.1.0"
|
||||
description = "the modular source code checker: pep8 pyflakes and co"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8.1"
|
||||
files = [
|
||||
@ -281,7 +269,6 @@ pyflakes = ">=3.1.0,<3.2.0"
|
||||
name = "identify"
|
||||
version = "2.5.29"
|
||||
description = "File identification library for Python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -296,7 +283,6 @@ license = ["ukkonen"]
|
||||
name = "idna"
|
||||
version = "3.4"
|
||||
description = "Internationalized Domain Names in Applications (IDNA)"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
files = [
|
||||
@ -308,7 +294,6 @@ files = [
|
||||
name = "iniconfig"
|
||||
version = "2.0.0"
|
||||
description = "brain-dead simple config-ini parsing"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -320,7 +305,6 @@ files = [
|
||||
name = "isort"
|
||||
version = "5.12.0"
|
||||
description = "A Python utility / library to sort Python imports."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8.0"
|
||||
files = [
|
||||
@ -338,7 +322,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"]
|
||||
name = "libcst"
|
||||
version = "1.0.1"
|
||||
description = "A concrete syntax tree with AST-like properties for Python 3.5, 3.6, 3.7, 3.8, 3.9, and 3.10 programs."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -386,7 +369,6 @@ dev = ["Sphinx (>=5.1.1)", "black (==23.3.0)", "build (>=0.10.0)", "coverage (>=
|
||||
name = "loguru"
|
||||
version = "0.7.2"
|
||||
description = "Python logging made (stupidly) simple"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
files = [
|
||||
@ -405,7 +387,6 @@ dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "exceptio
|
||||
name = "mccabe"
|
||||
version = "0.7.0"
|
||||
description = "McCabe checker, plugin for flake8"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
@ -417,7 +398,6 @@ files = [
|
||||
name = "multidict"
|
||||
version = "6.0.4"
|
||||
description = "multidict implementation"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -501,7 +481,6 @@ files = [
|
||||
name = "mypy-extensions"
|
||||
version = "1.0.0"
|
||||
description = "Type system extensions for programs checked with the mypy type checker."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
files = [
|
||||
@ -513,7 +492,6 @@ files = [
|
||||
name = "nodeenv"
|
||||
version = "1.8.0"
|
||||
description = "Node.js virtual environment builder"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*"
|
||||
files = [
|
||||
@ -528,7 +506,6 @@ setuptools = "*"
|
||||
name = "nonebot2"
|
||||
version = "2.1.0"
|
||||
description = "An asynchronous python bot framework."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8,<4.0"
|
||||
files = [
|
||||
@ -556,7 +533,6 @@ websockets = ["websockets (>=10.0)"]
|
||||
name = "nonebug"
|
||||
version = "0.3.5"
|
||||
description = "nonebot2 test framework"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8,<4.0"
|
||||
files = [
|
||||
@ -575,7 +551,6 @@ typing-extensions = ">=4.0.0,<5.0.0"
|
||||
name = "packaging"
|
||||
version = "23.1"
|
||||
description = "Core utilities for Python packages"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -587,7 +562,6 @@ files = [
|
||||
name = "pathspec"
|
||||
version = "0.11.2"
|
||||
description = "Utility library for gitignore style pattern matching of file paths."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -599,7 +573,6 @@ files = [
|
||||
name = "platformdirs"
|
||||
version = "3.10.0"
|
||||
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -615,7 +588,6 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co
|
||||
name = "pluggy"
|
||||
version = "1.3.0"
|
||||
description = "plugin and hook calling mechanisms for python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -631,7 +603,6 @@ testing = ["pytest", "pytest-benchmark"]
|
||||
name = "pre-commit"
|
||||
version = "2.21.0"
|
||||
description = "A framework for managing and maintaining multi-language pre-commit hooks."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -650,7 +621,6 @@ virtualenv = ">=20.10.0"
|
||||
name = "pycln"
|
||||
version = "2.2.2"
|
||||
description = "A formatter for finding and removing unused import statements."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6.2,<4"
|
||||
files = [
|
||||
@ -669,7 +639,6 @@ typer = ">=0.4.1"
|
||||
name = "pycodestyle"
|
||||
version = "2.11.0"
|
||||
description = "Python style guide checker"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -681,7 +650,6 @@ files = [
|
||||
name = "pydantic"
|
||||
version = "1.10.12"
|
||||
description = "Data validation and settings management using python type hints"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -735,7 +703,6 @@ email = ["email-validator (>=1.0.3)"]
|
||||
name = "pyflakes"
|
||||
version = "3.1.0"
|
||||
description = "passive checker of Python programs"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -747,7 +714,6 @@ files = [
|
||||
name = "pygtrie"
|
||||
version = "2.5.0"
|
||||
description = "A pure Python trie data structure implementation."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
@ -759,7 +725,6 @@ files = [
|
||||
name = "pytest"
|
||||
version = "7.4.2"
|
||||
description = "pytest: simple powerful testing with Python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -782,7 +747,6 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no
|
||||
name = "pytest-asyncio"
|
||||
version = "0.20.3"
|
||||
description = "Pytest support for asyncio"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -801,7 +765,6 @@ testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy
|
||||
name = "python-dotenv"
|
||||
version = "1.0.0"
|
||||
description = "Read key-value pairs from a .env file and set them as environment variables"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -816,7 +779,6 @@ cli = ["click (>=5.0)"]
|
||||
name = "pyyaml"
|
||||
version = "6.0.1"
|
||||
description = "YAML parser and emitter for Python"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
@ -876,7 +838,6 @@ files = [
|
||||
name = "requests"
|
||||
version = "2.31.0"
|
||||
description = "Python HTTP for Humans."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -898,7 +859,6 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
||||
name = "setuptools"
|
||||
version = "68.2.2"
|
||||
description = "Easily download, build, install, upgrade, and uninstall Python packages"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -915,7 +875,6 @@ testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jar
|
||||
name = "tomli"
|
||||
version = "2.0.1"
|
||||
description = "A lil' TOML parser"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -927,7 +886,6 @@ files = [
|
||||
name = "tomlkit"
|
||||
version = "0.12.1"
|
||||
description = "Style preserving TOML library"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -939,7 +897,6 @@ files = [
|
||||
name = "typer"
|
||||
version = "0.9.0"
|
||||
description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
@ -961,7 +918,6 @@ test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6.
|
||||
name = "typing-extensions"
|
||||
version = "4.8.0"
|
||||
description = "Backported and Experimental Type Hints for Python 3.8+"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
@ -973,7 +929,6 @@ files = [
|
||||
name = "typing-inspect"
|
||||
version = "0.9.0"
|
||||
description = "Runtime inspection utilities for typing module."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
files = [
|
||||
@ -987,14 +942,13 @@ typing-extensions = ">=3.7.4"
|
||||
|
||||
[[package]]
|
||||
name = "urllib3"
|
||||
version = "2.0.4"
|
||||
version = "2.0.6"
|
||||
description = "HTTP library with thread-safe connection pooling, file post, and more."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
{file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"},
|
||||
{file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"},
|
||||
{file = "urllib3-2.0.6-py3-none-any.whl", hash = "sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2"},
|
||||
{file = "urllib3-2.0.6.tar.gz", hash = "sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
@ -1007,7 +961,6 @@ zstd = ["zstandard (>=0.18.0)"]
|
||||
name = "virtualenv"
|
||||
version = "20.24.5"
|
||||
description = "Virtual Python Environment builder"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
@ -1028,7 +981,6 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess
|
||||
name = "win32-setctime"
|
||||
version = "1.1.0"
|
||||
description = "A small Python utility to set file creation time on Windows"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.5"
|
||||
files = [
|
||||
@ -1043,7 +995,6 @@ dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"]
|
||||
name = "yarl"
|
||||
version = "1.9.2"
|
||||
description = "Yet another URL library"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
|
Loading…
x
Reference in New Issue
Block a user