diff --git a/src/dashboard/Dockerfile b/src/dashboard/Dockerfile index ecf33578a..93291d012 100644 --- a/src/dashboard/Dockerfile +++ b/src/dashboard/Dockerfile @@ -2,7 +2,7 @@ ARG IMAGE=python ARG TAG=3.10.12-slim-bullseye FROM ${IMAGE}:${TAG} -RUN apt-get update && apt-get install -y libssl-dev default-libmysqlclient-dev libffi-dev \ +RUN apt-get update && apt-get install -y libssl-dev libffi-dev \ build-essential libc6-dev libjpeg-dev zlib1g-dev vim procps default-mysql-client curl zip unzip # install kona-jdk maven diff --git a/src/dashboard/apigateway/apigateway/conf/default.py b/src/dashboard/apigateway/apigateway/conf/default.py index 0d8a34018..2622c8fc6 100644 --- a/src/dashboard/apigateway/apigateway/conf/default.py +++ b/src/dashboard/apigateway/apigateway/conf/default.py @@ -20,6 +20,7 @@ from typing import List from urllib.parse import quote +import pymysql from celery.schedules import crontab from django.core.exceptions import ImproperlyConfigured from django.utils.encoding import force_bytes @@ -30,6 +31,10 @@ from apigateway.conf.log_utils import build_logging_config from apigateway.conf.utils import get_default_keepalive_options +pymysql.install_as_MySQLdb() +# Patch version info to forcedly pass Django client check +pymysql.version_info = 1, 4, 2, "final", 0 + env = Env() # Build paths inside the project like this: os.path.join(BASE_DIR, ...) diff --git a/src/dashboard/apigateway/apigateway/tracing/instrumentor.py b/src/dashboard/apigateway/apigateway/tracing/instrumentor.py index df73ff2b4..7b1f234c9 100644 --- a/src/dashboard/apigateway/apigateway/tracing/instrumentor.py +++ b/src/dashboard/apigateway/apigateway/tracing/instrumentor.py @@ -161,11 +161,11 @@ def _instrument(self, **kwargs): print("otel instructment: celery") if getattr(settings, "OTEL_INSTRUMENT_DB_API", False): - import MySQLdb # noqa + import pymysql # noqa dbapi.wrap_connect( __name__, - MySQLdb, + pymysql.connect, "connect", "mysql", {"database": "db", "port": "port", "host": "host", "user": "user"}, diff --git a/src/dashboard/apigateway/requirements.txt b/src/dashboard/apigateway/requirements.txt index d01a97b67..ff6342656 100644 --- a/src/dashboard/apigateway/requirements.txt +++ b/src/dashboard/apigateway/requirements.txt @@ -60,7 +60,6 @@ jsonschema==4.18.0 ; python_version >= "3.10" and python_version < "3.11" kombu==4.6.11 ; python_version >= "3.10" and python_version < "3.11" lazy-object-proxy==1.10.0 ; python_version >= "3.10" and python_version < "3.11" markupsafe==2.1.5 ; python_version >= "3.10" and python_version < "3.11" -mysqlclient==2.1.1 ; python_version >= "3.10" and python_version < "3.11" openapi-schema-validator==0.6.0 ; python_version >= "3.10" and python_version < "3.11" openapi-spec-validator==0.7.1 ; python_version >= "3.10" and python_version < "3.11" opentelemetry-api==1.24.0 ; python_version >= "3.10" and python_version < "3.11" @@ -96,6 +95,7 @@ pycryptodomex==3.19.1 ; python_version >= "3.10" and python_version < "3.11" pydantic==1.9.2 ; python_version >= "3.10" and python_version < "3.11" pygments==2.17.2 ; python_version >= "3.10" and python_version < "3.11" pyjwt==1.7.1 ; python_version >= "3.10" and python_version < "3.11" +pymysql==1.1.1 ; python_version >= "3.10" and python_version < "3.11" pypi-simple==0.8.0 ; python_version >= "3.10" and python_version < "3.11" python-crontab==2.6.0 ; python_version >= "3.10" and python_version < "3.11" python-dateutil==2.8.1 ; python_version >= "3.10" and python_version < "3.11" diff --git a/src/dashboard/apigateway/requirements_dev.txt b/src/dashboard/apigateway/requirements_dev.txt index b44480218..25cfd6f51 100644 --- a/src/dashboard/apigateway/requirements_dev.txt +++ b/src/dashboard/apigateway/requirements_dev.txt @@ -85,7 +85,6 @@ matplotlib-inline==0.1.6 ; python_version >= "3.10" and python_version < "3.11" mdurl==0.1.2 ; python_version >= "3.10" and python_version < "3.11" mypy-extensions==1.0.0 ; python_version >= "3.10" and python_version < "3.11" mypy==1.9.0 ; python_version >= "3.10" and python_version < "3.11" -mysqlclient==2.1.1 ; python_version >= "3.10" and python_version < "3.11" nodeenv==1.6.0 ; python_version >= "3.10" and python_version < "3.11" nose==1.3.7 ; python_version >= "3.10" and python_version < "3.11" openapi-schema-validator==0.6.0 ; python_version >= "3.10" and python_version < "3.11" @@ -132,6 +131,7 @@ pycryptodomex==3.19.1 ; python_version >= "3.10" and python_version < "3.11" pydantic==1.9.2 ; python_version >= "3.10" and python_version < "3.11" pygments==2.17.2 ; python_version >= "3.10" and python_version < "3.11" pyjwt==1.7.1 ; python_version >= "3.10" and python_version < "3.11" +pymysql==1.1.1 ; python_version >= "3.10" and python_version < "3.11" pypi-simple==0.8.0 ; python_version >= "3.10" and python_version < "3.11" pyproject-api==1.6.1 ; python_version >= "3.10" and python_version < "3.11" pytest-benchmark==4.0.0 ; python_version >= "3.10" and python_version < "3.11" @@ -177,6 +177,7 @@ tox==4.14.1 ; python_version >= "3.10" and python_version < "3.11" traitlets==5.14.2 ; python_version >= "3.10" and python_version < "3.11" types-cachetools==5.3.0.7 ; python_version >= "3.10" and python_version < "3.11" types-docutils==0.20.0.20240317 ; python_version >= "3.10" and python_version < "3.11" +types-pymysql==1.1.0.20240524 ; python_version >= "3.10" and python_version < "3.11" types-python-dateutil==2.9.0.20240316 ; python_version >= "3.10" and python_version < "3.11" types-pytz==2024.1.0.20240203 ; python_version >= "3.10" and python_version < "3.11" types-pyyaml==6.0.12.20240311 ; python_version >= "3.10" and python_version < "3.11" diff --git a/src/dashboard/poetry.lock b/src/dashboard/poetry.lock index c6d525c84..e51ff6106 100644 --- a/src/dashboard/poetry.lock +++ b/src/dashboard/poetry.lock @@ -2276,27 +2276,6 @@ type = "legacy" url = "https://mirrors.cloud.tencent.com/pypi/simple" reference = "tencent" -[[package]] -name = "mysqlclient" -version = "2.1.1" -description = "Python interface to MySQL" -optional = false -python-versions = ">=3.5" -files = [ - {file = "mysqlclient-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:c1ed71bd6244993b526113cca3df66428609f90e4652f37eb51c33496d478b37"}, - {file = "mysqlclient-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:c812b67e90082a840efb82a8978369e6e69fc62ce1bda4ca8f3084a9d862308b"}, - {file = "mysqlclient-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:0d1cd3a5a4d28c222fa199002810e8146cffd821410b67851af4cc80aeccd97c"}, - {file = "mysqlclient-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b355c8b5a7d58f2e909acdbb050858390ee1b0e13672ae759e5e784110022994"}, - {file = "mysqlclient-2.1.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:996924f3483fd36a34a5812210c69e71dea5a3d5978d01199b78b7f6d485c855"}, - {file = "mysqlclient-2.1.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:dea88c8d3f5a5d9293dfe7f087c16dd350ceb175f2f6631c9cf4caf3e19b7a96"}, - {file = "mysqlclient-2.1.1.tar.gz", hash = "sha256:828757e419fb11dd6c5ed2576ec92c3efaa93a0f7c39e263586d1ee779c3d782"}, -] - -[package.source] -type = "legacy" -url = "https://mirrors.cloud.tencent.com/pypi/simple" -reference = "tencent" - [[package]] name = "nodeenv" version = "1.6.0" @@ -3384,6 +3363,26 @@ type = "legacy" url = "https://mirrors.cloud.tencent.com/pypi/simple" reference = "tencent" +[[package]] +name = "pymysql" +version = "1.1.1" +description = "Pure Python MySQL Driver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "PyMySQL-1.1.1-py3-none-any.whl", hash = "sha256:4de15da4c61dc132f4fb9ab763063e693d521a80fd0e87943b9a453dd4c19d6c"}, + {file = "pymysql-1.1.1.tar.gz", hash = "sha256:e127611aaf2b417403c60bf4dc570124aeb4a57f5f37b8e95ae399a42f904cd0"}, +] + +[package.extras] +ed25519 = ["PyNaCl (>=1.4.0)"] +rsa = ["cryptography"] + +[package.source] +type = "legacy" +url = "https://mirrors.cloud.tencent.com/pypi/simple" +reference = "tencent" + [[package]] name = "pypi-simple" version = "0.8.0" @@ -4546,6 +4545,22 @@ type = "legacy" url = "https://mirrors.cloud.tencent.com/pypi/simple" reference = "tencent" +[[package]] +name = "types-pymysql" +version = "1.1.0.20240524" +description = "Typing stubs for PyMySQL" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-PyMySQL-1.1.0.20240524.tar.gz", hash = "sha256:93058fef2077c407e29bdcd1a7dfbbf06a59324a5440df30dd002f572199ac17"}, + {file = "types_PyMySQL-1.1.0.20240524-py3-none-any.whl", hash = "sha256:8be5be228bf6376f9055ec03bec0dfa6f1a84163f9a89305db446f0b31f87be3"}, +] + +[package.source] +type = "legacy" +url = "https://mirrors.cloud.tencent.com/pypi/simple" +reference = "tencent" + [[package]] name = "types-python-dateutil" version = "2.9.0.20240316" @@ -5008,4 +5023,4 @@ reference = "tencent" [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.11" -content-hash = "adb2b1a7a81de417388863a5c7cfed4424cf94b75ee0b83d678dc7eb98402555" +content-hash = "00e8f92de791e1f229a049ffd5fa770d876207646031fa612716d4dcbfa53f22" diff --git a/src/dashboard/pyproject.toml b/src/dashboard/pyproject.toml index 67064909e..e1c89719c 100644 --- a/src/dashboard/pyproject.toml +++ b/src/dashboard/pyproject.toml @@ -8,7 +8,7 @@ authors = [] python = ">=3.10,<3.11" django = "3.2.25" djangorestframework = "3.14.0" -mysqlclient = "2.1.1" +pymysql = "1.1.1" # celery = "5.1.2" celery = "4.4.7" # django-celery-beat = "2.2.1" @@ -110,6 +110,7 @@ types-cachetools = "5.3.0.7" types-pytz = "2024.1.0.20240203" types-docutils = "0.20.0.20240317" types-PyYAML = "6.0.12.20240311" +types-PyMySQL = "1.1.0.20240524" import-linter = "^2.0" [[tool.poetry.source]] diff --git a/src/esb/Dockerfile b/src/esb/Dockerfile index 5d86e03bf..d438aa6c2 100644 --- a/src/esb/Dockerfile +++ b/src/esb/Dockerfile @@ -2,7 +2,7 @@ ARG IMAGE=python ARG TAG=3.6.15-slim-buster FROM ${IMAGE}:${TAG} -RUN apt-get update && apt-get install -y libssl-dev default-libmysqlclient-dev libffi-dev \ +RUN apt-get update && apt-get install -y libssl-dev libffi-dev \ libc6-dev build-essential vim procps ADD build /app @@ -12,4 +12,4 @@ ARG PYPI="https://pypi.org/simple/" RUN pip config set global.index-url "${PYPI}" RUN pip install -r requirements.txt -CMD ["bash", "/app/bin/start.sh"] \ No newline at end of file +CMD ["bash", "/app/bin/start.sh"] diff --git a/src/esb/esb/esb/__init__.py b/src/esb/esb/esb/__init__.py index 2fb2c0848..ada39c305 100644 --- a/src/esb/esb/esb/__init__.py +++ b/src/esb/esb/esb/__init__.py @@ -19,9 +19,9 @@ from django.conf import settings -from common.djmysql_pool import patch_mysql - if getattr(settings, "MYSQL_POOL_ENABLED", True): - patch_mysql(pool_options=settings.DJ_POOL_OPTIONS) + # 2024-09-24 use pymysql instead of mysql-client, so can't patch mysql + pass + # patch_mysql(pool_options=settings.DJ_POOL_OPTIONS) default_app_config = "esb.apps.ESBAppConfig" diff --git a/src/esb/esb/requirements.txt b/src/esb/esb/requirements.txt index 4588de36a..2e4a1c1cc 100644 --- a/src/esb/esb/requirements.txt +++ b/src/esb/esb/requirements.txt @@ -29,7 +29,6 @@ jinja2==2.11.3 ; python_full_version >= "3.6.2" and python_version < "3.8" jsonfield==2.0.1 ; python_full_version >= "3.6.2" and python_version < "3.8" markdown==3.3.7 ; python_full_version >= "3.6.2" and python_version < "3.8" markupsafe==1.1.1 ; python_full_version >= "3.6.2" and python_version < "3.8" -mysqlclient==2.0.1 ; python_full_version >= "3.6.2" and python_version < "3.8" packaging==21.2 ; python_full_version >= "3.6.2" and python_version < "3.8" portalocker==2.7.0 ; python_full_version >= "3.6.2" and python_version < "3.8" prometheus-client==0.12.0 ; python_full_version >= "3.6.2" and python_version < "3.8" @@ -38,6 +37,7 @@ pycparser==2.20 ; python_full_version >= "3.6.2" and python_version < "3.8" pydantic==1.8.2 ; python_full_version >= "3.6.2" and python_version < "3.8" pygments==2.1.3 ; python_full_version >= "3.6.2" and python_version < "3.8" pyjwt==1.7.1 ; python_full_version >= "3.6.2" and python_version < "3.8" +pymysql==1.0.2 ; python_full_version >= "3.6.2" and python_version < "3.8" pyparsing==2.4.7 ; python_full_version >= "3.6.2" and python_version < "3.8" pypi-simple==0.8.0 ; python_full_version >= "3.6.2" and python_version < "3.8" python-dateutil==2.8.1 ; python_full_version >= "3.6.2" and python_version < "3.8" diff --git a/src/esb/esb/requirements_dev.txt b/src/esb/esb/requirements_dev.txt index 96d3d7d2b..05345d03e 100644 --- a/src/esb/esb/requirements_dev.txt +++ b/src/esb/esb/requirements_dev.txt @@ -18,7 +18,7 @@ cffi==1.15.0 ; python_full_version >= "3.6.2" and python_version < "3.8" cfgv==3.3.1 ; python_full_version >= "3.6.2" and python_version < "3.8" charset-normalizer==2.0.12 ; python_full_version >= "3.6.2" and python_version < "3.8" click==8.0.3 ; python_full_version >= "3.6.2" and python_version < "3.8" -colorama==0.4.4 ; python_full_version >= "3.6.2" and python_version < "3.8" and (sys_platform == "win32" or platform_system == "Windows") +colorama==0.4.4 ; python_full_version >= "3.6.2" and python_version < "3.8" and sys_platform == "win32" or python_full_version >= "3.6.2" and python_version < "3.8" and platform_system == "Windows" concurrent-log-handler==0.9.24 ; python_full_version >= "3.6.2" and python_version < "3.8" coverage==4.5.4 ; python_full_version >= "3.6.2" and python_version < "3.8" cryptography==3.4.8 ; python_full_version >= "3.6.2" and python_version < "3.8" @@ -54,7 +54,6 @@ mock==3.0.5 ; python_full_version >= "3.6.2" and python_version < "3.8" more-itertools==8.10.0 ; python_full_version >= "3.6.2" and python_version < "3.8" mypy-extensions==0.4.3 ; python_full_version >= "3.6.2" and python_version < "3.8" mypy==0.910 ; python_full_version >= "3.6.2" and python_version < "3.8" -mysqlclient==2.0.1 ; python_full_version >= "3.6.2" and python_version < "3.8" nodeenv==1.6.0 ; python_full_version >= "3.6.2" and python_version < "3.8" packaging==21.2 ; python_full_version >= "3.6.2" and python_version < "3.8" parso==0.8.2 ; python_full_version >= "3.6.2" and python_version < "3.8" @@ -77,6 +76,7 @@ pydantic==1.8.2 ; python_full_version >= "3.6.2" and python_version < "3.8" pyflakes==2.2.0 ; python_full_version >= "3.6.2" and python_version < "3.8" pygments==2.1.3 ; python_full_version >= "3.6.2" and python_version < "3.8" pyjwt==1.7.1 ; python_full_version >= "3.6.2" and python_version < "3.8" +pymysql==1.0.2 ; python_full_version >= "3.6.2" and python_version < "3.8" pyparsing==2.4.7 ; python_full_version >= "3.6.2" and python_version < "3.8" pypi-simple==0.8.0 ; python_full_version >= "3.6.2" and python_version < "3.8" pytest-benchmark==3.2.3 ; python_full_version >= "3.6.2" and python_version < "3.8" @@ -107,6 +107,7 @@ typed-ast==1.4.3 ; python_full_version >= "3.6.2" and python_version < "3.8" types-cachetools==5.3.0.5 ; python_full_version >= "3.6.2" and python_version < "3.8" types-chardet==5.0.4.6 ; python_full_version >= "3.6.2" and python_version < "3.8" types-markdown==3.4.2.9 ; python_full_version >= "3.6.2" and python_version < "3.8" +types-pymysql==1.1.0.1 ; python_full_version >= "3.6.2" and python_version < "3.8" types-pyyaml==6.0.12.9 ; python_full_version >= "3.6.2" and python_version < "3.8" types-requests==2.30.0.0 ; python_full_version >= "3.6.2" and python_version < "3.8" types-urllib3==1.26.25.13 ; python_full_version >= "3.6.2" and python_version < "3.8" diff --git a/src/esb/poetry.lock b/src/esb/poetry.lock index 1eb54f0cd..90dd09876 100644 --- a/src/esb/poetry.lock +++ b/src/esb/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry and should not be changed by hand. [[package]] name = "apigw-manager" version = "1.0.1" description = "" +category = "main" optional = false python-versions = ">=3.6.1,<4.0.0" files = [ @@ -30,6 +31,7 @@ reference = "tencent" name = "appdirs" version = "1.4.4" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = "*" files = [ @@ -46,6 +48,7 @@ reference = "tencent" name = "appnope" version = "0.1.2" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = "*" files = [ @@ -62,6 +65,7 @@ reference = "tencent" name = "arrow" version = "0.14.4" description = "Better dates & times for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -81,6 +85,7 @@ reference = "tencent" name = "atomicwrites" version = "1.4.0" description = "Atomic file writes." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -97,6 +102,7 @@ reference = "tencent" name = "attrs" version = "21.2.0" description = "Classes Without Boilerplate" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -119,6 +125,7 @@ reference = "tencent" name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "dev" optional = false python-versions = "*" files = [ @@ -135,6 +142,7 @@ reference = "tencent" name = "backports.entry-points-selectable" version = "1.1.1" description = "Compatibility shim providing selectable entry points for older implementations" +category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -158,6 +166,7 @@ reference = "tencent" name = "beautifulsoup4" version = "4.10.0" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">3.0.0" files = [ @@ -181,6 +190,7 @@ reference = "tencent" name = "bkapi-bk-apigateway" version = "1.0.3" description = "蓝鲸API网关" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,<4.0,>=2.7" files = [ @@ -202,6 +212,7 @@ reference = "tencent" name = "bkapi-client-core" version = "1.1.0" description = "" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -225,6 +236,7 @@ reference = "tencent" name = "black" version = "20.8b1" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -255,6 +267,7 @@ reference = "tencent" name = "blue-krill" version = "1.0.5" description = "Tools and common packages for blueking paas" +category = "main" optional = false python-versions = ">=3.6.2,<3.8" files = [ @@ -285,6 +298,7 @@ reference = "tencent" name = "cachetools" version = "4.2.4" description = "Extensible memoizing collections and decorators" +category = "main" optional = false python-versions = "~=3.5" files = [ @@ -301,6 +315,7 @@ reference = "tencent" name = "certifi" version = "2021.10.8" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = "*" files = [ @@ -317,6 +332,7 @@ reference = "tencent" name = "cffi" version = "1.15.0" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -384,6 +400,7 @@ reference = "tencent" name = "cfgv" version = "3.3.1" description = "Validate configuration and produce human readable error messages." +category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -400,6 +417,7 @@ reference = "tencent" name = "charset-normalizer" version = "2.0.12" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -419,6 +437,7 @@ reference = "tencent" name = "click" version = "8.0.3" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -439,6 +458,7 @@ reference = "tencent" name = "colorama" version = "0.4.4" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -455,6 +475,7 @@ reference = "tencent" name = "concurrent-log-handler" version = "0.9.24" description = "RotatingFileHandler replacement with concurrency, gzip and Windows support" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -477,6 +498,7 @@ reference = "tencent" name = "coverage" version = "4.5.4" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4" files = [ @@ -523,6 +545,7 @@ reference = "tencent" name = "cryptography" version = "3.4.8" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -567,6 +590,7 @@ reference = "tencent" name = "curlify" version = "2.2.1" description = "Library to convert python requests object to curl command." +category = "main" optional = false python-versions = "*" files = [ @@ -585,6 +609,7 @@ reference = "tencent" name = "dataclasses" version = "0.7" description = "A backport of the dataclasses module for Python 3.6" +category = "main" optional = false python-versions = ">=3.6, <3.7" files = [ @@ -601,6 +626,7 @@ reference = "tencent" name = "decorator" version = "5.1.0" description = "Decorators for Humans" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -617,6 +643,7 @@ reference = "tencent" name = "distlib" version = "0.3.3" description = "Distribution utilities" +category = "dev" optional = false python-versions = "*" files = [ @@ -633,6 +660,7 @@ reference = "tencent" name = "django" version = "1.11.29" description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design." +category = "main" optional = false python-versions = "*" files = [ @@ -656,6 +684,7 @@ reference = "tencent" name = "django-dynamic-fixture" version = "3.1.0" description = "A full library to create dynamic model instances for testing purposes." +category = "dev" optional = false python-versions = "*" files = [ @@ -674,6 +703,7 @@ reference = "tencent" name = "django-environ" version = "0.4.5" description = "Django-environ allows you to utilize 12factor inspired environment variables to configure your Django application." +category = "main" optional = false python-versions = "*" files = [ @@ -690,6 +720,7 @@ reference = "tencent" name = "django-prometheus" version = "2.1.0" description = "Django middlewares to monitor your application with Prometheus.io." +category = "main" optional = false python-versions = "*" files = [ @@ -709,6 +740,7 @@ reference = "tencent" name = "djangorestframework" version = "3.11.2" description = "Web APIs for Django, made easy." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -728,6 +760,7 @@ reference = "tencent" name = "faker" version = "8.1.1" description = "Faker is a Python package that generates fake data for you." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -748,6 +781,7 @@ reference = "tencent" name = "filelock" version = "3.3.2" description = "A platform independent file lock." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -768,6 +802,7 @@ reference = "tencent" name = "flake8" version = "3.8.3" description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" files = [ @@ -790,6 +825,7 @@ reference = "tencent" name = "future" version = "0.18.2" description = "Clean single-source support for Python 3 and 2" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -805,6 +841,7 @@ reference = "tencent" name = "gevent" version = "1.4.0" description = "Coroutine-based network library" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -852,6 +889,7 @@ reference = "tencent" name = "greenlet" version = "0.4.16" description = "Lightweight in-process concurrent programming" +category = "main" optional = false python-versions = "*" files = [ @@ -883,6 +921,7 @@ reference = "tencent" name = "gunicorn" version = "19.9.0" description = "WSGI HTTP Server for UNIX" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*" files = [ @@ -904,6 +943,7 @@ reference = "tencent" name = "identify" version = "2.3.5" description = "File identification library for Python" +category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -923,6 +963,7 @@ reference = "tencent" name = "idna" version = "2.8" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -939,6 +980,7 @@ reference = "tencent" name = "importlib-metadata" version = "4.8.3" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -964,6 +1006,7 @@ reference = "tencent" name = "importlib-resources" version = "5.4.0" description = "Read resources from Python packages" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -987,6 +1030,7 @@ reference = "tencent" name = "ipython" version = "7.16.1" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1027,6 +1071,7 @@ reference = "tencent" name = "ipython-genutils" version = "0.2.0" description = "Vestigial utilities from IPython" +category = "dev" optional = false python-versions = "*" files = [ @@ -1043,6 +1088,7 @@ reference = "tencent" name = "jedi" version = "0.18.0" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1066,6 +1112,7 @@ reference = "tencent" name = "jinja2" version = "2.11.3" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1088,6 +1135,7 @@ reference = "tencent" name = "jsonfield" version = "2.0.1" description = "A reusable Django field that allows you to store validated JSON in your model." +category = "main" optional = false python-versions = "*" files = [ @@ -1107,6 +1155,7 @@ reference = "tencent" name = "markdown" version = "3.3.7" description = "Python implementation of Markdown." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1129,6 +1178,7 @@ reference = "tencent" name = "markupsafe" version = "1.1.1" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*" files = [ @@ -1195,6 +1245,7 @@ reference = "tencent" name = "mccabe" version = "0.6.1" description = "McCabe checker, plugin for flake8" +category = "dev" optional = false python-versions = "*" files = [ @@ -1211,6 +1262,7 @@ reference = "tencent" name = "mock" version = "3.0.5" description = "Rolling backport of unittest.mock for all Pythons" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1235,6 +1287,7 @@ reference = "tencent" name = "more-itertools" version = "8.10.0" description = "More routines for operating on iterables, beyond itertools" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1251,6 +1304,7 @@ reference = "tencent" name = "mypy" version = "0.910" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1298,6 +1352,7 @@ reference = "tencent" name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" optional = false python-versions = "*" files = [ @@ -1310,28 +1365,11 @@ type = "legacy" url = "https://mirrors.cloud.tencent.com/pypi/simple" reference = "tencent" -[[package]] -name = "mysqlclient" -version = "2.0.1" -description = "Python interface to MySQL" -optional = false -python-versions = ">=3.5" -files = [ - {file = "mysqlclient-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:edd42ccaa444b00702d5374b2f5f7585c9d0ce201917f15339f1c3cf91c1b1ed"}, - {file = "mysqlclient-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:3f39855a4ad22805361e782cc4d1010ac74796225fa2d1c03cc16673ccdc983a"}, - {file = "mysqlclient-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:a6b5648f648b16335e3b1aaec93dc3fcc81a9a661180e306936437cc522c810b"}, - {file = "mysqlclient-2.0.1.tar.gz", hash = "sha256:fb2f75aea14722390d2d8ddf384ad99da708c707a96656210a7be8af20a2c5e5"}, -] - -[package.source] -type = "legacy" -url = "https://mirrors.cloud.tencent.com/pypi/simple" -reference = "tencent" - [[package]] name = "nodeenv" version = "1.6.0" description = "Node.js virtual environment builder" +category = "dev" optional = false python-versions = "*" files = [ @@ -1348,6 +1386,7 @@ reference = "tencent" name = "packaging" version = "21.2" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1367,6 +1406,7 @@ reference = "tencent" name = "parso" version = "0.8.2" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1387,6 +1427,7 @@ reference = "tencent" name = "pathspec" version = "0.9.0" description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -1403,6 +1444,7 @@ reference = "tencent" name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "dev" optional = false python-versions = "*" files = [ @@ -1422,6 +1464,7 @@ reference = "tencent" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" optional = false python-versions = "*" files = [ @@ -1438,6 +1481,7 @@ reference = "tencent" name = "platformdirs" version = "2.4.0" description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1458,6 +1502,7 @@ reference = "tencent" name = "pluggy" version = "0.13.1" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1480,6 +1525,7 @@ reference = "tencent" name = "portalocker" version = "2.7.0" description = "Wraps the portalocker recipe for easy usage" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1504,6 +1550,7 @@ reference = "tencent" name = "pre-commit" version = "2.11.1" description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" optional = false python-versions = ">=3.6.1" files = [ @@ -1530,6 +1577,7 @@ reference = "tencent" name = "prometheus-client" version = "0.12.0" description = "Python client for the Prometheus monitoring system." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1549,6 +1597,7 @@ reference = "tencent" name = "prompt-toolkit" version = "3.0.22" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -1568,6 +1617,7 @@ reference = "tencent" name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -1584,6 +1634,7 @@ reference = "tencent" name = "py" version = "1.11.0" description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1600,6 +1651,7 @@ reference = "tencent" name = "py-cpuinfo" version = "8.0.0" description = "Get CPU info with pure Python 2 & 3" +category = "dev" optional = false python-versions = "*" files = [ @@ -1615,6 +1667,7 @@ reference = "tencent" name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" +category = "main" optional = false python-versions = "*" files = [ @@ -1631,6 +1684,7 @@ reference = "tencent" name = "pycodestyle" version = "2.6.0" description = "Python style guide checker" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1647,6 +1701,7 @@ reference = "tencent" name = "pycparser" version = "2.20" description = "C parser in Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1663,6 +1718,7 @@ reference = "tencent" name = "pydantic" version = "1.8.2" description = "Data validation and settings management using python 3.6 type hinting" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1707,6 +1763,7 @@ reference = "tencent" name = "pyflakes" version = "2.2.0" description = "passive checker of Python programs" +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1723,6 +1780,7 @@ reference = "tencent" name = "pygments" version = "2.1.3" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = "*" files = [ @@ -1739,6 +1797,7 @@ reference = "tencent" name = "pyjwt" version = "1.7.1" description = "JSON Web Token implementation in Python" +category = "main" optional = false python-versions = "*" files = [ @@ -1756,10 +1815,32 @@ type = "legacy" url = "https://mirrors.cloud.tencent.com/pypi/simple" reference = "tencent" +[[package]] +name = "pymysql" +version = "1.0.2" +description = "Pure Python MySQL Driver" +category = "main" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyMySQL-1.0.2-py3-none-any.whl", hash = "sha256:41fc3a0c5013d5f039639442321185532e3e2c8924687abe6537de157d403641"}, + {file = "PyMySQL-1.0.2.tar.gz", hash = "sha256:816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36"}, +] + +[package.extras] +ed25519 = ["PyNaCl (>=1.4.0)"] +rsa = ["cryptography"] + +[package.source] +type = "legacy" +url = "https://mirrors.cloud.tencent.com/pypi/simple" +reference = "tencent" + [[package]] name = "pyparsing" version = "2.4.7" description = "Python parsing module" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1776,6 +1857,7 @@ reference = "tencent" name = "pypi-simple" version = "0.8.0" description = "PyPI Simple Repository API client library" +category = "main" optional = false python-versions = "~=3.6" files = [ @@ -1797,6 +1879,7 @@ reference = "tencent" name = "pytest" version = "5.4.3" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1828,6 +1911,7 @@ reference = "tencent" name = "pytest-benchmark" version = "3.2.3" description = "A ``pytest`` fixture for benchmarking code. It will group the tests into rounds that are calibrated to the chosen timer. See calibration_ and FAQ_." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1853,6 +1937,7 @@ reference = "tencent" name = "pytest-cov" version = "2.10.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1876,6 +1961,7 @@ reference = "tencent" name = "pytest-django" version = "3.9.0" description = "A Django plugin for pytest." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1899,6 +1985,7 @@ reference = "tencent" name = "pytest-mock" version = "3.3.1" description = "Thin-wrapper around the mock package for easier use with pytest" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -1921,6 +2008,7 @@ reference = "tencent" name = "python-dateutil" version = "2.8.1" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -1940,6 +2028,7 @@ reference = "tencent" name = "python-editor" version = "1.0.4" description = "Programmatically open an editor, capture the result." +category = "main" optional = false python-versions = "*" files = [ @@ -1957,6 +2046,7 @@ reference = "tencent" name = "pytz" version = "2016.6.1" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -1975,6 +2065,7 @@ reference = "tencent" name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ @@ -2003,6 +2094,7 @@ reference = "tencent" name = "pyyaml" version = "5.4.1" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2046,6 +2138,7 @@ reference = "tencent" name = "regex" version = "2021.11.2" description = "Alternative regular expression module, to replace re." +category = "dev" optional = false python-versions = "*" files = [ @@ -2109,6 +2202,7 @@ reference = "tencent" name = "requests" version = "2.27.1" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -2135,6 +2229,7 @@ reference = "tencent" name = "responses" version = "0.10.14" description = "A utility library for mocking out the `requests` Python library." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2158,6 +2253,7 @@ reference = "tencent" name = "ruff" version = "0.0.277" description = "An extremely fast Python linter, written in Rust." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2189,6 +2285,7 @@ reference = "tencent" name = "setuptools" version = "57.5.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2209,6 +2306,7 @@ reference = "tencent" name = "six" version = "1.15.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2225,6 +2323,7 @@ reference = "tencent" name = "soupsieve" version = "2.3" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2241,6 +2340,7 @@ reference = "tencent" name = "sqlalchemy" version = "1.4.29" description = "Database Abstraction Library" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -2283,7 +2383,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (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\")"} +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" 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\")"} importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [package.extras] @@ -2316,6 +2416,7 @@ reference = "tencent" name = "tencent-apigateway-common" version = "0.1.11" description = "" +category = "main" optional = false python-versions = ">=3.6.2,<3.8" files = [ @@ -2339,6 +2440,7 @@ reference = "tencent" name = "text-unidecode" version = "1.3" description = "The most basic Text::Unidecode port" +category = "dev" optional = false python-versions = "*" files = [ @@ -2355,6 +2457,7 @@ reference = "tencent" name = "thrift" version = "0.10.0" description = "Python bindings for the Apache Thrift RPC system" +category = "main" optional = false python-versions = "*" files = [ @@ -2379,6 +2482,7 @@ reference = "tencent" name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -2395,6 +2499,7 @@ reference = "tencent" name = "tox" version = "3.24.4" description = "tox is a generic virtualenv management and test command line tool" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2426,6 +2531,7 @@ reference = "tencent" name = "traitlets" version = "4.3.3" description = "Traitlets Python config system" +category = "dev" optional = false python-versions = "*" files = [ @@ -2450,6 +2556,7 @@ reference = "tencent" name = "typed-ast" version = "1.4.3" description = "a fork of Python 2 and 3 ast modules with type comment support" +category = "dev" optional = false python-versions = "*" files = [ @@ -2494,6 +2601,7 @@ reference = "tencent" name = "types-cachetools" version = "5.3.0.5" description = "Typing stubs for cachetools" +category = "dev" optional = false python-versions = "*" files = [ @@ -2510,6 +2618,7 @@ reference = "tencent" name = "types-chardet" version = "5.0.4.6" description = "Typing stubs for chardet" +category = "dev" optional = false python-versions = "*" files = [ @@ -2526,6 +2635,7 @@ reference = "tencent" name = "types-markdown" version = "3.4.2.9" description = "Typing stubs for Markdown" +category = "dev" optional = false python-versions = "*" files = [ @@ -2538,10 +2648,28 @@ type = "legacy" url = "https://mirrors.cloud.tencent.com/pypi/simple" reference = "tencent" +[[package]] +name = "types-pymysql" +version = "1.1.0.1" +description = "Typing stubs for PyMySQL" +category = "dev" +optional = false +python-versions = "*" +files = [ + {file = "types-PyMySQL-1.1.0.1.tar.gz", hash = "sha256:72bdaecb88de4a30bc3e1842e1d4522ceb3c4b2e883a6a2a7a7162775dd27b93"}, + {file = "types_PyMySQL-1.1.0.1-py3-none-any.whl", hash = "sha256:9aec9ee0453314d477ef26e5832b4a992bc4cc3557358d62b0fe4af760a7728f"}, +] + +[package.source] +type = "legacy" +url = "https://mirrors.cloud.tencent.com/pypi/simple" +reference = "tencent" + [[package]] name = "types-pyyaml" version = "6.0.12.9" description = "Typing stubs for PyYAML" +category = "dev" optional = false python-versions = "*" files = [ @@ -2558,6 +2686,7 @@ reference = "tencent" name = "types-requests" version = "2.30.0.0" description = "Typing stubs for requests" +category = "dev" optional = false python-versions = "*" files = [ @@ -2577,6 +2706,7 @@ reference = "tencent" name = "types-urllib3" version = "1.26.25.13" description = "Typing stubs for urllib3" +category = "dev" optional = false python-versions = "*" files = [ @@ -2593,6 +2723,7 @@ reference = "tencent" name = "typing-extensions" version = "3.10.0.2" description = "Backported and Experimental Type Hints for Python 3.5+" +category = "main" optional = false python-versions = "*" files = [ @@ -2610,6 +2741,7 @@ reference = "tencent" name = "urllib3" version = "1.25.11" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" files = [ @@ -2631,6 +2763,7 @@ reference = "tencent" name = "virtualenv" version = "20.10.0" description = "Virtual Python Environment builder" +category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -2660,6 +2793,7 @@ reference = "tencent" name = "watchdog" version = "1.0.2" description = "Filesystem events monitoring" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2694,6 +2828,7 @@ reference = "tencent" name = "wcwidth" version = "0.2.5" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -2710,6 +2845,7 @@ reference = "tencent" name = "zipp" version = "3.6.0" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2729,4 +2865,4 @@ reference = "tencent" [metadata] lock-version = "2.0" python-versions = "~3.6.2 || ~3.7" -content-hash = "16d68c7f015c8f48a8eb44e853f549484fcca1b77273dfa215b7359937ab201a" +content-hash = "b032436104faf0af2dde11242eb30196aaa8d431df6bb424a6912100c6c0d131" diff --git a/src/esb/pyproject.toml b/src/esb/pyproject.toml index 44761dc09..a928fa507 100644 --- a/src/esb/pyproject.toml +++ b/src/esb/pyproject.toml @@ -19,7 +19,7 @@ pyasn1 = "0.4.8" pycparser = "2.20" pygments = "2.1.3" pyjwt = "1.7.1" -mysqlclient = "2.0.1" +pymysql = "1.0.2" python-dateutil = "2.8.1" pytz = "2016.6.1" six = "1.15.0" @@ -62,6 +62,7 @@ types-requests = "^2.28.11.16" types-cachetools = "^5.3.0.4" types-Markdown = "3.4.2.9" types-PyYAML = "6.0.12.9" +types-PyMySQL = "1.1.0.1" types-chardet = "5.0.4.6" ruff = {version = "^0.0.277", python = "~3.7.0"}