🔖 升级至0.7.0, 支持uv run core, 补全依赖, 优化环境识别

This commit is contained in:
KimigaiiWuyi 2025-01-15 01:03:29 +08:00
parent e384949523
commit f255f23ff1
11 changed files with 3184 additions and 1473 deletions

View File

@ -1,4 +1,4 @@
FROM python:3.8.12-slim FROM python:3.10.16-slim-bullseye
WORKDIR /app/gsuid_core WORKDIR /app/gsuid_core

View File

@ -1,4 +1,4 @@
# ⚙️[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID) Core 0.6.1 # ⚙️[GenshinUID](https://github.com/KimigaiiWuyi/GenshinUID) Core 0.7.0
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?&labelColor=ef8336)](https://pycqa.github.io/isort/) [![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?&labelColor=ef8336)](https://pycqa.github.io/isort/)

View File

@ -5,9 +5,9 @@ from .models import GSC, GsStrConfig, GsBoolConfig, GsListStrConfig
CONIFG_DEFAULT: Dict[str, GSC] = { CONIFG_DEFAULT: Dict[str, GSC] = {
'StartVENV': GsStrConfig( 'StartVENV': GsStrConfig(
'设置启动环境工具', '设置启动环境工具',
'可选pdm, poetry, pip, auto', '可选pdm, poetry, pip, auto, uv',
'auto', 'auto',
['pdm', 'poetry', 'pip', 'auto'], ['pdm', 'poetry', 'pip', 'uv', 'auto'],
), ),
'Gproxy': GsStrConfig('设置米游社国际代理', '设置国际服的代理地址', ''), 'Gproxy': GsStrConfig('设置米游社国际代理', '设置国际服的代理地址', ''),
'Nproxy': GsStrConfig('设置米游社常规代理', '设置常规的代理地址', ''), 'Nproxy': GsStrConfig('设置米游社常规代理', '设置常规的代理地址', ''),

View File

@ -7,6 +7,7 @@ from pathlib import Path
from typing import Dict, List, Union, Optional from typing import Dict, List, Union, Optional
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
import psutil
import aiohttp import aiohttp
from git.repo import Repo from git.repo import Repo
from git.exc import GitCommandError, NoSuchPathError, InvalidGitRepositoryError from git.exc import GitCommandError, NoSuchPathError, InvalidGitRepositoryError
@ -22,33 +23,50 @@ start_venv: str = core_plugins_config.get_config('StartVENV').data
is_install_dep = core_plugins_config.get_config('AutoInstallDep').data is_install_dep = core_plugins_config.get_config('AutoInstallDep').data
def get_command_chain() -> List[str]:
cmd_chain = []
process = psutil.Process()
while process:
cmd_chain.extend(process.cmdline())
process = process.parent()
return cmd_chain
def check_start_tool(is_pip: bool = False): def check_start_tool(is_pip: bool = False):
command_chain = get_command_chain()
command_chain = [command.lower() for command in command_chain]
PDM = 'pdm' PDM = 'pdm'
POETRY = 'poetry' POETRY = 'poetry'
UV = 'uv'
OTHER = start_venv.strip() OTHER = start_venv.strip()
if is_pip: if is_pip:
PIP = ' run python -m pip' PIP = ' run python -m pip'
PDM += PIP PDM += PIP
POETRY += ' run pip' POETRY += ' run pip'
UV += PIP
if OTHER == 'python': if OTHER == 'python':
OTHER = 'python -m pip' OTHER = 'python -m pip'
else: else:
OTHER += PIP OTHER += PIP
path = Path(__file__).parent.parent.parent.parent
pdm_python_path = path / '.pdm-python'
if start_venv == 'auto': if start_venv == 'auto':
if pdm_python_path.exists(): if 'pdm' in command_chain:
command = PDM command = PDM
else: elif 'poetry' in command_chain:
command = POETRY command = POETRY
elif 'uv' in command_chain:
command = UV
else:
command = OTHER
elif start_venv == 'pdm': elif start_venv == 'pdm':
command = PDM command = PDM
elif start_venv == 'poetry': elif start_venv == 'poetry':
command = POETRY command = POETRY
elif start_venv == 'uv':
command = UV
else: else:
command = start_venv.strip() command = start_venv.strip()

View File

@ -1 +1 @@
__version__ = "0.6.2" __version__ = "0.7.0"

362
pdm.lock generated
View File

@ -5,7 +5,7 @@
groups = ["default"] groups = ["default"]
strategy = [] strategy = []
lock_version = "4.4.1" lock_version = "4.4.1"
content_hash = "sha256:0320faf55f40d19cc3c843230dd0bdf95c5b07d7557dfabfec89114803e6e81d" content_hash = "sha256:53e7c3338e470702149ad7538734c8e1b9aa689bc487fe97a10adb1ff4975fe3"
[[package]] [[package]]
name = "aioboto3" name = "aioboto3"
@ -63,18 +63,18 @@ files = [
[[package]] [[package]]
name = "aiohappyeyeballs" name = "aiohappyeyeballs"
version = "2.4.3" version = "2.4.4"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Happy Eyeballs for asyncio" summary = "Happy Eyeballs for asyncio"
files = [ files = [
{file = "aiohappyeyeballs-2.4.3-py3-none-any.whl", hash = "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"}, {file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"},
{file = "aiohappyeyeballs-2.4.3.tar.gz", hash = "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586"}, {file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"},
] ]
[[package]] [[package]]
name = "aiohttp" name = "aiohttp"
version = "3.10.10" version = "3.11.11"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "Async http client/server framework (asyncio)" summary = "Async http client/server framework (asyncio)"
dependencies = [ dependencies = [
"aiohappyeyeballs>=2.3.0", "aiohappyeyeballs>=2.3.0",
@ -82,11 +82,12 @@ dependencies = [
"attrs>=17.3.0", "attrs>=17.3.0",
"frozenlist>=1.1.1", "frozenlist>=1.1.1",
"multidict<7.0,>=4.5", "multidict<7.0,>=4.5",
"yarl<2.0,>=1.12.0", "propcache>=0.2.0",
"yarl<2.0,>=1.17.0",
] ]
files = [ files = [
{file = "aiohttp-3.10.10-cp311-cp311-win_amd64.whl", hash = "sha256:362f641f9071e5f3ee6f8e7d37d5ed0d95aae656adf4ef578313ee585b585959"}, {file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"},
{file = "aiohttp-3.10.10.tar.gz", hash = "sha256:0631dd7c9f0822cc61c88586ca76d5b5ada26538097d0f1df510b082bad3411a"}, {file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"},
] ]
[[package]] [[package]]
@ -101,15 +102,15 @@ files = [
[[package]] [[package]]
name = "aiosignal" name = "aiosignal"
version = "1.3.1" version = "1.3.2"
requires_python = ">=3.7" requires_python = ">=3.9"
summary = "aiosignal: a list of registered asynchronous callbacks" summary = "aiosignal: a list of registered asynchronous callbacks"
dependencies = [ dependencies = [
"frozenlist>=1.1.0", "frozenlist>=1.1.0",
] ]
files = [ files = [
{file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
{file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
] ]
[[package]] [[package]]
@ -137,31 +138,30 @@ files = [
[[package]] [[package]]
name = "anyio" name = "anyio"
version = "4.5.0" version = "4.8.0"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "High level compatibility layer for multiple asynchronous event loop implementations" summary = "High level compatibility layer for multiple asynchronous event loop implementations"
dependencies = [ dependencies = [
"idna>=2.8", "idna>=2.8",
"sniffio>=1.1", "sniffio>=1.1",
"typing-extensions>=4.5; python_version < \"3.13\"",
] ]
files = [ files = [
{file = "anyio-4.5.0-py3-none-any.whl", hash = "sha256:fdeb095b7cc5a5563175eedd926ec4ae55413bb4be5770c424af0ba46ccb4a78"}, {file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
{file = "anyio-4.5.0.tar.gz", hash = "sha256:c5a275fe5ca0afd788001f58fca1e69e29ce706d746e317d660e21f70c530ef9"}, {file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
] ]
[[package]] [[package]]
name = "apscheduler" name = "apscheduler"
version = "3.10.4" version = "3.11.0"
requires_python = ">=3.6" requires_python = ">=3.8"
summary = "In-process task scheduler with Cron-like capabilities" summary = "In-process task scheduler with Cron-like capabilities"
dependencies = [ dependencies = [
"pytz", "tzlocal>=3.0",
"six>=1.4.0",
"tzlocal!=3.*,>=2.0",
] ]
files = [ files = [
{file = "APScheduler-3.10.4-py3-none-any.whl", hash = "sha256:fb91e8a768632a4756a585f79ec834e0e27aad5860bac7eaa523d9ccefd87661"}, {file = "APScheduler-3.11.0-py3-none-any.whl", hash = "sha256:fc134ca32e50f5eadcc4938e3a4545ab19131435e851abb40b34d63d5141c6da"},
{file = "APScheduler-3.10.4.tar.gz", hash = "sha256:e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a"}, {file = "apscheduler-3.11.0.tar.gz", hash = "sha256:4c622d250b0955a65d5d0eb91c33e6d43fd879834bf541e0a18661ae60460133"},
] ]
[[package]] [[package]]
@ -176,12 +176,12 @@ files = [
[[package]] [[package]]
name = "attrs" name = "attrs"
version = "24.2.0" version = "24.3.0"
requires_python = ">=3.7" requires_python = ">=3.8"
summary = "Classes Without Boilerplate" summary = "Classes Without Boilerplate"
files = [ files = [
{file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"}, {file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"},
{file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"}, {file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"},
] ]
[[package]] [[package]]
@ -207,6 +207,21 @@ files = [
{file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"}, {file = "beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051"},
] ]
[[package]]
name = "betterproto"
version = "2.0.0b7"
requires_python = "<4.0,>=3.7"
summary = "A better Protobuf / gRPC generator & library"
dependencies = [
"grpclib<0.5.0,>=0.4.1",
"python-dateutil<3.0,>=2.8",
"typing-extensions<5.0.0,>=4.7.1",
]
files = [
{file = "betterproto-2.0.0b7-py3-none-any.whl", hash = "sha256:401ab8055e2f814e77b9c88a74d0e1ae3d1e8a969cced6aeb1b59f71ad63fbd2"},
{file = "betterproto-2.0.0b7.tar.gz", hash = "sha256:1b1458ca5278d519bcd62556a4c236f998a91d503f0f71c67b0b954747052af2"},
]
[[package]] [[package]]
name = "boto3" name = "boto3"
version = "1.34.69" version = "1.34.69"
@ -239,38 +254,38 @@ files = [
[[package]] [[package]]
name = "casbin" name = "casbin"
version = "1.36.3" version = "1.38.0"
requires_python = ">=3.3" requires_python = ">=3.3"
summary = "An authorization library that supports access control models like ACL, RBAC, ABAC in Python" summary = "An authorization library that supports access control models like ACL, RBAC, ABAC in Python"
dependencies = [ dependencies = [
"simpleeval>=0.9.11", "simpleeval>=0.9.11",
] ]
files = [ files = [
{file = "casbin-1.36.3-py3-none-any.whl", hash = "sha256:b54db39f0d552e4cf09b6e55f50456f5c338895c15a3670c8b63b1d8572fe925"}, {file = "casbin-1.38.0-py3-none-any.whl", hash = "sha256:229245632a98ec17c53cbaf8432826c3180876b5577fe85b2fa3d708c5d293da"},
{file = "casbin-1.36.3.tar.gz", hash = "sha256:1af1946c139466e91b15261e1e998f53fdeeb1df409369d4dc236668a96ad157"}, {file = "casbin-1.38.0.tar.gz", hash = "sha256:64a758b367d829aa69d30ef28f58e6b26511ff238a939ad3f7d053535f7d4627"},
] ]
[[package]] [[package]]
name = "certifi" name = "certifi"
version = "2024.8.30" version = "2024.12.14"
requires_python = ">=3.6" requires_python = ">=3.6"
summary = "Python package for providing Mozilla's CA Bundle." summary = "Python package for providing Mozilla's CA Bundle."
files = [ files = [
{file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
{file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
] ]
[[package]] [[package]]
name = "click" name = "click"
version = "8.1.7" version = "8.1.8"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Composable command line interface toolkit" summary = "Composable command line interface toolkit"
dependencies = [ dependencies = [
"colorama; platform_system == \"Windows\"", "colorama; platform_system == \"Windows\"",
] ]
files = [ files = [
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
] ]
[[package]] [[package]]
@ -285,12 +300,12 @@ files = [
[[package]] [[package]]
name = "dnspython" name = "dnspython"
version = "2.6.1" version = "2.7.0"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "DNS toolkit" summary = "DNS toolkit"
files = [ files = [
{file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, {file = "dnspython-2.7.0-py3-none-any.whl", hash = "sha256:b4c34b7d10b51bcc3a5071e7b8dee77939f1e878477eeecc965e9835f63c6c86"},
{file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, {file = "dnspython-2.7.0.tar.gz", hash = "sha256:ce9c432eda0dc91cf618a5cedf1a4e142651196bbcd2c80e89ed5a907e5cfaf1"},
] ]
[[package]] [[package]]
@ -358,39 +373,39 @@ files = [
[[package]] [[package]]
name = "frozenlist" name = "frozenlist"
version = "1.4.1" version = "1.5.0"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A list-like structure which implements collections.abc.MutableSequence" summary = "A list-like structure which implements collections.abc.MutableSequence"
files = [ files = [
{file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"},
{file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"},
{file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"},
] ]
[[package]] [[package]]
name = "gitdb" name = "gitdb"
version = "4.0.11" version = "4.0.12"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Git Object Database" summary = "Git Object Database"
dependencies = [ dependencies = [
"smmap<6,>=3.0.1", "smmap<6,>=3.0.1",
] ]
files = [ files = [
{file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"}, {file = "gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf"},
{file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"}, {file = "gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571"},
] ]
[[package]] [[package]]
name = "gitpython" name = "gitpython"
version = "3.1.43" version = "3.1.44"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "GitPython is a Python library used to interact with Git repositories" summary = "GitPython is a Python library used to interact with Git repositories"
dependencies = [ dependencies = [
"gitdb<5,>=4.0.1", "gitdb<5,>=4.0.1",
] ]
files = [ files = [
{file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"}, {file = "GitPython-3.1.44-py3-none-any.whl", hash = "sha256:9e0e10cda9bed1ee64bc9a6de50e7e38a9c9943241cd7f585f6df3ed28011110"},
{file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"}, {file = "gitpython-3.1.44.tar.gz", hash = "sha256:c87e30b26253bf5418b01b0660f818967f3c503193838337fe5e573331249269"},
] ]
[[package]] [[package]]
@ -403,6 +418,19 @@ files = [
{file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"},
] ]
[[package]]
name = "grpclib"
version = "0.4.7"
requires_python = ">=3.7"
summary = "Pure-Python gRPC implementation for asyncio"
dependencies = [
"h2<5,>=3.1.0",
"multidict",
]
files = [
{file = "grpclib-0.4.7.tar.gz", hash = "sha256:2988ef57c02b22b7a2e8e961792c41ccf97efc2ace91ae7a5b0de03c363823c3"},
]
[[package]] [[package]]
name = "h11" name = "h11"
version = "0.14.0" version = "0.14.0"
@ -413,9 +441,33 @@ files = [
{file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"},
] ]
[[package]]
name = "h2"
version = "4.1.0"
requires_python = ">=3.6.1"
summary = "HTTP/2 State-Machine based protocol implementation"
dependencies = [
"hpack<5,>=4.0",
"hyperframe<7,>=6.0",
]
files = [
{file = "h2-4.1.0-py3-none-any.whl", hash = "sha256:03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d"},
{file = "h2-4.1.0.tar.gz", hash = "sha256:a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"},
]
[[package]]
name = "hpack"
version = "4.0.0"
requires_python = ">=3.6.1"
summary = "Pure-Python HPACK header compression"
files = [
{file = "hpack-4.0.0-py3-none-any.whl", hash = "sha256:84a076fad3dc9a9f8063ccb8041ef100867b1878b25ef0ee63847a5d53818a6c"},
{file = "hpack-4.0.0.tar.gz", hash = "sha256:fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"},
]
[[package]] [[package]]
name = "httpcore" name = "httpcore"
version = "1.0.6" version = "1.0.7"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A minimal low-level HTTP client." summary = "A minimal low-level HTTP client."
dependencies = [ dependencies = [
@ -423,13 +475,13 @@ dependencies = [
"h11<0.15,>=0.13", "h11<0.15,>=0.13",
] ]
files = [ files = [
{file = "httpcore-1.0.6-py3-none-any.whl", hash = "sha256:27b59625743b85577a8c0e10e55b50b5368a4f2cfe8cc7bcfa9cf00829c2682f"}, {file = "httpcore-1.0.7-py3-none-any.whl", hash = "sha256:a3fff8f43dc260d5bd363d9f9cf1830fa3a458b332856f34282de498ed420edd"},
{file = "httpcore-1.0.6.tar.gz", hash = "sha256:73f6dbd6eb8c21bbf7ef8efad555481853f5f6acdeaff1edb0694289269ee17f"}, {file = "httpcore-1.0.7.tar.gz", hash = "sha256:8551cb62a169ec7162ac7be8d4817d561f60e08eaa485234898414bb5a8a0b4c"},
] ]
[[package]] [[package]]
name = "httpx" name = "httpx"
version = "0.27.2" version = "0.28.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "The next generation HTTP client." summary = "The next generation HTTP client."
dependencies = [ dependencies = [
@ -437,11 +489,20 @@ dependencies = [
"certifi", "certifi",
"httpcore==1.*", "httpcore==1.*",
"idna", "idna",
"sniffio",
] ]
files = [ files = [
{file = "httpx-0.27.2-py3-none-any.whl", hash = "sha256:7bb2708e112d8fdd7829cd4243970f0c223274051cb35ee80c03301ee29a3df0"}, {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
{file = "httpx-0.27.2.tar.gz", hash = "sha256:f7c2be1d2f3c3c3160d441802406b206c2b76f5947b11115e6df10c6c65e66c2"}, {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
]
[[package]]
name = "hyperframe"
version = "6.0.1"
requires_python = ">=3.6.1"
summary = "HTTP/2 framing layer for Python"
files = [
{file = "hyperframe-6.0.1-py3-none-any.whl", hash = "sha256:0ec6bafd80d8ad2195c4f03aacba3a8265e57bc4cff261e802bf39970ed02a15"},
{file = "hyperframe-6.0.1.tar.gz", hash = "sha256:ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"},
] ]
[[package]] [[package]]
@ -456,15 +517,15 @@ files = [
[[package]] [[package]]
name = "jinja2" name = "jinja2"
version = "3.1.4" version = "3.1.5"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "A very fast and expressive template engine." summary = "A very fast and expressive template engine."
dependencies = [ dependencies = [
"MarkupSafe>=2.0", "MarkupSafe>=2.0",
] ]
files = [ files = [
{file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
{file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
] ]
[[package]] [[package]]
@ -479,16 +540,16 @@ files = [
[[package]] [[package]]
name = "loguru" name = "loguru"
version = "0.7.2" version = "0.7.3"
requires_python = ">=3.5" requires_python = "<4.0,>=3.5"
summary = "Python logging made (stupidly) simple" summary = "Python logging made (stupidly) simple"
dependencies = [ dependencies = [
"colorama>=0.3.4; sys_platform == \"win32\"", "colorama>=0.3.4; sys_platform == \"win32\"",
"win32-setctime>=1.0.0; sys_platform == \"win32\"", "win32-setctime>=1.0.0; sys_platform == \"win32\"",
] ]
files = [ files = [
{file = "loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb"}, {file = "loguru-0.7.3-py3-none-any.whl", hash = "sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c"},
{file = "loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac"}, {file = "loguru-0.7.3.tar.gz", hash = "sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6"},
] ]
[[package]] [[package]]
@ -503,12 +564,12 @@ files = [
[[package]] [[package]]
name = "markupsafe" name = "markupsafe"
version = "2.1.5" version = "3.0.2"
requires_python = ">=3.7" requires_python = ">=3.9"
summary = "Safely add untrusted strings to HTML/XML markup." summary = "Safely add untrusted strings to HTML/XML markup."
files = [ files = [
{file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, {file = "MarkupSafe-3.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b"},
{file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, {file = "markupsafe-3.0.2.tar.gz", hash = "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0"},
] ]
[[package]] [[package]]
@ -522,12 +583,12 @@ files = [
[[package]] [[package]]
name = "msgspec" name = "msgspec"
version = "0.18.6" version = "0.19.0"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML." summary = "A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML."
files = [ files = [
{file = "msgspec-0.18.6-cp311-cp311-win_amd64.whl", hash = "sha256:41cf758d3f40428c235c0f27bc6f322d43063bc32da7b9643e3f805c21ed57b4"}, {file = "msgspec-0.19.0-cp311-cp311-win_amd64.whl", hash = "sha256:70eaef4934b87193a27d802534dc466778ad8d536e296ae2f9334e182ac27b6c"},
{file = "msgspec-0.18.6.tar.gz", hash = "sha256:a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e"}, {file = "msgspec-0.19.0.tar.gz", hash = "sha256:604037e7cd475345848116e89c553aa9a233259733ab51986ac924ab1b976f8e"},
] ]
[[package]] [[package]]
@ -541,6 +602,32 @@ files = [
{file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"}, {file = "multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a"},
] ]
[[package]]
name = "numpy"
version = "2.2.1"
requires_python = ">=3.10"
summary = "Fundamental package for array computing in Python"
files = [
{file = "numpy-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:360137f8fb1b753c5cde3ac388597ad680eccbbbb3865ab65efea062c4a1fd16"},
{file = "numpy-2.2.1.tar.gz", hash = "sha256:45681fd7128c8ad1c379f0ca0776a8b0c6583d2f69889ddac01559dfe4390918"},
]
[[package]]
name = "pandas"
version = "2.2.3"
requires_python = ">=3.9"
summary = "Powerful data structures for data analysis, time series, and statistics"
dependencies = [
"numpy>=1.23.2; python_version == \"3.11\"",
"python-dateutil>=2.8.2",
"pytz>=2020.1",
"tzdata>=2022.7",
]
files = [
{file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"},
{file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"},
]
[[package]] [[package]]
name = "passlib" name = "passlib"
version = "1.7.4" version = "1.7.4"
@ -552,23 +639,33 @@ files = [
[[package]] [[package]]
name = "pillow" name = "pillow"
version = "10.2.0" version = "11.1.0"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "Python Imaging Library (Fork)" summary = "Python Imaging Library (Fork)"
files = [ files = [
{file = "pillow-10.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:1da3b2703afd040cf65ec97efea81cfba59cdbed9c11d8efc5ab09df9509fc56"}, {file = "pillow-11.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fbd43429d0d7ed6533b25fc993861b8fd512c42d04514a0dd6337fb3ccf22761"},
{file = "pillow-10.2.0.tar.gz", hash = "sha256:e87f0b2c78157e12d7686b27d63c070fd65d994e8ddae6f328e0dcf4a0cd007e"}, {file = "pillow-11.1.0.tar.gz", hash = "sha256:368da70808b36d73b4b390a8ffac11069f8a5c85f29eff1f1b01bcf3ef5b2a20"},
] ]
[[package]] [[package]]
name = "propcache" name = "propcache"
version = "0.2.0" version = "0.2.1"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "Accelerated property cache" summary = "Accelerated property cache"
files = [ files = [
{file = "propcache-0.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:6e2e54267980349b723cff366d1e29b138b9a60fa376664a157a342689553f71"}, {file = "propcache-0.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:edc9fc7051e3350643ad929df55c451899bb9ae6d24998a949d2e4c87fb596d3"},
{file = "propcache-0.2.0-py3-none-any.whl", hash = "sha256:2ccc28197af5313706511fab3a8b66dcd6da067a1331372c82ea1cb74285e036"}, {file = "propcache-0.2.1-py3-none-any.whl", hash = "sha256:52277518d6aae65536e9cea52d4e7fd2f7a66f4aa2d30ed3f2fcea620ace3c54"},
{file = "propcache-0.2.0.tar.gz", hash = "sha256:df81779732feb9d01e5d513fad0122efb3d53bbc75f61b2a4f29a020bc985e70"}, {file = "propcache-0.2.1.tar.gz", hash = "sha256:3f77ce728b19cb537714499928fe800c3dda29e8d9428778fc7c186da4c09a64"},
]
[[package]]
name = "psutil"
version = "6.1.1"
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
summary = "Cross-platform lib for process and system monitoring in Python."
files = [
{file = "psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649"},
{file = "psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5"},
] ]
[[package]] [[package]]
@ -601,7 +698,7 @@ files = [
[[package]] [[package]]
name = "pydantic-settings" name = "pydantic-settings"
version = "2.5.2" version = "2.7.1"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "Settings management using Pydantic" summary = "Settings management using Pydantic"
dependencies = [ dependencies = [
@ -609,8 +706,8 @@ dependencies = [
"python-dotenv>=0.21.0", "python-dotenv>=0.21.0",
] ]
files = [ files = [
{file = "pydantic_settings-2.5.2-py3-none-any.whl", hash = "sha256:2c912e55fd5794a59bf8c832b9de832dcfdf4778d79ff79b708744eed499a907"}, {file = "pydantic_settings-2.7.1-py3-none-any.whl", hash = "sha256:590be9e6e24d06db33a4262829edef682500ef008565a969c73d39d5f8bfb3fd"},
{file = "pydantic_settings-2.5.2.tar.gz", hash = "sha256:f90b139682bee4d2065273d5185d71d37ea46cfe57e1b5ae184fc6a0b2484ca0"}, {file = "pydantic_settings-2.7.1.tar.gz", hash = "sha256:10c9caad35e64bfb3c2fbf70a078c0e25cc92499782e5200747f942a065dec93"},
] ]
[[package]] [[package]]
@ -647,12 +744,12 @@ files = [
[[package]] [[package]]
name = "python-multipart" name = "python-multipart"
version = "0.0.12" version = "0.0.20"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "A streaming multipart parser for Python" summary = "A streaming multipart parser for Python"
files = [ files = [
{file = "python_multipart-0.0.12-py3-none-any.whl", hash = "sha256:43dcf96cf65888a9cd3423544dd0d75ac10f7aa0c3c28a175bbcd00c9ce1aebf"}, {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"},
{file = "python_multipart-0.0.12.tar.gz", hash = "sha256:045e1f98d719c1ce085ed7f7e1ef9d8ccc8c02ba02b5566d5f7521410ced58cb"}, {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"},
] ]
[[package]] [[package]]
@ -696,54 +793,55 @@ files = [
[[package]] [[package]]
name = "s3transfer" name = "s3transfer"
version = "0.10.3" version = "0.10.4"
requires_python = ">=3.8" requires_python = ">=3.8"
summary = "An Amazon S3 Transfer Manager" summary = "An Amazon S3 Transfer Manager"
dependencies = [ dependencies = [
"botocore<2.0a.0,>=1.33.2", "botocore<2.0a.0,>=1.33.2",
] ]
files = [ files = [
{file = "s3transfer-0.10.3-py3-none-any.whl", hash = "sha256:263ed587a5803c6c708d3ce44dc4dfedaab4c1a32e8329bab818933d79ddcf5d"}, {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"},
{file = "s3transfer-0.10.3.tar.gz", hash = "sha256:4f50ed74ab84d474ce614475e0b8d5047ff080810aac5d01ea25231cfc944b0c"}, {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"},
] ]
[[package]] [[package]]
name = "setuptools" name = "setuptools"
version = "75.1.0" version = "75.8.0"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "Easily download, build, install, upgrade, and uninstall Python packages" summary = "Easily download, build, install, upgrade, and uninstall Python packages"
files = [ files = [
{file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"}, {file = "setuptools-75.8.0-py3-none-any.whl", hash = "sha256:e3982f444617239225d675215d51f6ba05f845d4eec313da4418fdbb56fb27e3"},
{file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"}, {file = "setuptools-75.8.0.tar.gz", hash = "sha256:c5afc8f407c626b8313a86e10311dd3f661c6cd9c09d4bf8c15c0e11f9f2b0e6"},
] ]
[[package]] [[package]]
name = "simpleeval" name = "simpleeval"
version = "0.9.13" version = "1.0.3"
requires_python = ">=3.9"
summary = "A simple, safe single expression evaluator library." summary = "A simple, safe single expression evaluator library."
files = [ files = [
{file = "simpleeval-0.9.13-py2.py3-none-any.whl", hash = "sha256:22a2701a5006e4188d125d34accf2405c2c37c93f6b346f2484b6422415ae54a"}, {file = "simpleeval-1.0.3-py3-none-any.whl", hash = "sha256:e3bdbb8c82c26297c9a153902d0fd1858a6c3774bf53ff4f134788c3f2035c38"},
{file = "simpleeval-0.9.13.tar.gz", hash = "sha256:4a30f9cc01825fe4c719c785e3762623e350c4840d5e6855c2a8496baaa65fac"}, {file = "simpleeval-1.0.3.tar.gz", hash = "sha256:67bbf246040ac3b57c29cf048657b9cf31d4e7b9d6659684daa08ca8f1e45829"},
] ]
[[package]] [[package]]
name = "six" name = "six"
version = "1.16.0" version = "1.17.0"
requires_python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
summary = "Python 2 and 3 compatibility utilities" summary = "Python 2 and 3 compatibility utilities"
files = [ files = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
] ]
[[package]] [[package]]
name = "smmap" name = "smmap"
version = "5.0.1" version = "5.0.2"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "A pure Python implementation of a sliding window memory map manager" summary = "A pure Python implementation of a sliding window memory map manager"
files = [ files = [
{file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"}, {file = "smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e"},
{file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"}, {file = "smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5"},
] ]
[[package]] [[package]]
@ -768,17 +866,17 @@ files = [
[[package]] [[package]]
name = "sqlalchemy" name = "sqlalchemy"
version = "2.0.35" version = "2.0.37"
requires_python = ">=3.7" requires_python = ">=3.7"
summary = "Database Abstraction Library" summary = "Database Abstraction Library"
dependencies = [ dependencies = [
"greenlet!=0.4.17; (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\") and python_version < \"3.13\"", "greenlet!=0.4.17; (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\") and python_version < \"3.14\"",
"typing-extensions>=4.6.0", "typing-extensions>=4.6.0",
] ]
files = [ files = [
{file = "SQLAlchemy-2.0.35-cp311-cp311-win_amd64.whl", hash = "sha256:c68fe3fcde03920c46697585620135b4ecfdfc1ed23e75cc2c2ae9f8502c10b8"}, {file = "SQLAlchemy-2.0.37-cp311-cp311-win_amd64.whl", hash = "sha256:7b7e772dc4bc507fdec4ee20182f15bd60d2a84f1e087a8accf5b5b7a0dcf2ba"},
{file = "SQLAlchemy-2.0.35-py3-none-any.whl", hash = "sha256:2ab3f0336c0387662ce6221ad30ab3a5e6499aab01b9790879b6578fd9b8faa1"}, {file = "SQLAlchemy-2.0.37-py3-none-any.whl", hash = "sha256:a8998bf9f8658bd3839cbc44ddbe982955641863da0c1efe5b00c1ab4f5c16b1"},
{file = "sqlalchemy-2.0.35.tar.gz", hash = "sha256:e11d7ea4d24f0a262bccf9a7cd6284c976c5369dac21db237cff59586045ab9f"}, {file = "sqlalchemy-2.0.37.tar.gz", hash = "sha256:12b28d99a9c14eaf4055810df1001557176716de0167b91026e648e65229bffb"},
] ]
[[package]] [[package]]
@ -876,54 +974,54 @@ files = [
[[package]] [[package]]
name = "uvicorn" name = "uvicorn"
version = "0.31.1" version = "0.34.0"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "The lightning-fast ASGI server." summary = "The lightning-fast ASGI server."
dependencies = [ dependencies = [
"click>=7.0", "click>=7.0",
"h11>=0.8", "h11>=0.8",
] ]
files = [ files = [
{file = "uvicorn-0.31.1-py3-none-any.whl", hash = "sha256:adc42d9cac80cf3e51af97c1851648066841e7cfb6993a4ca8de29ac1548ed41"}, {file = "uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4"},
{file = "uvicorn-0.31.1.tar.gz", hash = "sha256:f5167919867b161b7bcaf32646c6a94cdbd4c3aa2eb5c17d36bb9aa5cfd8c493"}, {file = "uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9"},
] ]
[[package]] [[package]]
name = "websockets" name = "websockets"
version = "13.1" version = "14.1"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" summary = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
files = [ files = [
{file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, {file = "websockets-14.1-cp311-cp311-win_amd64.whl", hash = "sha256:6d24fc337fc055c9e83414c94e1ee0dee902a486d19d2a7f0929e49d7d604b09"},
{file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, {file = "websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e"},
{file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, {file = "websockets-14.1.tar.gz", hash = "sha256:398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8"},
] ]
[[package]] [[package]]
name = "win32-setctime" name = "win32-setctime"
version = "1.1.0" version = "1.2.0"
requires_python = ">=3.5" requires_python = ">=3.5"
summary = "A small Python utility to set file creation time on Windows" summary = "A small Python utility to set file creation time on Windows"
files = [ files = [
{file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, {file = "win32_setctime-1.2.0-py3-none-any.whl", hash = "sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390"},
{file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, {file = "win32_setctime-1.2.0.tar.gz", hash = "sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0"},
] ]
[[package]] [[package]]
name = "wrapt" name = "wrapt"
version = "1.16.0" version = "1.17.2"
requires_python = ">=3.6" requires_python = ">=3.8"
summary = "Module for decorators, wrappers and monkey patching." summary = "Module for decorators, wrappers and monkey patching."
files = [ files = [
{file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"},
{file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"},
{file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"},
] ]
[[package]] [[package]]
name = "yarl" name = "yarl"
version = "1.15.0" version = "1.18.3"
requires_python = ">=3.8" requires_python = ">=3.9"
summary = "Yet another URL library" summary = "Yet another URL library"
dependencies = [ dependencies = [
"idna>=2.0", "idna>=2.0",
@ -931,7 +1029,7 @@ dependencies = [
"propcache>=0.2.0", "propcache>=0.2.0",
] ]
files = [ files = [
{file = "yarl-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:229f222bb47cd7ab225648efd1ae47fe6943f18e4c91bce66471faf09fe33128"}, {file = "yarl-1.18.3-cp311-cp311-win_amd64.whl", hash = "sha256:b9d60031cf568c627d028239693fd718025719c02c9f55df0a53e587aab951b5"},
{file = "yarl-1.15.0-py3-none-any.whl", hash = "sha256:1656a8b531a96427f26f498b7d0f19931166ff30e4344eca99bdb27faca14fc5"}, {file = "yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b"},
{file = "yarl-1.15.0.tar.gz", hash = "sha256:efc0430b80ed834c80c99c32946cfc6ee29dfcd7c62ad3c8f15657322ade7942"}, {file = "yarl-1.18.3.tar.gz", hash = "sha256:ac1801c45cbf77b6c99242eeff4fffb5e4e73a800b5c4ad4fc0be5def634d2e1"},
] ]

2634
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "gsuid-core" name = "gsuid-core"
version = "0.5.5" version = "0.7.0"
description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。" description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。"
authors = ["KimigaiiWuyi <444835641@qq.com>", "MingxuanGame <MingxuanGame@outlook.com>"] authors = ["KimigaiiWuyi <444835641@qq.com>", "MingxuanGame <MingxuanGame@outlook.com>"]
license = "GPL-3.0-or-later" license = "GPL-3.0-or-later"
@ -13,13 +13,13 @@ packages = [{include = "gsuid_core"}]
"Bug Tracker" = "https://github.com/Genshin-bots/gsuid-core/issues" "Bug Tracker" = "https://github.com/Genshin-bots/gsuid-core/issues"
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = "^3.8.1" python = ">=3.11,<=3.12"
httpx = ">=0.23.0" httpx = ">=0.23.0"
beautifulsoup4 = ">=4.11.1" beautifulsoup4 = ">=4.11.1"
lxml = ">=4.9.2" lxml = ">=4.9.2"
aiohttp = ">=3.8.1" aiohttp = ">=3.8.1"
sqlalchemy = ">=2.0.0,<2.1.0" sqlalchemy = ">=2.0.0,<2.1.0"
pillow = ">=9.2.0, <=10.2.0" pillow = ">=10.2.0"
aiosqlite = ">=0.17.0" aiosqlite = ">=0.17.0"
aiofiles = ">=0.8.0" aiofiles = ">=0.8.0"
sqlmodel = ">=0.0.14" sqlmodel = ">=0.0.14"
@ -46,6 +46,10 @@ pydantic = ">=2.0.0, <=2.8.2"
pydantic-settings = ">=2.3.4" pydantic-settings = ">=2.3.4"
email-validator = "^2.2.0" email-validator = "^2.2.0"
pydantic-core = ">=2.20.1" pydantic-core = ">=2.20.1"
psutil = "^6.1.1"
pytz = "^2024.2"
pandas = "^2.2.3"
betterproto = ">=2.0.0b7"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
flake8 = "^6.0.0" flake8 = "^6.0.0"
@ -61,14 +65,25 @@ core = "gsuid_core.core:main"
[tool.pdm.scripts] [tool.pdm.scripts]
core = "gsuid_core/core.py" core = "gsuid_core/core.py"
[tool.pdm.dev-dependencies]
dev = [
"flake8<7.0.0,>=6.0.0",
"black<23.0.0,>=22.12.0",
"isort<6.0.0,>=5.11.4",
"pre-commit<3.0.0,>=2.21.0",
"pycln<3.0.0,>=2.1.2",
]
[tool.pdm.build]
includes = ["gsuid_core"]
[[tool.poetry.source]] [[tool.poetry.source]]
name = "BFSU" name = "TUNA"
url = "https://mirrors.bfsu.edu.cn/pypi/web/simple/" url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
priority = "primary" priority = "primary"
[build-system] [build-system]
requires = ["poetry-core"] requires = ["pdm-backend"]
build-backend = "poetry.core.masonry.api" build-backend = "pdm.backend"
[tool.black] [tool.black]
line-length = 79 line-length = 79
@ -92,14 +107,14 @@ authors = [
{name = "MingxuanGame", email = "MingxuanGame@outlook.com"}, {name = "MingxuanGame", email = "MingxuanGame@outlook.com"},
] ]
license = {text = "GPL-3.0-or-later"} license = {text = "GPL-3.0-or-later"}
requires-python = ">=3.8.1,<4.0" requires-python = ">=3.11,<3.12.1"
dependencies = [ dependencies = [
"httpx>=0.23.0", "httpx>=0.23.0",
"beautifulsoup4>=4.11.1", "beautifulsoup4>=4.11.1",
"lxml>=4.9.2", "lxml>=4.9.2",
"aiohttp>=3.8.1", "aiohttp>=3.8.1",
"sqlalchemy<2.1.0,>=2.0.0", "sqlalchemy<2.1.0,>=2.0.0",
"pillow>=9.2.0,<=10.2.0", "pillow>=10.2.0",
"aiosqlite>=0.17.0", "aiosqlite>=0.17.0",
"aiofiles>=0.8.0", "aiofiles>=0.8.0",
"sqlmodel>=0.0.8", "sqlmodel>=0.0.8",
@ -113,7 +128,7 @@ dependencies = [
"loguru<1.0.0,>=0.6.0", "loguru<1.0.0,>=0.6.0",
"urllib3<2.0.0,>=1.26.15", "urllib3<2.0.0,>=1.26.15",
"mpmath<2.0.0,>=1.3.0", "mpmath<2.0.0,>=1.3.0",
"fastapi<0.112.3,>=0.97.0", "fastapi>=0.97.0,<0.112.3",
"apscheduler<4.0.0,>=3.10.1", "apscheduler<4.0.0,>=3.10.1",
"aioboto3<13.0.0,>=12.0.0", "aioboto3<13.0.0,>=12.0.0",
"jinja2<4.0.0,>=3.1.2", "jinja2<4.0.0,>=3.1.2",
@ -127,9 +142,20 @@ dependencies = [
"pydantic-settings>=2.3.4", "pydantic-settings>=2.3.4",
"pydantic-core>=2.20.1", "pydantic-core>=2.20.1",
"annotated-types>=0.7.0", "annotated-types>=0.7.0",
"sqlmodel>=0.0.14",
"loguru>=0.6.0",
"fastapi<0.112.3",
"async-timeout<5.0.0,>=4.0.3",
"toml<1.0.0,>=0.10.2",
"bcrypt<5.0.0,>=4.0.1",
"email-validator<3.0.0,>=2.2.0",
"psutil>=6.1.1",
"pytz>=2024.2",
"pandas>=2.2.3",
"betterproto>=2.0.0b7",
] ]
name = "gsuid-core" name = "gsuid-core"
version = "0.5.5" version = "0.7.0"
description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。" description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。"
readme = "README.md" readme = "README.md"
@ -137,13 +163,13 @@ readme = "README.md"
respect-source-order = true respect-source-order = true
[[tool.pdm.source]] [[tool.pdm.source]]
name = "BFSU" name = "TUNA"
url = "https://mirrors.bfsu.edu.cn/pypi/web/simple/" url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
[[tool.pdm.source]] [[tool.pdm.source]]
name = "TUNA" name = "TUNA"
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple" url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
verify_ssl = true
[project.urls] [project.urls]
"Bug Tracker" = "https://github.com/Genshin-bots/gsuid-core/issues" "Bug Tracker" = "https://github.com/Genshin-bots/gsuid-core/issues"
homepage = "https://github.com/Genshin-bots/gsuid-core" homepage = "https://github.com/Genshin-bots/gsuid-core"

View File

@ -1,79 +1,85 @@
--index-url https://mirrors.bfsu.edu.cn/pypi/web/simple --index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
aioboto3==12.4.0 ; python_full_version >= "3.8.1" and python_version < "4.0" aioboto3==12.4.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aiobotocore[boto3]==2.12.3 ; python_full_version >= "3.8.1" and python_version < "4.0" aiobotocore[boto3]==2.12.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aiofiles==24.1.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" aiofiles==24.1.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aiohappyeyeballs==2.4.3 ; python_full_version >= "3.8.1" and python_version < "4.0" aiohappyeyeballs==2.4.4 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aiohttp==3.10.10 ; python_full_version >= "3.8.1" and python_version < "4.0" aiohttp==3.11.11 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aioitertools==0.12.0 ; python_full_version >= "3.8.1" and python_version < "4.0" aioitertools==0.12.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aiosignal==1.3.1 ; python_full_version >= "3.8.1" and python_version < "4.0" aiosignal==1.3.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
aiosqlite==0.20.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" aiosqlite==0.20.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
annotated-types==0.7.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" annotated-types==0.7.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
anyio==4.5.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" anyio==4.8.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
apscheduler==3.10.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" apscheduler==3.11.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
async-timeout==4.0.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" async-timeout==4.0.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
attrs==24.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" attrs==24.3.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" bcrypt==4.0.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
bcrypt==4.0.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" beautifulsoup4==4.12.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
beautifulsoup4==4.12.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" betterproto==2.0.0b7 ; python_version >= "3.11" and python_full_version <= "3.12.0"
boto3==1.34.69 ; python_full_version >= "3.8.1" and python_version < "4.0" boto3==1.34.69 ; python_version >= "3.11" and python_full_version <= "3.12.0"
botocore==1.34.69 ; python_full_version >= "3.8.1" and python_version < "4.0" botocore==1.34.69 ; python_version >= "3.11" and python_full_version <= "3.12.0"
casbin==1.36.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" casbin==1.38.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
certifi==2024.8.30 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" certifi==2024.12.14 ; python_version >= "3.11" and python_full_version <= "3.12.0"
click==8.1.7 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" click==8.1.8 ; python_version >= "3.11" and python_full_version <= "3.12.0"
colorama==0.4.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" colorama==0.4.6 ; python_version >= "3.11" and python_full_version <= "3.12.0"
dnspython==2.6.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" dnspython==2.7.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
email-validator==2.2.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" email-validator==2.2.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
exceptiongroup==1.2.2 ; python_full_version >= "3.8.1" and python_version < "3.11" fastapi-amis-admin==0.7.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
fastapi-amis-admin==0.7.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" fastapi-user-auth==0.7.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
fastapi-user-auth==0.7.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" fastapi==0.112.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
fastapi==0.112.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" frozenlist==1.5.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
frozenlist==1.4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" gitdb==4.0.12 ; python_version >= "3.11" and python_full_version <= "3.12.0"
gitdb==4.0.11 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" gitpython==3.1.44 ; python_version >= "3.11" and python_full_version <= "3.12.0"
gitpython==3.1.43 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" greenlet==3.1.1 ; python_full_version <= "3.12.0" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version >= "3.11"
greenlet==3.1.1 ; python_version < "3.13" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_full_version >= "3.8.1" grpclib==0.4.7 ; python_version >= "3.11" and python_full_version <= "3.12.0"
h11==0.14.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" h11==0.14.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
httpcore==1.0.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" h2==4.1.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
httpx==0.27.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" hpack==4.0.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
idna==3.10 ; python_full_version >= "3.8.1" and python_version < "4.0" httpcore==1.0.7 ; python_version >= "3.11" and python_full_version <= "3.12.0"
jinja2==3.1.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" httpx==0.28.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
jmespath==1.0.1 ; python_full_version >= "3.8.1" and python_version < "4.0" hyperframe==6.0.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
loguru==0.7.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" idna==3.10 ; python_version >= "3.11" and python_full_version <= "3.12.0"
lxml==5.3.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" jinja2==3.1.5 ; python_version >= "3.11" and python_full_version <= "3.12.0"
markupsafe==2.1.5 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" jmespath==1.0.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
mpmath==1.3.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" loguru==0.7.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
msgspec==0.18.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" lxml==5.3.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
multidict==6.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" markupsafe==3.0.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
passlib==1.7.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" mpmath==1.3.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
pillow==10.2.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" msgspec==0.19.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
propcache==0.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" multidict==6.1.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
pydantic-core==2.20.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" numpy==2.2.1 ; python_version == "3.11" or python_full_version == "3.12.0"
pydantic-settings==2.5.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pandas==2.2.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
pydantic==2.8.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" passlib==1.7.4 ; python_version >= "3.11" and python_full_version <= "3.12.0"
pypng==0.20220715.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pillow==11.1.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
python-dateutil==2.9.0.post0 ; python_full_version >= "3.8.1" and python_version < "4.0" propcache==0.2.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
python-dotenv==1.0.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" psutil==6.1.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
python-multipart==0.0.12 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pydantic-core==2.20.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
pytz==2024.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pydantic-settings==2.7.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
qrcode[pil]==7.4.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pydantic==2.8.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
s3transfer==0.10.3 ; python_full_version >= "3.8.1" and python_version < "4.0" pypng==0.20220715.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
setuptools==75.1.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" python-dateutil==2.9.0.post0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
simpleeval==0.9.13 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" python-dotenv==1.0.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
six==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" python-multipart==0.0.20 ; python_version >= "3.11" and python_full_version <= "3.12.0"
smmap==5.0.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pytz==2024.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
sniffio==1.3.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" qrcode[pil]==7.4.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
soupsieve==2.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" s3transfer==0.10.4 ; python_version >= "3.11" and python_full_version <= "3.12.0"
sqlalchemy-database==0.1.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" setuptools==75.8.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
sqlalchemy==2.0.35 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" simpleeval==1.0.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"
sqlmodel==0.0.22 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" six==1.17.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
starlette==0.38.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" smmap==5.0.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
toml==0.10.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" sniffio==1.3.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
typing-extensions==4.12.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" soupsieve==2.6 ; python_version >= "3.11" and python_full_version <= "3.12.0"
tzdata==2024.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" and platform_system == "Windows" sqlalchemy-database==0.1.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
tzlocal==5.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" sqlalchemy==2.0.37 ; python_version >= "3.11" and python_full_version <= "3.12.0"
urllib3==1.26.20 ; python_full_version >= "3.8.1" and python_version < "4.0" sqlmodel==0.0.22 ; python_version >= "3.11" and python_full_version <= "3.12.0"
uvicorn==0.31.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" starlette==0.38.6 ; python_version >= "3.11" and python_full_version <= "3.12.0"
websockets==13.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" toml==0.10.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
win32-setctime==1.1.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" and sys_platform == "win32" typing-extensions==4.12.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
wrapt==1.16.0 ; python_full_version >= "3.8.1" and python_version < "4.0" tzdata==2024.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
yarl==1.15.0 ; python_full_version >= "3.8.1" and python_version < "4.0" tzlocal==5.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
urllib3==1.26.20 ; python_version >= "3.11" and python_full_version <= "3.12.0"
uvicorn==0.34.0 ; python_version >= "3.11" and python_full_version <= "3.12.0"
websockets==14.1 ; python_version >= "3.11" and python_full_version <= "3.12.0"
win32-setctime==1.2.0 ; python_version >= "3.11" and python_full_version <= "3.12.0" and sys_platform == "win32"
wrapt==1.17.2 ; python_version >= "3.11" and python_full_version <= "3.12.0"
yarl==1.18.3 ; python_version >= "3.11" and python_full_version <= "3.12.0"

1404
uv.lock generated Normal file

File diff suppressed because it is too large Load Diff

3
uv.toml Normal file
View File

@ -0,0 +1,3 @@
[[index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
default = true