From 4d0014a0924a195edd3d9fac3f37055be69a878f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Fri, 24 Mar 2023 01:45:34 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=E4=BC=98=E5=8C=96=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gsuid_core/server.py | 13 +- gsuid_core/webconsole/create_config_panel.py | 31 ++ gsuid_core/webconsole/mount_app.py | 3 +- poetry.lock | 454 +++++++++++++++++-- pyproject.toml | 8 +- requirements.txt | 8 +- 6 files changed, 473 insertions(+), 44 deletions(-) create mode 100644 gsuid_core/webconsole/create_config_panel.py diff --git a/gsuid_core/server.py b/gsuid_core/server.py index c363798..1978b6b 100644 --- a/gsuid_core/server.py +++ b/gsuid_core/server.py @@ -78,13 +78,18 @@ class GsServer: self.active_ws[bot_id] = websocket self.active_bot[bot_id] = bot = _Bot(bot_id, websocket) logger.info(f'{bot_id}已连接!') - _task = [_def() for _def in self.bot_connect_def] - asyncio.gather(*_task) + try: + _task = [_def() for _def in self.bot_connect_def] + asyncio.gather(*_task) + except Exception as e: + logger.exception(e) return bot def disconnect(self, bot_id: str): - del self.active_ws[bot_id] - del self.active_bot[bot_id] + if bot_id in self.active_ws: + del self.active_ws[bot_id] + if bot_id in self.active_bot: + del self.active_bot[bot_id] logger.warning(f'{bot_id}已中断!') async def send(self, message: str, bot_id: str): diff --git a/gsuid_core/webconsole/create_config_panel.py b/gsuid_core/webconsole/create_config_panel.py new file mode 100644 index 0000000..3884978 --- /dev/null +++ b/gsuid_core/webconsole/create_config_panel.py @@ -0,0 +1,31 @@ +from typing import Dict + +from gsuid_core.plugins.GenshinUID.GenshinUID.genshinuid_config import ( + gs_config, +) +from gsuid_core.plugins.GenshinUID.GenshinUID.genshinuid_config.models import ( + GsStrConfig, +) + +gsconfig = gs_config.gsconfig + + +def get_str_panel(name: str, value: str) -> Dict: + return {} + + +def get_all_config(): + page = { + 'type': 'page', + 'title': '配置管理', + 'body': [], + 'id': 'u:a9be7e0dc626', + } + body = [] + for config in gsconfig: + gsc = gsconfig[config] + if isinstance(gsc, GsStrConfig): + body.append(get_str_panel(config, gsc.data)) + + page['body'] = body + return page diff --git a/gsuid_core/webconsole/mount_app.py b/gsuid_core/webconsole/mount_app.py index 93b7115..0fc71fa 100644 --- a/gsuid_core/webconsole/mount_app.py +++ b/gsuid_core/webconsole/mount_app.py @@ -9,6 +9,7 @@ from fastapi_amis_admin import amis, admin from fastapi_user_auth.app import UserAuthApp from sqlalchemy_database import AsyncDatabase from fastapi_amis_admin.crud import BaseApiOut +from sqlalchemy.ext.asyncio import AsyncEngine from fastapi_user_auth.site import AuthAdminSite from fastapi_amis_admin.models.fields import Field from fastapi_amis_admin.admin.site import APIDocsApp @@ -16,7 +17,6 @@ from fastapi_amis_admin.admin.settings import Settings from fastapi_user_auth.auth.models import UserRoleLink from fastapi_amis_admin.utils.translation import i18n as _ from fastapi import Depends, FastAPI, Request, HTTPException -from sqlalchemy.ext.asyncio import AsyncEngine, create_async_engine from fastapi_amis_admin.amis.constants import LevelEnum, DisplayModeEnum from fastapi_user_auth.admin import ( FormAdmin, @@ -37,7 +37,6 @@ from fastapi_amis_admin.amis.components import ( ButtonToolbar, ) -from gsuid_core.data_store import get_res_path from gsuid_core.webconsole.models import WebUser from gsuid_core.webconsole.html import gsuid_webconsole_help from gsuid_core.webconsole.create_sv_panel import get_sv_page diff --git a/poetry.lock b/poetry.lock index 8f817d1..89b57bd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -12,6 +12,11 @@ files = [ {file = "aiofiles-23.1.0.tar.gz", hash = "sha256:edd247df9a19e0db16534d4baaf536d6609a43e1de5401d7a4c1c148753a1635"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "aiohttp" version = "3.8.4" @@ -121,6 +126,11 @@ yarl = ">=1.0,<2.0" [package.extras] speedups = ["Brotli", "aiodns", "cchardet"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "aiosignal" version = "1.3.1" @@ -136,6 +146,11 @@ files = [ [package.dependencies] frozenlist = ">=1.1.0" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "aiosqlite" version = "0.18.0" @@ -148,6 +163,11 @@ files = [ {file = "aiosqlite-0.18.0.tar.gz", hash = "sha256:faa843ef5fb08bafe9a9b3859012d3d9d6f77ce3637899de20606b7fc39aa213"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "anyio" version = "3.6.2" @@ -169,6 +189,11 @@ doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] trio = ["trio (>=0.16,<0.22)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "apscheduler" version = "3.10.1" @@ -199,6 +224,11 @@ tornado = ["tornado (>=4.3)"] twisted = ["twisted"] zookeeper = ["kazoo"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "async-timeout" version = "4.0.2" @@ -211,6 +241,11 @@ files = [ {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "attrs" version = "22.2.0" @@ -230,6 +265,11 @@ docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib- tests = ["attrs[tests-no-zope]", "zope.interface"] tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "backports-zoneinfo" version = "0.2.1" @@ -259,6 +299,11 @@ files = [ [package.extras] tzdata = ["tzdata"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "bcrypt" version = "4.0.1" @@ -294,16 +339,21 @@ files = [ tests = ["pytest (>=3.2.1,!=3.3.0)"] typecheck = ["mypy"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "beautifulsoup4" -version = "4.12.0" +version = "4.11.2" description = "Screen-scraping library" category = "main" optional = false python-versions = ">=3.6.0" files = [ - {file = "beautifulsoup4-4.12.0-py3-none-any.whl", hash = "sha256:2130a5ad7f513200fae61a17abb5e338ca980fa28c439c0571014bc0217e9591"}, - {file = "beautifulsoup4-4.12.0.tar.gz", hash = "sha256:c5fceeaec29d09c84970e47c65f2f0efe57872f7cff494c9691a26ec0ff13234"}, + {file = "beautifulsoup4-4.11.2-py3-none-any.whl", hash = "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39"}, + {file = "beautifulsoup4-4.11.2.tar.gz", hash = "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"}, ] [package.dependencies] @@ -313,6 +363,11 @@ soupsieve = ">1.2" html5lib = ["html5lib"] lxml = ["lxml"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "black" version = "22.12.0" @@ -349,6 +404,11 @@ d = ["aiohttp (>=3.7.4)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "certifi" version = "2022.12.7" @@ -361,6 +421,11 @@ files = [ {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "cfgv" version = "3.3.1" @@ -373,6 +438,11 @@ files = [ {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "charset-normalizer" version = "3.1.0" @@ -458,6 +528,11 @@ files = [ {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "click" version = "8.1.3" @@ -473,6 +548,11 @@ files = [ [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "colorama" version = "0.4.6" @@ -485,6 +565,11 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "distlib" version = "0.3.6" @@ -497,6 +582,11 @@ files = [ {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "dnspython" version = "2.3.0" @@ -518,6 +608,11 @@ idna = ["idna (>=2.1,<4.0)"] trio = ["trio (>=0.14,<0.23)"] wmi = ["wmi (>=1.5.1,<2.0.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "email-validator" version = "1.3.1" @@ -534,17 +629,10 @@ files = [ dnspython = ">=1.15.0" idna = ">=2.0.0" -[[package]] -name = "et-xmlfile" -version = "1.1.0" -description = "An implementation of lxml.xmlfile for the standard library" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "et_xmlfile-1.1.0-py3-none-any.whl", hash = "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada"}, - {file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"}, -] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" [[package]] name = "fastapi" @@ -568,16 +656,21 @@ dev = ["pre-commit (>=2.17.0,<3.0.0)", "ruff (==0.0.138)", "uvicorn[standard] (> doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer-cli (>=0.0.13,<0.0.14)", "typer[all] (>=0.6.1,<0.8.0)"] test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==23.1.0)", "coverage[toml] (>=6.5.0,<8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.7)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<1.4.43)", "types-orjson (==3.6.2)", "types-ujson (==5.7.0.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "fastapi-amis-admin" -version = "0.5.2" -description = "FastAPI-Amis-Admin is a high-performance, efficient and easily extensible FastAPI admin framework. Inspired by Django-admin, and has as many powerful functions as Django-admin. " +version = "0.5.1" +description = "FastAPI-Amis-Admin is a high-performance, efficient and easily extensible FastAPI admin framework. Inspired by Django-admin, and has as many powerful functions as Django-admin." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "fastapi_amis_admin-0.5.2-py3-none-any.whl", hash = "sha256:d45a7389c2898a5a5e01c8eae080fe5051a20a4d3e26673b8a9ea5a388464a00"}, - {file = "fastapi_amis_admin-0.5.2.tar.gz", hash = "sha256:b17fa1e5f2f746f1fd5f937405bac07b941a2fca18a2ec6d8cc41756e5f7936b"}, + {file = "fastapi_amis_admin-0.5.1-py3-none-any.whl", hash = "sha256:7cb65e6389c8f132152fd185cb8832d63a2401689db92b2e0fc2cb9d8d22969c"}, + {file = "fastapi_amis_admin-0.5.1.tar.gz", hash = "sha256:da4d11fc1f68bb48c817e02b477b5673e4d8e42dfec28e29eabd3937f2b35a36"}, ] [package.dependencies] @@ -594,6 +687,11 @@ dev = ["fastapi-amis-admin[test]", "pre-commit (>=2.20.0)"] standard = ["fastapi-amis-admin-cli (>=0.1.0,<0.2.0)", "uvicorn[standard] (>=0.19.0,<1.0)"] test = ["aiosqlite (>=0.15.0)", "fastapi-amis-admin[standard]", "httpx (>=0.23.0,<1.0)", "jinja2 (>=2.11.2,<4.0.0)", "pytest (>=6.2.4,<7.0.0)", "pytest-asyncio (>=0.17)", "requests (>=2.28.1)", "ujson (>=4.0.1)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "fastapi-user-auth" version = "0.5.0" @@ -621,6 +719,11 @@ jwt = ["python-jose (==3.3.0)"] redis = ["aioredis"] test = ["aiosqlite (>=0.15.0)", "jinja2 (>=2.11.2,<4.0.0)", "pytest (>=6.2.4)", "pytest-asyncio (>=0.17)", "python-jose (==3.3.0)", "requests (>=2.28.1)", "ujson (>=5.5.0)", "uvicorn[standard] (>=0.19.0,<1.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "filelock" version = "3.10.0" @@ -637,6 +740,11 @@ files = [ docs = ["furo (>=2022.12.7)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] testing = ["covdefaults (>=2.3)", "coverage (>=7.2.1)", "pytest (>=7.2.2)", "pytest-cov (>=4)", "pytest-timeout (>=2.1)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "flake8" version = "6.0.0" @@ -654,6 +762,11 @@ mccabe = ">=0.7.0,<0.8.0" pycodestyle = ">=2.10.0,<2.11.0" pyflakes = ">=3.0.0,<3.1.0" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "frozenlist" version = "1.3.3" @@ -738,6 +851,11 @@ files = [ {file = "frozenlist-1.3.3.tar.gz", hash = "sha256:58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "gitdb" version = "4.0.10" @@ -753,6 +871,11 @@ files = [ [package.dependencies] smmap = ">=3.0.1,<6" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "gitpython" version = "3.1.31" @@ -768,6 +891,11 @@ files = [ [package.dependencies] gitdb = ">=4.0.1,<5" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "greenlet" version = "2.0.2" @@ -842,6 +970,11 @@ files = [ docs = ["Sphinx", "docutils (<0.18)"] test = ["objgraph", "psutil"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "h11" version = "0.14.0" @@ -854,6 +987,11 @@ files = [ {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "httpcore" version = "0.16.3" @@ -876,6 +1014,11 @@ sniffio = ">=1.0.0,<2.0.0" http2 = ["h2 (>=3,<5)"] socks = ["socksio (>=1.0.0,<2.0.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "httpx" version = "0.23.3" @@ -900,6 +1043,11 @@ cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] http2 = ["h2 (>=3,<5)"] socks = ["socksio (>=1.0.0,<2.0.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "identify" version = "2.5.21" @@ -915,6 +1063,11 @@ files = [ [package.extras] license = ["ukkonen"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "idna" version = "3.4" @@ -927,6 +1080,11 @@ files = [ {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "isort" version = "5.12.0" @@ -945,6 +1103,11 @@ pipfile-deprecated-finder = ["pip-shims (>=0.5.2)", "pipreqs", "requirementslib" plugins = ["setuptools"] requirements-deprecated-finder = ["pip-api", "pipreqs"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "libcst" version = "0.4.9" @@ -993,6 +1156,11 @@ typing-inspect = ">=0.4.0" [package.extras] dev = ["Sphinx (>=5.1.1)", "black (==22.10.0)", "coverage (>=4.5.4)", "fixit (==0.1.1)", "flake8 (>=3.7.8,<5)", "hypothesis (>=4.36.0)", "hypothesmith (>=0.0.4)", "jinja2 (==3.1.2)", "jupyter (>=1.0.0)", "maturin (>=0.8.3,<0.14)", "nbsphinx (>=0.4.2)", "prompt-toolkit (>=2.0.9)", "pyre-check (==0.9.9)", "setuptools-rust (>=1.5.2)", "setuptools-scm (>=6.0.1)", "slotscheck (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)", "ufmt (==2.0.1)", "usort (==1.0.5)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "lxml" version = "4.9.2" @@ -1086,6 +1254,11 @@ html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] source = ["Cython (>=0.29.7)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "mccabe" version = "0.7.0" @@ -1098,6 +1271,11 @@ files = [ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "msgspec" version = "0.13.1" @@ -1144,6 +1322,11 @@ test = ["msgpack", "mypy", "pyright", "pytest", "pyyaml", "tomli", "tomli-w"] toml = ["tomli", "tomli-w"] yaml = ["pyyaml"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "multidict" version = "6.0.4" @@ -1228,6 +1411,11 @@ files = [ {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "mypy-extensions" version = "1.0.0" @@ -1240,6 +1428,11 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "nodeenv" version = "1.7.0" @@ -1255,20 +1448,10 @@ files = [ [package.dependencies] setuptools = "*" -[[package]] -name = "openpyxl" -version = "3.1.2" -description = "A Python library to read/write Excel 2010 xlsx/xlsm files" -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "openpyxl-3.1.2-py2.py3-none-any.whl", hash = "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5"}, - {file = "openpyxl-3.1.2.tar.gz", hash = "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184"}, -] - -[package.dependencies] -et-xmlfile = "*" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" [[package]] name = "passlib" @@ -1288,6 +1471,11 @@ bcrypt = ["bcrypt (>=3.1.0)"] build-docs = ["cloud-sptheme (>=1.10.1)", "sphinx (>=1.6)", "sphinxcontrib-fulltoc (>=1.2.0)"] totp = ["cryptography"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pathspec" version = "0.10.3" @@ -1300,6 +1488,11 @@ files = [ {file = "pathspec-0.10.3.tar.gz", hash = "sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pillow" version = "9.4.0" @@ -1391,6 +1584,11 @@ files = [ docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "platformdirs" version = "3.1.1" @@ -1407,6 +1605,11 @@ files = [ docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pre-commit" version = "2.21.0" @@ -1426,6 +1629,11 @@ nodeenv = ">=0.11.1" pyyaml = ">=5.1" virtualenv = ">=20.10.0" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pycln" version = "2.1.3" @@ -1445,6 +1653,11 @@ pyyaml = ">=5.3.1,<7.0.0" tomlkit = ">=0.11.1,<0.12.0" typer = ">=0.4.1,<0.8.0" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pycodestyle" version = "2.10.0" @@ -1457,6 +1670,11 @@ files = [ {file = "pycodestyle-2.10.0.tar.gz", hash = "sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pydantic" version = "1.10.6" @@ -1510,6 +1728,11 @@ typing-extensions = ">=4.2.0" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pyflakes" version = "3.0.1" @@ -1522,6 +1745,11 @@ files = [ {file = "pyflakes-3.0.1.tar.gz", hash = "sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pypng" version = "0.20220715.0" @@ -1534,6 +1762,11 @@ files = [ {file = "pypng-0.20220715.0.tar.gz", hash = "sha256:739c433ba96f078315de54c0db975aee537cbc3e1d0ae4ed9aab0ca1e427e2c1"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "python-multipart" version = "0.0.6" @@ -1549,6 +1782,11 @@ files = [ [package.extras] dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==1.7.3)", "more-itertools (==4.3.0)", "pbr (==4.3.0)", "pluggy (==1.0.0)", "py (==1.11.0)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-timeout (==2.1.0)", "pyyaml (==5.1)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pytz" version = "2022.7.1" @@ -1561,6 +1799,11 @@ files = [ {file = "pytz-2022.7.1.tar.gz", hash = "sha256:01a0681c4b9684a28304615eba55d1ab31ae00bf68ec157ec3708a8182dbbcd0"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pytz-deprecation-shim" version = "0.1.0.post0" @@ -1577,6 +1820,11 @@ files = [ "backports.zoneinfo" = {version = "*", markers = "python_version >= \"3.6\" and python_version < \"3.9\""} tzdata = {version = "*", markers = "python_version >= \"3.6\""} +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "pyyaml" version = "6.0" @@ -1627,6 +1875,11 @@ files = [ {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "qrcode" version = "7.4.2" @@ -1652,6 +1905,11 @@ maintainer = ["zest.releaser[recommended]"] pil = ["pillow (>=9.1.0)"] test = ["coverage", "pytest"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "requests" version = "2.28.2" @@ -1674,6 +1932,11 @@ urllib3 = ">=1.21.1,<1.27" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "rfc3986" version = "1.5.0" @@ -1692,6 +1955,11 @@ idna = {version = "*", optional = true, markers = "extra == \"idna2008\""} [package.extras] idna2008 = ["idna"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "rollbar" version = "0.16.3" @@ -1708,6 +1976,11 @@ files = [ requests = {version = ">=0.12.1", markers = "python_version >= \"3.6\""} six = ">=1.9.0" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "setuptools" version = "67.6.0" @@ -1725,6 +1998,11 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-g testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "six" version = "1.16.0" @@ -1737,6 +2015,11 @@ files = [ {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "smmap" version = "5.0.0" @@ -1749,6 +2032,11 @@ files = [ {file = "smmap-5.0.0.tar.gz", hash = "sha256:c840e62059cd3be204b0c9c9f74be2c09d5648eddd4580d9314c3ecde0b30936"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "sniffio" version = "1.3.0" @@ -1761,6 +2049,11 @@ files = [ {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "soupsieve" version = "2.4" @@ -1773,6 +2066,11 @@ files = [ {file = "soupsieve-2.4.tar.gz", hash = "sha256:e28dba9ca6c7c00173e34e4ba57448f0688bb681b7c5e8bf4971daafc093d69a"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "sqlalchemy" version = "1.4.41" @@ -1848,6 +2146,11 @@ postgresql-psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql", "pymysql (<1)"] sqlcipher = ["sqlcipher3-binary"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "sqlalchemy-database" version = "0.1.0" @@ -1868,6 +2171,11 @@ sqlalchemy2-stubs = ">=0.0.2a29" docs = ["mkdocs-material (>=8.3.8)", "mkdocstrings[python] (>=0.19.0)"] test = ["aiosqlite", "fastapi", "httpx", "pytest (>=6.2.4,<7.0.0)", "pytest-asyncio (>=0.17)", "pytest-cov", "sqlmodel"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "sqlalchemy2-stubs" version = "0.0.2a32" @@ -1883,6 +2191,11 @@ files = [ [package.dependencies] typing-extensions = ">=3.7.4" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "sqlmodel" version = "0.0.8" @@ -1900,6 +2213,11 @@ pydantic = ">=1.8.2,<2.0.0" SQLAlchemy = ">=1.4.17,<=1.4.41" sqlalchemy2-stubs = "*" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "sqlmodelx" version = "0.0.4" @@ -1918,6 +2236,11 @@ sqlmodel = ">=0.0.7" [package.extras] test = ["pytest (>=7.1.3)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "starlette" version = "0.26.1" @@ -1937,6 +2260,11 @@ typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\"" [package.extras] full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "tomli" version = "2.0.1" @@ -1949,6 +2277,11 @@ files = [ {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "tomlkit" version = "0.11.6" @@ -1961,6 +2294,11 @@ files = [ {file = "tomlkit-0.11.6.tar.gz", hash = "sha256:71b952e5721688937fb02cf9d354dbcf0785066149d2855e44531ebdd2b65d73"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "typer" version = "0.7.0" @@ -1982,6 +2320,11 @@ dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2 doc = ["cairosvg (>=2.5.2,<3.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pillow (>=9.3.0,<10.0.0)"] test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "rich (>=10.11.0,<13.0.0)", "shellingham (>=1.3.0,<2.0.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "typing-extensions" version = "4.5.0" @@ -1994,6 +2337,11 @@ files = [ {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "typing-inspect" version = "0.8.0" @@ -2010,6 +2358,11 @@ files = [ mypy-extensions = ">=0.3.0" typing-extensions = ">=3.7.4" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "tzdata" version = "2022.7" @@ -2022,6 +2375,11 @@ files = [ {file = "tzdata-2022.7.tar.gz", hash = "sha256:fe5f866eddd8b96e9fcba978f8e503c909b19ea7efda11e52e39494bad3a7bfa"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "tzlocal" version = "4.3" @@ -2042,6 +2400,11 @@ tzdata = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] devenv = ["black", "check-manifest", "flake8", "pyroma", "pytest (>=4.3)", "pytest-cov", "pytest-mock (>=3.3)", "zest.releaser"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "urllib3" version = "1.26.15" @@ -2059,6 +2422,11 @@ brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "uvicorn" version = "0.21.1" @@ -2078,6 +2446,11 @@ h11 = ">=0.8" [package.extras] standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "virtualenv" version = "20.21.0" @@ -2099,6 +2472,11 @@ platformdirs = ">=2.4,<4" docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=22.12)"] test = ["covdefaults (>=2.2.2)", "coverage (>=7.1)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23)", "pytest (>=7.2.1)", "pytest-env (>=0.8.1)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.10)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)"] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "websockets" version = "10.4" @@ -2178,6 +2556,11 @@ files = [ {file = "websockets-10.4.tar.gz", hash = "sha256:eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3"}, ] +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [[package]] name = "yarl" version = "1.8.2" @@ -2266,7 +2649,12 @@ files = [ idna = ">=2.0" multidict = ">=4.0" +[package.source] +type = "legacy" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" +reference = "mirrors" + [metadata] lock-version = "2.0" python-versions = "^3.8.1" -content-hash = "be4fc4bbfe9d756588e450414185427056988499f9d901d96d9245075cd8ac00" +content-hash = "d2662d3afa13a7c407eb0ec5f13aa02b5fcfb09296446e52a469eeb86cd75c8f" diff --git a/pyproject.toml b/pyproject.toml index 1957a31..82912a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,7 +17,6 @@ python = "^3.8.1" httpx = ">=0.23.0" beautifulsoup4 = ">=4.11.1" lxml = ">=4.9.2" -openpyxl = ">=3.0.10" aiohttp = ">=3.8.1" apscheduler = "^3.7.0" sqlalchemy = ">=1.4.39,<2.0.0" @@ -41,6 +40,13 @@ isort = "^5.11.4" pre-commit = "^2.21.0" pycln = "^2.1.2" + +[[tool.poetry.source]] +name = "mirrors" +url = "https://mirrors.bfsu.edu.cn/pypi/web/simple/" +default = true +secondary = false + [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" diff --git a/requirements.txt b/requirements.txt index 632a98d..2aa0818 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ +--index-url https://mirrors.bfsu.edu.cn/pypi/web/simple + aiofiles==23.1.0 ; python_full_version >= "3.8.1" and python_version < "4.0" aiohttp==3.8.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" aiosignal==1.3.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" @@ -8,15 +10,14 @@ async-timeout==4.0.2 ; python_full_version >= "3.8.1" and python_full_version < attrs==22.2.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" bcrypt==4.0.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -beautifulsoup4==4.12.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +beautifulsoup4==4.11.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" certifi==2022.12.7 ; python_full_version >= "3.8.1" and python_version < "4" charset-normalizer==3.1.0 ; python_full_version >= "3.8.1" and python_version < "4" click==8.1.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" colorama==0.4.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" and platform_system == "Windows" dnspython==2.3.0 ; python_full_version >= "3.8.1" and python_version < "4.0" email-validator==1.3.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -et-xmlfile==1.1.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -fastapi-amis-admin==0.5.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +fastapi-amis-admin==0.5.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" fastapi-user-auth==0.5.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" fastapi==0.95.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" frozenlist==1.3.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" @@ -30,7 +31,6 @@ idna==3.4 ; python_full_version >= "3.8.1" and python_version < "4" lxml==4.9.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" msgspec==0.13.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" multidict==6.0.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -openpyxl==3.1.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" passlib==1.7.4 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pillow==9.4.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" pydantic==1.10.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0"