diff --git a/backend/app/admin/tests/api_v1/test_auth.py b/backend/app/admin/tests/api_v1/test_auth.py index f74b8807..57511c39 100644 --- a/backend/app/admin/tests/api_v1/test_auth.py +++ b/backend/app/admin/tests/api_v1/test_auth.py @@ -2,10 +2,8 @@ # -*- coding: utf-8 -*- from starlette.testclient import TestClient -from backend.core.conf import settings - def test_logout(client: TestClient, token_headers: dict[str, str]) -> None: - response = client.post(f'{settings.FASTAPI_API_V1_PATH}/auth/logout', headers=token_headers) + response = client.post('/auth/logout', headers=token_headers) assert response.status_code == 200 assert response.json()['code'] == 200 diff --git a/backend/app/admin/tests/conftest.py b/backend/app/admin/tests/conftest.py index 04a2fb52..4f20e722 100644 --- a/backend/app/admin/tests/conftest.py +++ b/backend/app/admin/tests/conftest.py @@ -1,30 +1,41 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -from typing import Dict, Generator +from typing import Generator import pytest from starlette.testclient import TestClient from backend.app.admin.tests.utils.db_mysql import override_get_db -from backend.app.admin.tests.utils.get_headers import get_token_headers +from backend.core.conf import settings from backend.database.db_mysql import get_db from backend.main import app +# 重载数据库 app.dependency_overrides[get_db] = override_get_db -# Test user +# Test data PYTEST_USERNAME = 'admin' PYTEST_PASSWORD = '123456' +PYTEST_BASE_URL = f'http://testserver{settings.FASTAPI_API_V1_PATH}' @pytest.fixture(scope='module') def client() -> Generator: - with TestClient(app) as c: + with TestClient(app, base_url=PYTEST_BASE_URL) as c: yield c @pytest.fixture(scope='module') -def token_headers(client: TestClient) -> Dict[str, str]: - return get_token_headers(client=client, username=PYTEST_USERNAME, password=PYTEST_PASSWORD) +def token_headers(client: TestClient) -> dict[str, str]: + params = { + 'username': PYTEST_USERNAME, + 'password': PYTEST_PASSWORD, + } + response = client.post('/auth/login/swagger', params=params) + response.raise_for_status() + token_type = response.json()['token_type'] + access_token = response.json()['access_token'] + headers = {'Authorization': f'{token_type} {access_token}'} + return headers diff --git a/backend/app/admin/tests/utils/db_mysql.py b/backend/app/admin/tests/utils/db_mysql.py index 77740319..9da4112f 100644 --- a/backend/app/admin/tests/utils/db_mysql.py +++ b/backend/app/admin/tests/utils/db_mysql.py @@ -5,13 +5,11 @@ from backend.core.conf import settings from backend.database.db_mysql import create_engine_and_session -TEST_SQLALCHEMY_DATABASE_URL = ( +_, test_async_db_session = create_engine_and_session( f'mysql+asyncmy://{settings.MYSQL_USER}:{settings.MYSQL_PASSWORD}@{settings.MYSQL_HOST}:' f'{settings.MYSQL_PORT}/{settings.MYSQL_DATABASE}_test?charset={settings.MYSQL_CHARSET}' ) -_, test_async_db_session = create_engine_and_session(TEST_SQLALCHEMY_DATABASE_URL) - async def override_get_db() -> AsyncSession: """session 生成器""" diff --git a/backend/app/admin/tests/utils/get_headers.py b/backend/app/admin/tests/utils/get_headers.py deleted file mode 100644 index 59a2f030..00000000 --- a/backend/app/admin/tests/utils/get_headers.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env from typing import Dict -from starlette.testclient import TestClient - -from backend.core.conf import settings - - -def get_token_headers(client: TestClient, username: str, password: str) -> dict[str, str]: - data = { - 'username': username, - 'password': password, - } - response = client.post(f'{settings.FASTAPI_API_V1_PATH}/auth/login/swagger', params=data) - response.raise_for_status() - token_type = response.json()['token_type'] - access_token = response.json()['access_token'] - headers = {'Authorization': f'{token_type} {access_token}'} - return headers diff --git a/backend/pyproject.toml b/backend/pyproject.toml index ab39291e..ce6161c2 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -12,54 +12,54 @@ readme = "README.md" license = { text = "MIT" } requires-python = ">=3.10,<3.13" dependencies = [ - "alembic>=1.13.0", + "alembic>=1.14.0", "asgiref>=3.8.0", - "asyncmy==0.2.9", - "bcrypt==4.0.1", - "casbin==1.34.0", - "casbin_async_sqlalchemy_adapter==1.4.0", + "asyncmy>=0.2.9", + "bcrypt>=4.2.0", + "casbin>=1.36.0", + "casbin_async_sqlalchemy_adapter>=1.6.0", "celery==5.3.6", - "cryptography==41.0.7", - "fast-captcha==0.3.2", + "cryptography>=43.0.0", + "fast-captcha>=0.3.2", "fastapi[all]==0.111.0", - "fastapi-limiter==0.1.6", + "fastapi-limiter>=0.1.6", "fastapi-pagination==0.12.13", - "gunicorn==21.2.0", - "httpx==0.25.2", - "itsdangerous==2.1.2", - "loguru==0.7.2", - "msgspec==0.18.5", - "passlib==1.7.4", - "path==15.1.2", - "phonenumbers==8.13.27", - "psutil==5.9.6", - "pydantic==2.9.1", - "pytest==7.2.2", - "pytest-pretty==1.2.0", - "python-jose==3.3.0", - "redis[hiredis]==5.1.0", - "SQLAlchemy==2.0.30", + "itsdangerous>=2.2.0", + "loguru>=0.7.2", + "msgspec>=0.18.6", + "passlib>=1.7.4", + "path==17.0.0", + "phonenumbers>=8.13.0", + "psutil>=6.0.0", + "pydantic>=2.9.1", + "python-jose>=3.3.0", + "redis[hiredis]>=5.2.0", + "SQLAlchemy>=2.0.30", "user-agents==2.2.0", - "uvicorn[standard]==0.29.0", - "XdbSearchIP==1.0.2", + "XdbSearchIP>=1.0.2", "fastapi_oauth20>=0.0.1a2", - "flower==2.0.1", + "flower>=2.0.0", "sqlalchemy-crud-plus==1.6.0", - "jinja2==3.1.4", - "aiofiles==24.1.0", + "jinja2>=3.1.4", + "aiofiles>=24.1.0", # When celery version < 6.0.0 # https://github.com/celery/celery/issues/7874 - "celery-aio-pool==0.1.0rc6", + "celery-aio-pool==0.1.0rc7", "asgi-correlation-id>=4.3.3", "python-socketio[asyncio]>=5.11.4", ] [dependency-groups] +dev = [ + "pytest>=8.0.0", + "pytest-sugar>=1.0.0", +] lint = [ "ruff>=0.7.0", "pre-commit>=4.0.0", ] server = [ + "gunicorn==21.2.0", "supervisor>=4.2.5", "wait-for-it>=2.2.2", ] @@ -67,4 +67,4 @@ server = [ [tool.uv] package = false python-downloads = "manual" -default-groups = ['lint'] +default-groups = ["dev", "lint"] diff --git a/backend/requirements.txt b/backend/requirements.txt index 13666186..913abcac 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,7 +1,7 @@ # This file was autogenerated by uv via the following command: # uv export --directory backend -o requirements.txt --no-hashes aiofiles==24.1.0 -alembic==1.13.3 +alembic==1.14.0 amqp==5.2.0 annotated-types==0.7.0 anyio==4.6.0 @@ -9,23 +9,22 @@ asgi-correlation-id==4.3.3 asgiref==3.8.1 async-timeout==4.0.3 ; python_full_version < '3.11.3' asyncmy==0.2.9 -attrs==24.2.0 -bcrypt==4.0.1 +bcrypt==4.2.0 bidict==0.23.1 billiard==4.2.1 -casbin==1.34.0 -casbin-async-sqlalchemy-adapter==1.4.0 +casbin==1.36.3 +casbin-async-sqlalchemy-adapter==1.6.0 celery==5.3.6 -celery-aio-pool==0.1.0rc6 +celery-aio-pool==0.1.0rc7 certifi==2024.8.30 -cffi==1.17.1 +cffi==1.17.1 ; platform_python_implementation != 'PyPy' cfgv==3.4.0 click==8.1.7 click-didyoumean==0.3.1 click-plugins==1.1.1 click-repl==0.3.0 colorama==0.4.6 ; sys_platform == 'win32' or platform_system == 'Windows' -cryptography==41.0.7 +cryptography==43.0.3 distlib==0.3.9 dnspython==2.7.0 ecdsa==0.19.0 @@ -40,7 +39,6 @@ fastapi-pagination==0.12.13 filelock==3.16.1 flower==2.0.1 greenlet==3.1.1 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' -gunicorn==21.2.0 h11==0.14.0 hiredis==3.0.0 httpcore==1.0.6 @@ -50,7 +48,7 @@ humanize==4.11.0 identify==2.6.1 idna==3.10 iniconfig==2.0.0 -itsdangerous==2.1.2 +itsdangerous==2.2.0 jinja2==3.1.4 kombu==5.4.2 loguru==0.7.2 @@ -58,12 +56,12 @@ mako==1.3.5 markdown-it-py==3.0.0 markupsafe==3.0.1 mdurl==0.1.2 -msgspec==0.18.5 +msgspec==0.18.6 nodeenv==1.9.1 orjson==3.10.7 packaging==24.1 passlib==1.7.4 -path==15.1.2 +path==17.0.0 phonenumbers==8.13.27 pillow==10.4.0 platformdirs==4.3.6 @@ -71,16 +69,16 @@ pluggy==1.5.0 pre-commit==4.0.1 prometheus-client==0.21.0 prompt-toolkit==3.0.48 -psutil==5.9.6 +psutil==6.1.0 pyasn1==0.6.1 -pycparser==2.22 +pycparser==2.22 ; platform_python_implementation != 'PyPy' pydantic==2.9.1 pydantic-core==2.23.3 pydantic-extra-types==2.9.0 pydantic-settings==2.5.2 pygments==2.18.0 -pytest==7.2.2 -pytest-pretty==1.2.0 +pytest==8.3.3 +pytest-sugar==1.0.0 python-dateutil==2.9.0.post0 python-dotenv==1.0.1 python-engineio==4.9.1 @@ -89,7 +87,7 @@ python-multipart==0.0.12 python-socketio==5.11.4 pytz==2024.2 pyyaml==6.0.2 -redis==5.1.0 +redis==5.2.0 rich==13.9.2 rsa==4.9 ruff==0.7.2 @@ -101,6 +99,7 @@ sniffio==1.3.1 sqlalchemy==2.0.30 sqlalchemy-crud-plus==1.6.0 starlette==0.37.2 +termcolor==2.5.0 tomli==2.0.2 ; python_full_version < '3.11' tornado==6.4.1 typer==0.12.5 diff --git a/backend/uv.lock b/backend/uv.lock index 0aa700a4..2ca78e3d 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -12,16 +12,16 @@ wheels = [ [[package]] name = "alembic" -version = "1.13.3" +version = "1.14.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mako" }, { name = "sqlalchemy" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/a2/840c3b84382dce8624bc2f0ee67567fc74c32478d0c5a5aea981518c91c3/alembic-1.13.3.tar.gz", hash = "sha256:203503117415561e203aa14541740643a611f641517f0209fcae63e9fa09f1a2", size = 1921223 } +sdist = { url = "https://files.pythonhosted.org/packages/00/1e/8cb8900ba1b6360431e46fb7a89922916d3a1b017a8908a7c0499cc7e5f6/alembic-1.14.0.tar.gz", hash = "sha256:b00892b53b3642d0b8dbedba234dbf1924b69be83a9a769d5a624b01094e304b", size = 1916172 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/12/58f4f11385fddafef5d6f7bfaaf2f42899c8da6b4f95c04b7c3b744851a8/alembic-1.13.3-py3-none-any.whl", hash = "sha256:908e905976d15235fae59c9ac42c4c5b75cfcefe3d27c0fbf7ae15a37715d80e", size = 233217 }, + { url = "https://files.pythonhosted.org/packages/cb/06/8b505aea3d77021b18dcbd8133aa1418f1a1e37e432a465b14c46b2c0eaa/alembic-1.14.0-py3-none-any.whl", hash = "sha256:99bd884ca390466db5e27ffccff1d179ec5c05c965cfefc0607e69f9e411cb25", size = 233482 }, ] [[package]] @@ -119,32 +119,36 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b4/41/af76dace00385e7cdcdd814f2288725ed7842a3d06f37f0d6f773716193b/asyncmy-0.2.9-cp311-cp311-win_amd64.whl", hash = "sha256:0d56df7342f7b5467a9d09a854f0e5602c8da09afdad8181ba40b0434d66d8a4", size = 1700022 }, ] -[[package]] -name = "attrs" -version = "24.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", size = 792678 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001 }, -] - [[package]] name = "bcrypt" -version = "4.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/ae/3af7d006aacf513975fd1948a6b4d6f8b4a307f8a244e1a3d3774b297aad/bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd", size = 25498 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/d4/3b2657bd58ef02b23a07729b0df26f21af97169dbd0b5797afa9e97ebb49/bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f", size = 473446 }, - { url = "https://files.pythonhosted.org/packages/ec/0a/1582790232fef6c2aa201f345577306b8bfe465c2c665dec04c86a016879/bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0", size = 583044 }, - { url = "https://files.pythonhosted.org/packages/41/16/49ff5146fb815742ad58cafb5034907aa7f166b1344d0ddd7fd1c818bd17/bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410", size = 583189 }, - { url = "https://files.pythonhosted.org/packages/aa/48/fd2b197a9741fa790ba0b88a9b10b5e88e62ff5cf3e1bc96d8354d7ce613/bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344", size = 593473 }, - { url = "https://files.pythonhosted.org/packages/7d/50/e683d8418974a602ba40899c8a5c38b3decaf5a4d36c32fc65dce454d8a8/bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a", size = 593249 }, - { url = "https://files.pythonhosted.org/packages/fb/a7/ee4561fd9b78ca23c8e5591c150cc58626a5dfb169345ab18e1c2c664ee0/bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3", size = 583586 }, - { url = "https://files.pythonhosted.org/packages/64/fe/da28a5916128d541da0993328dc5cf4b43dfbf6655f2c7a2abe26ca2dc88/bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2", size = 593659 }, - { url = "https://files.pythonhosted.org/packages/dd/4f/3632a69ce344c1551f7c9803196b191a8181c6a1ad2362c225581ef0d383/bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535", size = 613116 }, - { url = "https://files.pythonhosted.org/packages/87/69/edacb37481d360d06fc947dab5734aaf511acb7d1a1f9e2849454376c0f8/bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e", size = 624290 }, - { url = "https://files.pythonhosted.org/packages/aa/ca/6a534669890725cbb8c1fb4622019be31813c8edaa7b6d5b62fc9360a17e/bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab", size = 159428 }, - { url = "https://files.pythonhosted.org/packages/46/81/d8c22cd7e5e1c6a7d48e41a1d1d46c92f17dae70a54d9814f746e6027dec/bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9", size = 152930 }, +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e4/7e/d95e7d96d4828e965891af92e43b52a4cd3395dc1c1ef4ee62748d0471d0/bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221", size = 24294 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/81/4e8f5bc0cd947e91fb720e1737371922854da47a94bc9630454e7b2845f8/bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb", size = 471568 }, + { url = "https://files.pythonhosted.org/packages/05/d2/1be1e16aedec04bcf8d0156e01b987d16a2063d38e64c3f28030a3427d61/bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00", size = 277372 }, + { url = "https://files.pythonhosted.org/packages/e3/96/7a654027638ad9b7589effb6db77eb63eba64319dfeaf9c0f4ca953e5f76/bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d", size = 273488 }, + { url = "https://files.pythonhosted.org/packages/46/54/dc7b58abeb4a3d95bab653405935e27ba32f21b812d8ff38f271fb6f7f55/bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291", size = 277759 }, + { url = "https://files.pythonhosted.org/packages/ac/be/da233c5f11fce3f8adec05e8e532b299b64833cc962f49331cdd0e614fa9/bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328", size = 273796 }, + { url = "https://files.pythonhosted.org/packages/b0/b8/8b4add88d55a263cf1c6b8cf66c735280954a04223fcd2880120cc767ac3/bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7", size = 311082 }, + { url = "https://files.pythonhosted.org/packages/7b/76/2aa660679abbdc7f8ee961552e4bb6415a81b303e55e9374533f22770203/bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399", size = 305912 }, + { url = "https://files.pythonhosted.org/packages/00/03/2af7c45034aba6002d4f2b728c1a385676b4eab7d764410e34fd768009f2/bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060", size = 325185 }, + { url = "https://files.pythonhosted.org/packages/dc/5d/6843443ce4ab3af40bddb6c7c085ed4a8418b3396f7a17e60e6d9888416c/bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7", size = 335188 }, + { url = "https://files.pythonhosted.org/packages/cb/4c/ff8ca83d816052fba36def1d24e97d9a85739b9bbf428c0d0ecd296a07c8/bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458", size = 156481 }, + { url = "https://files.pythonhosted.org/packages/65/f1/e09626c88a56cda488810fb29d5035f1662873777ed337880856b9d204ae/bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5", size = 151336 }, + { url = "https://files.pythonhosted.org/packages/96/86/8c6a84daed4dd878fbab094400c9174c43d9b838ace077a2f8ee8bc3ae12/bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841", size = 472414 }, + { url = "https://files.pythonhosted.org/packages/f6/05/e394515f4e23c17662e5aeb4d1859b11dc651be01a3bd03c2e919a155901/bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68", size = 277599 }, + { url = "https://files.pythonhosted.org/packages/4b/3b/ad784eac415937c53da48983756105d267b91e56aa53ba8a1b2014b8d930/bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe", size = 273491 }, + { url = "https://files.pythonhosted.org/packages/cc/14/b9ff8e0218bee95e517b70e91130effb4511e8827ac1ab00b4e30943a3f6/bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2", size = 277934 }, + { url = "https://files.pythonhosted.org/packages/3e/d0/31938bb697600a04864246acde4918c4190a938f891fd11883eaaf41327a/bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c", size = 273804 }, + { url = "https://files.pythonhosted.org/packages/e7/c3/dae866739989e3f04ae304e1201932571708cb292a28b2f1b93283e2dcd8/bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae", size = 311275 }, + { url = "https://files.pythonhosted.org/packages/5d/2c/019bc2c63c6125ddf0483ee7d914a405860327767d437913942b476e9c9b/bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d", size = 306355 }, + { url = "https://files.pythonhosted.org/packages/75/fe/9e137727f122bbe29771d56afbf4e0dbc85968caa8957806f86404a5bfe1/bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e", size = 325381 }, + { url = "https://files.pythonhosted.org/packages/1a/d4/586b9c18a327561ea4cd336ff4586cca1a7aa0f5ee04e23a8a8bb9ca64f1/bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8", size = 335685 }, + { url = "https://files.pythonhosted.org/packages/24/55/1a7127faf4576138bb278b91e9c75307490178979d69c8e6e273f74b974f/bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34", size = 155857 }, + { url = "https://files.pythonhosted.org/packages/1c/2a/c74052e54162ec639266d91539cca7cbf3d1d3b8b36afbfeaee0ea6a1702/bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9", size = 151717 }, + { url = "https://files.pythonhosted.org/packages/09/97/01026e7b1b7f8aeb41514408eca1137c0f8aef9938335e3bc713f82c282e/bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a", size = 275924 }, + { url = "https://files.pythonhosted.org/packages/ca/46/03eb26ea3e9c12ca18d1f3bf06199f7d72ce52e68f2a1ebcfd8acff9c472/bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db", size = 272242 }, ] [[package]] @@ -167,27 +171,27 @@ wheels = [ [[package]] name = "casbin" -version = "1.34.0" +version = "1.36.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "simpleeval" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/d7/7e8b98e8eb8617fe1497d1032ee3da66fd5030ed7252ea68e11673292901/casbin-1.34.0.tar.gz", hash = "sha256:080c0a8e3b88b62a85a15bf29f2f5009d34bcd42a3f89f2448c6f4b828837776", size = 420594 } +sdist = { url = "https://files.pythonhosted.org/packages/dd/3c/0e80a8b579f9e9ac2650d8506748198b0815c8f3f75a6f0e81ab5e3c22c2/casbin-1.36.3.tar.gz", hash = "sha256:1af1946c139466e91b15261e1e998f53fdeeb1df409369d4dc236668a96ad157", size = 421225 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/f5/933a1d02c72a81ba63aed34a925231d0bd41bce05bb36bcc2f186d927c36/casbin-1.34.0-py3-none-any.whl", hash = "sha256:9dcb6df8464a7b19276461e56d912e09c42e160408dc04cc1336a08d674c76ca", size = 470960 }, + { url = "https://files.pythonhosted.org/packages/45/01/a9178c350ac158694ef297701c3aebc99eaf1135be7ca289dce15d477bd1/casbin-1.36.3-py3-none-any.whl", hash = "sha256:b54db39f0d552e4cf09b6e55f50456f5c338895c15a3670c8b63b1d8572fe925", size = 471165 }, ] [[package]] name = "casbin-async-sqlalchemy-adapter" -version = "1.4.0" +version = "1.6.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "casbin" }, { name = "sqlalchemy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d0/03/6a5ec85d47514631b05733c0976251d22a6980e70112f016e66242db59aa/casbin_async_sqlalchemy_adapter-1.4.0.tar.gz", hash = "sha256:964c95d596610849281ef9c8e696e8006224389e8a90563b2e9e1bd2bd2cf1c2", size = 10907 } +sdist = { url = "https://files.pythonhosted.org/packages/15/7a/72704944f7eb059ed984b7caa7a349261b4f472c2239fa4f61d2f53e71e1/casbin_async_sqlalchemy_adapter-1.6.0.tar.gz", hash = "sha256:2274cc319f2fe6357bef43353cf58e07850d13a22e38a8c0dcc108e5cf923fb1", size = 10881 } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/3f/1a7fe67ea80e425b02321d86c77730d72b217e8080293301ae057f590610/casbin_async_sqlalchemy_adapter-1.4.0-py3-none-any.whl", hash = "sha256:f909d205d4f33803fb6650d8daca28c0d0c67af097ca1a66a9f38ec9abf7249a", size = 11165 }, + { url = "https://files.pythonhosted.org/packages/e9/af/75bc636010b2fce9e0eb29d16c13650c4f398544c19ef4abda3d4d62e7c2/casbin_async_sqlalchemy_adapter-1.6.0-py3-none-any.whl", hash = "sha256:40ab331fef05e9a7e8fe095ceafce7363f95c3431c3fa3011a571ed6e8b09041", size = 11136 }, ] [[package]] @@ -212,14 +216,14 @@ wheels = [ [[package]] name = "celery-aio-pool" -version = "0.1.0rc6" +version = "0.1.0rc7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "celery" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/42/08102ac737614592b024b36295a8069f234dc25cfd4c8563fa4e6f52e46e/celery_aio_pool-0.1.0rc6.tar.gz", hash = "sha256:7bca528e2c4a377defdd87d6817e3bc946c4b8b5ee21f9fe16d1a0f2b2573c1a", size = 24434 } +sdist = { url = "https://files.pythonhosted.org/packages/80/92/2eff07cff3aca2e381151889c0d3e8555d98d2915a81c9063398dd0a7953/celery_aio_pool-0.1.0rc7.tar.gz", hash = "sha256:d6a93229a5e0eb337c97787f1faafeb48f3df136de944abca300547f497ded6e", size = 24695 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/ca/208d09406909c6d2f75e9f4080e758cedc8f85da9cc707e6a57bda7a98ac/celery_aio_pool-0.1.0rc6-py3-none-any.whl", hash = "sha256:ad3820a2906cfa3215d1a3b9012c84e437181ab509626459e15c724c3c72945e", size = 23213 }, + { url = "https://files.pythonhosted.org/packages/c1/ba/8a7fc15089e14cca48f3a34aeec566d6ec618d35ef41fdff7770749a9f57/celery_aio_pool-0.1.0rc7-py3-none-any.whl", hash = "sha256:157c786c1e38f717345aae903866569c4b44cdecb24c912e2eadd029b9cd883c", size = 23472 }, ] [[package]] @@ -346,27 +350,35 @@ wheels = [ [[package]] name = "cryptography" -version = "41.0.7" +version = "43.0.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "cffi" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ce/b3/13a12ea7edb068de0f62bac88a8ffd92cc2901881b391839851846b84a81/cryptography-41.0.7.tar.gz", hash = "sha256:13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc", size = 630892 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/73/5461318abd2fe426855a2f66775c063bbefd377729ece3c3ee048ddf19a5/cryptography-41.0.7-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:3c78451b78313fa81607fa1b3f1ae0a5ddd8014c38a02d9db0616133987b9cdf", size = 5342676 }, - { url = "https://files.pythonhosted.org/packages/a9/76/d705397d076fcbf5671544eb72a70b5a5ac83462d23dbd2a365a3bf3692a/cryptography-41.0.7-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:928258ba5d6f8ae644e764d0f996d61a8777559f72dfeb2eea7e2fe0ad6e782d", size = 2850425 }, - { url = "https://files.pythonhosted.org/packages/68/bb/475658ea92653a894589e657d6cea9ae01354db73405d62126ac5e74e2f8/cryptography-41.0.7-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a1b41bc97f1ad230a41657d9155113c7521953869ae57ac39ac7f1bb471469a", size = 4161547 }, - { url = "https://files.pythonhosted.org/packages/14/fd/dd5bd6ab0d12476ebca579cbfd48d31bd90fa28fa257b209df585dcf62a0/cryptography-41.0.7-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:841df4caa01008bad253bce2a6f7b47f86dc9f08df4b433c404def869f590a15", size = 4363688 }, - { url = "https://files.pythonhosted.org/packages/3e/81/ae2c51ea2b80d57d5756a12df67816230124faea0a762a7a6304fe3c819c/cryptography-41.0.7-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5429ec739a29df2e29e15d082f1d9ad683701f0ec7709ca479b3ff2708dae65a", size = 4148846 }, - { url = "https://files.pythonhosted.org/packages/62/bd/69628ab50368b1beb900eb1de5c46f8137169b75b2458affe95f2f470501/cryptography-41.0.7-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:43f2552a2378b44869fe8827aa19e69512e3245a219104438692385b0ee119d1", size = 4372805 }, - { url = "https://files.pythonhosted.org/packages/b6/4a/1808333c5ea79cb6d51102036cbcf698704b1fc7a5ccd139957aeadd2311/cryptography-41.0.7-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:af03b32695b24d85a75d40e1ba39ffe7db7ffcb099fe507b39fd41a565f1b157", size = 4255463 }, - { url = "https://files.pythonhosted.org/packages/c5/07/826d66b6b03c5bfde8b451bea22c41e68d60aafff0ffa02c5f0819844319/cryptography-41.0.7-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:49f0805fc0b2ac8d4882dd52f4a3b935b210935d500b6b805f321addc8177406", size = 4441232 }, - { url = "https://files.pythonhosted.org/packages/f3/4f/11b739e95598db236013cc9efb4e3d02b51dd0861c85470c3fe42720ef5b/cryptography-41.0.7-cp37-abi3-win32.whl", hash = "sha256:f983596065a18a2183e7f79ab3fd4c475205b839e02cbc0efbbf9666c4b3083d", size = 2236277 }, - { url = "https://files.pythonhosted.org/packages/f6/23/b28f4a03650512efff13a8fcbb977bac178a765c5a887a6720bee13fa85b/cryptography-41.0.7-cp37-abi3-win_amd64.whl", hash = "sha256:90452ba79b8788fa380dfb587cca692976ef4e757b194b093d845e8d99f612f2", size = 2671839 }, - { url = "https://files.pythonhosted.org/packages/26/ab/59f271c8f027b8068bbf4dfd6e3ad4c6fc20df0b108ee29c64a1036ba4ce/cryptography-41.0.7-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:079b85658ea2f59c4f43b70f8119a52414cdb7be34da5d019a77bf96d473b960", size = 2715416 }, - { url = "https://files.pythonhosted.org/packages/54/f4/3eec29ab2fdd673de8f44af3876b32248eb79550ced822363e35da1644d1/cryptography-41.0.7-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:b640981bf64a3e978a56167594a0e97db71c89a479da8e175d8bb5be5178c003", size = 4056764 }, - { url = "https://files.pythonhosted.org/packages/f4/2b/96fd47dff43cdeb3e24e962fec9ed6ffa1369320146eb95524088265fa00/cryptography-41.0.7-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e3114da6d7f95d2dee7d3f4eec16dacff819740bbab931aff8648cb13c5ff5e7", size = 4256756 }, - { url = "https://files.pythonhosted.org/packages/31/9e/30f98ba184be2792f77437607e23b08975ba7876f6a0a0d101df9ff5d180/cryptography-41.0.7-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d5ec85080cce7b0513cfd233914eb8b7bbd0633f1d1703aa28d1dd5a72f678ec", size = 2550728 }, + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/05/07b55d1fa21ac18c3a8c79f764e2514e6f6a9698f1be44994f5adf0d29db/cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805", size = 686989 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/f3/01fdf26701a26f4b4dbc337a26883ad5bccaa6f1bbbdd29cd89e22f18a1c/cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e", size = 6225303 }, + { url = "https://files.pythonhosted.org/packages/a3/01/4896f3d1b392025d4fcbecf40fdea92d3df8662123f6835d0af828d148fd/cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e", size = 3760905 }, + { url = "https://files.pythonhosted.org/packages/0a/be/f9a1f673f0ed4b7f6c643164e513dbad28dd4f2dcdf5715004f172ef24b6/cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f", size = 3977271 }, + { url = "https://files.pythonhosted.org/packages/4e/49/80c3a7b5514d1b416d7350830e8c422a4d667b6d9b16a9392ebfd4a5388a/cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6", size = 3746606 }, + { url = "https://files.pythonhosted.org/packages/0e/16/a28ddf78ac6e7e3f25ebcef69ab15c2c6be5ff9743dd0709a69a4f968472/cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18", size = 3986484 }, + { url = "https://files.pythonhosted.org/packages/01/f5/69ae8da70c19864a32b0315049866c4d411cce423ec169993d0434218762/cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd", size = 3852131 }, + { url = "https://files.pythonhosted.org/packages/fd/db/e74911d95c040f9afd3612b1f732e52b3e517cb80de8bf183be0b7d413c6/cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73", size = 4075647 }, + { url = "https://files.pythonhosted.org/packages/56/48/7b6b190f1462818b324e674fa20d1d5ef3e24f2328675b9b16189cbf0b3c/cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2", size = 2623873 }, + { url = "https://files.pythonhosted.org/packages/eb/b1/0ebff61a004f7f89e7b65ca95f2f2375679d43d0290672f7713ee3162aff/cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd", size = 3068039 }, + { url = "https://files.pythonhosted.org/packages/30/d5/c8b32c047e2e81dd172138f772e81d852c51f0f2ad2ae8a24f1122e9e9a7/cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984", size = 6222984 }, + { url = "https://files.pythonhosted.org/packages/2f/78/55356eb9075d0be6e81b59f45c7b48df87f76a20e73893872170471f3ee8/cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5", size = 3762968 }, + { url = "https://files.pythonhosted.org/packages/2a/2c/488776a3dc843f95f86d2f957ca0fc3407d0242b50bede7fad1e339be03f/cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4", size = 3977754 }, + { url = "https://files.pythonhosted.org/packages/7c/04/2345ca92f7a22f601a9c62961741ef7dd0127c39f7310dffa0041c80f16f/cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7", size = 3749458 }, + { url = "https://files.pythonhosted.org/packages/ac/25/e715fa0bc24ac2114ed69da33adf451a38abb6f3f24ec207908112e9ba53/cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405", size = 3988220 }, + { url = "https://files.pythonhosted.org/packages/21/ce/b9c9ff56c7164d8e2edfb6c9305045fbc0df4508ccfdb13ee66eb8c95b0e/cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16", size = 3853898 }, + { url = "https://files.pythonhosted.org/packages/2a/33/b3682992ab2e9476b9c81fff22f02c8b0a1e6e1d49ee1750a67d85fd7ed2/cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73", size = 4076592 }, + { url = "https://files.pythonhosted.org/packages/81/1e/ffcc41b3cebd64ca90b28fd58141c5f68c83d48563c88333ab660e002cd3/cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995", size = 2623145 }, + { url = "https://files.pythonhosted.org/packages/87/5c/3dab83cc4aba1f4b0e733e3f0c3e7d4386440d660ba5b1e3ff995feb734d/cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362", size = 3068026 }, + { url = "https://files.pythonhosted.org/packages/6f/db/d8b8a039483f25fc3b70c90bc8f3e1d4497a99358d610c5067bf3bd4f0af/cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c", size = 3144545 }, + { url = "https://files.pythonhosted.org/packages/93/90/116edd5f8ec23b2dc879f7a42443e073cdad22950d3c8ee834e3b8124543/cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3", size = 3679828 }, + { url = "https://files.pythonhosted.org/packages/d8/32/1e1d78b316aa22c0ba6493cc271c1c309969e5aa5c22c830a1d7ce3471e6/cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83", size = 3908132 }, + { url = "https://files.pythonhosted.org/packages/91/bb/cd2c13be3332e7af3cdf16154147952d39075b9f61ea5e6b5241bf4bf436/cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7", size = 2988811 }, ] [[package]] @@ -492,8 +504,6 @@ dependencies = [ { name = "fastapi-oauth20" }, { name = "fastapi-pagination" }, { name = "flower" }, - { name = "gunicorn" }, - { name = "httpx" }, { name = "itsdangerous" }, { name = "jinja2" }, { name = "loguru" }, @@ -503,76 +513,78 @@ dependencies = [ { name = "phonenumbers" }, { name = "psutil" }, { name = "pydantic" }, - { name = "pytest" }, - { name = "pytest-pretty" }, { name = "python-jose" }, { name = "python-socketio" }, { name = "redis", extra = ["hiredis"] }, { name = "sqlalchemy" }, { name = "sqlalchemy-crud-plus" }, { name = "user-agents" }, - { name = "uvicorn", extra = ["standard"] }, { name = "xdbsearchip" }, ] [package.dev-dependencies] +dev = [ + { name = "pytest" }, + { name = "pytest-sugar" }, +] lint = [ { name = "pre-commit" }, { name = "ruff" }, ] server = [ + { name = "gunicorn" }, { name = "supervisor" }, { name = "wait-for-it" }, ] [package.metadata] requires-dist = [ - { name = "aiofiles", specifier = "==24.1.0" }, - { name = "alembic", specifier = ">=1.13.0" }, + { name = "aiofiles", specifier = ">=24.1.0" }, + { name = "alembic", specifier = ">=1.14.0" }, { name = "asgi-correlation-id", specifier = ">=4.3.3" }, { name = "asgiref", specifier = ">=3.8.0" }, - { name = "asyncmy", specifier = "==0.2.9" }, - { name = "bcrypt", specifier = "==4.0.1" }, - { name = "casbin", specifier = "==1.34.0" }, - { name = "casbin-async-sqlalchemy-adapter", specifier = "==1.4.0" }, + { name = "asyncmy", specifier = ">=0.2.9" }, + { name = "bcrypt", specifier = ">=4.2.0" }, + { name = "casbin", specifier = ">=1.36.0" }, + { name = "casbin-async-sqlalchemy-adapter", specifier = ">=1.6.0" }, { name = "celery", specifier = "==5.3.6" }, - { name = "celery-aio-pool", specifier = "==0.1.0rc6" }, - { name = "cryptography", specifier = "==41.0.7" }, - { name = "fast-captcha", specifier = "==0.3.2" }, + { name = "celery-aio-pool", specifier = "==0.1.0rc7" }, + { name = "cryptography", specifier = ">=43.0.0" }, + { name = "fast-captcha", specifier = ">=0.3.2" }, { name = "fastapi", extras = ["all"], specifier = "==0.111.0" }, - { name = "fastapi-limiter", specifier = "==0.1.6" }, + { name = "fastapi-limiter", specifier = ">=0.1.6" }, { name = "fastapi-oauth20", specifier = ">=0.0.1a2" }, { name = "fastapi-pagination", specifier = "==0.12.13" }, - { name = "flower", specifier = "==2.0.1" }, - { name = "gunicorn", specifier = "==21.2.0" }, - { name = "httpx", specifier = "==0.25.2" }, - { name = "itsdangerous", specifier = "==2.1.2" }, - { name = "jinja2", specifier = "==3.1.4" }, - { name = "loguru", specifier = "==0.7.2" }, - { name = "msgspec", specifier = "==0.18.5" }, - { name = "passlib", specifier = "==1.7.4" }, - { name = "path", specifier = "==15.1.2" }, - { name = "phonenumbers", specifier = "==8.13.27" }, - { name = "psutil", specifier = "==5.9.6" }, - { name = "pydantic", specifier = "==2.9.1" }, - { name = "pytest", specifier = "==7.2.2" }, - { name = "pytest-pretty", specifier = "==1.2.0" }, - { name = "python-jose", specifier = "==3.3.0" }, + { name = "flower", specifier = ">=2.0.0" }, + { name = "itsdangerous", specifier = ">=2.2.0" }, + { name = "jinja2", specifier = ">=3.1.4" }, + { name = "loguru", specifier = ">=0.7.2" }, + { name = "msgspec", specifier = ">=0.18.6" }, + { name = "passlib", specifier = ">=1.7.4" }, + { name = "path", specifier = "==17.0.0" }, + { name = "phonenumbers", specifier = ">=8.13.0" }, + { name = "psutil", specifier = ">=6.0.0" }, + { name = "pydantic", specifier = ">=2.9.1" }, + { name = "python-jose", specifier = ">=3.3.0" }, { name = "python-socketio", extras = ["asyncio"], specifier = ">=5.11.4" }, - { name = "redis", extras = ["hiredis"], specifier = "==5.1.0" }, - { name = "sqlalchemy", specifier = "==2.0.30" }, + { name = "redis", extras = ["hiredis"], specifier = ">=5.2.0" }, + { name = "sqlalchemy", specifier = ">=2.0.30" }, { name = "sqlalchemy-crud-plus", specifier = "==1.6.0" }, { name = "user-agents", specifier = "==2.2.0" }, - { name = "uvicorn", extras = ["standard"], specifier = "==0.29.0" }, - { name = "xdbsearchip", specifier = "==1.0.2" }, + { name = "xdbsearchip", specifier = ">=1.0.2" }, ] [package.metadata.requires-dev] +dev = [ + { name = "pytest", specifier = ">=8.0.0" }, + { name = "pytest-sugar", specifier = ">=1.0.0" }, +] lint = [ { name = "pre-commit", specifier = ">=4.0.0" }, { name = "ruff", specifier = ">=0.7.0" }, ] server = [ + { name = "gunicorn", specifier = "==21.2.0" }, { name = "supervisor", specifier = ">=4.2.5" }, { name = "wait-for-it", specifier = ">=2.2.2" }, ] @@ -866,11 +878,11 @@ wheels = [ [[package]] name = "itsdangerous" -version = "2.1.2" +version = "2.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/a1/d3fb83e7a61fa0c0d3d08ad0a94ddbeff3731c05212617dff3a94e097f08/itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a", size = 56143 } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410 } wheels = [ - { url = "https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44", size = 15749 }, + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234 }, ] [[package]] @@ -985,31 +997,31 @@ wheels = [ [[package]] name = "msgspec" -version = "0.18.5" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/3b/4c3a74f7e707cf150a5b07ace71a113276b2d481ff8612bf26da6057c3ee/msgspec-0.18.5.tar.gz", hash = "sha256:8e545651531f2d01b983d0ac0c7f3b6d99674267ff261b5f344f5016160b5608", size = 210437 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/33/8e/79dcf3ea62a35b508b8bf8fc8be4563cf5469e7736202a955a0a6d30d998/msgspec-0.18.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50479d88f3c4e9c73b55fbe84dc14b1cee8cec753e9170bbeafe3f9837e9f7af", size = 196135 }, - { url = "https://files.pythonhosted.org/packages/24/02/0eee28f987d660e012c0860e9163a22cb53d2ab68f8a8153f3d5a0ea3074/msgspec-0.18.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf885edac512e464c70a5f4f93b6f778c83ea4b91d646b6d72f6f5ac950f268e", size = 185309 }, - { url = "https://files.pythonhosted.org/packages/31/e3/be4e37d6fb0243ea56e7eacb27d91e16ef6e62889198110dc149aca58a2d/msgspec-0.18.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:773a38ead7832d171d1b9406bf42448a218245584af36e42c31f26d9f48a493a", size = 202176 }, - { url = "https://files.pythonhosted.org/packages/30/8c/de630d61b6ba5d1bfb5d9516472ea2485e12cb862da75b96205de7e7c535/msgspec-0.18.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5999eb65646b131f439ebb07c22446e8976b7fd8a312dca09ce6fa2c21162bb", size = 203910 }, - { url = "https://files.pythonhosted.org/packages/a5/f2/48a2cf5fdf7957e72ea97bc55166f435279702a0d34501629ae4e5d3a216/msgspec-0.18.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a0ec78bd93684db61dfccf7a421b2e1a525b1a0546b4d8c4e339151be57d58a6", size = 206706 }, - { url = "https://files.pythonhosted.org/packages/ba/87/c99b6bedf0f9b698418986be87e9c3833377eee87b091dfceb73799dab01/msgspec-0.18.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b547c7ad9786a79b0090a811d95d2d04063625a66fd96ed767cdfbabd8087c67", size = 208240 }, - { url = "https://files.pythonhosted.org/packages/87/3c/b9c55256e6423922f6474d1e2904d8d08414f43e0ceb0da9ea0809eea2d2/msgspec-0.18.5-cp310-cp310-win_amd64.whl", hash = "sha256:e4c2fc93a98afefd1a78e957ca63363a8e5fd1b58bf70a8d66413c8f2a4723a2", size = 179165 }, - { url = "https://files.pythonhosted.org/packages/53/3d/5c1e41c77b7d7415b66247b3abb46a1891174cefade054d1cc312733c571/msgspec-0.18.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ee1f9414523d9a53744d21a6a2b6a636d9008be016963148a2646b38132e11dd", size = 193562 }, - { url = "https://files.pythonhosted.org/packages/71/d6/af62787df3fbbadbfcb785585f2bf46ef12ac549d058debb54719b96ab50/msgspec-0.18.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0017f6af35a3959002df4c82af60c1df2160701529dd89b17df971fde5945257", size = 182853 }, - { url = "https://files.pythonhosted.org/packages/76/87/10ebf2528fb21200a78246c07ccbc39862c6e37b069e8b1b7ab0854023a0/msgspec-0.18.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13da9df61745b7757070dae6e3476ab4e13bb9dd3e3d11b050dfcae540058bd1", size = 201470 }, - { url = "https://files.pythonhosted.org/packages/95/b0/eb20eff8da97b8c7614d2a95ecee2eff6f511bccb6c2698f2f650866d715/msgspec-0.18.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01ed3472a0508f88a25a9d3bccafb840110f0fc5eb493b4baa43646e4e7c75c2", size = 202714 }, - { url = "https://files.pythonhosted.org/packages/94/2f/1dd6b7adb0021a76b8537637570e1f58c61e7aefce30ed28efef6ec1fdb9/msgspec-0.18.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f55c4610cb0514aef8b35bfd0682f4cc2d7efd5e9b58acf30abd90b2a2376b5d", size = 205179 }, - { url = "https://files.pythonhosted.org/packages/74/58/32f568c935564786badfca42edabafb19f1a77e4c46bcdcdbd000701fd1a/msgspec-0.18.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8f7c0460aefdc8f01ea35f26e38c62b574bbf0b138ade860f557bbf9e9dac50c", size = 207368 }, - { url = "https://files.pythonhosted.org/packages/93/5b/8325a3969db88da2e6103cf13f8fee522008705fbae64fd778c2f54805e2/msgspec-0.18.5-cp311-cp311-win_amd64.whl", hash = "sha256:024f880df7d2f8cfdb9f9904efa0f386d3692457159bd58f850c20f11c07d16f", size = 179167 }, - { url = "https://files.pythonhosted.org/packages/70/69/46d9fe9819c018b30596f7e3116dda71474ad3b947ecc82c07273cebe46e/msgspec-0.18.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b3d206af4280172948d014d20b2cea7939784a99ea9a7ac943ce71100dbe8f98", size = 195862 }, - { url = "https://files.pythonhosted.org/packages/35/a9/4c2050c46511f29d50d9a81c7c6a6895c2ec213a8cdec7b12c37c97a42bb/msgspec-0.18.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:261cc6e3a687e6f31b80056ab12f6adff3255f9b68b86d92b0b497f8b289c84c", size = 183799 }, - { url = "https://files.pythonhosted.org/packages/04/9e/adc6b5508c435b9db0f1ce74559d11b4cb64019b7e5e2e042101e6d75d1c/msgspec-0.18.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6af133ba491a09ef8dcbc2d9904bcec220247e2067bb75d5d6daa12e0739d6c", size = 203205 }, - { url = "https://files.pythonhosted.org/packages/6e/63/1501c6da853713d450e740262a094f28d94c4ff31354552b8eb365f5e417/msgspec-0.18.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d318593e0ddc11b600552a470ec27baeb0b86a8e37903ac5ce7472ba0d6f7bf8", size = 205210 }, - { url = "https://files.pythonhosted.org/packages/20/4f/8bf4ec736f7be3efcda9d4ad1244d84dc6a903b3c94d15de585c4a0e1232/msgspec-0.18.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9a7b682cca3ba251a19cc769d38615ddd9551e086858decd950c156c2e79ecc1", size = 206920 }, - { url = "https://files.pythonhosted.org/packages/ce/34/d46337875d11ebde1468fba8524d0e282b4bc04abf99566def430020968d/msgspec-0.18.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b491b2549d22e11d7cfe34a231f9bd006cb6b71adefa070a070075d2f601e75c", size = 209224 }, - { url = "https://files.pythonhosted.org/packages/29/40/fc8e44be4868c412af2f278c4ef26ba5fb2390541d843059c9095f6c3c66/msgspec-0.18.5-cp312-cp312-win_amd64.whl", hash = "sha256:c79e7115f0143688c5d866359e7b6b76dd1581a81c9aeac7805a9d6320e9f2ca", size = 180387 }, +version = "0.18.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/fb/42b1865063fddb14dbcbb6e74e0a366ecf1ba371c4948664dde0b0e10f95/msgspec-0.18.6.tar.gz", hash = "sha256:a59fc3b4fcdb972d09138cb516dbde600c99d07c38fd9372a6ef500d2d031b4e", size = 216757 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/54/34c2b70e0d42d876c04f6436c80777d786f25c7536830db5e4ec1aef8788/msgspec-0.18.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:77f30b0234eceeff0f651119b9821ce80949b4d667ad38f3bfed0d0ebf9d6d8f", size = 202537 }, + { url = "https://files.pythonhosted.org/packages/d4/b8/d00d7d03bba8b4eb0bbfdeb6c047163877b2916995f837113d273fd3b774/msgspec-0.18.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a76b60e501b3932782a9da039bd1cd552b7d8dec54ce38332b87136c64852dd", size = 192246 }, + { url = "https://files.pythonhosted.org/packages/98/07/40bcd501d0f4e76694ca04a11689f3e06d9ef7a31d74e493a2cc34cd9198/msgspec-0.18.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06acbd6edf175bee0e36295d6b0302c6de3aaf61246b46f9549ca0041a9d7177", size = 208523 }, + { url = "https://files.pythonhosted.org/packages/23/1f/10f2bf07f8fcdc3b0c7bf1bfefdd28bd0353df9290c84e4b3ad8e93e0115/msgspec-0.18.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40a4df891676d9c28a67c2cc39947c33de516335680d1316a89e8f7218660410", size = 210276 }, + { url = "https://files.pythonhosted.org/packages/c7/e4/4bb5bcd89a74bbb246a21687dd62923c43007e28ad17db24ff58653456cb/msgspec-0.18.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a6896f4cd5b4b7d688018805520769a8446df911eb93b421c6c68155cdf9dd5a", size = 214659 }, + { url = "https://files.pythonhosted.org/packages/32/f1/57187427a5a3379cb74aaae753314f9dcde14c259552ec0cb44bcf18db49/msgspec-0.18.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3ac4dd63fd5309dd42a8c8c36c1563531069152be7819518be0a9d03be9788e4", size = 216585 }, + { url = "https://files.pythonhosted.org/packages/7d/d1/94919c9b837fc9a0e9dfc1b598a50298bd194146e7bc7d3f42f18826e9f6/msgspec-0.18.6-cp310-cp310-win_amd64.whl", hash = "sha256:fda4c357145cf0b760000c4ad597e19b53adf01382b711f281720a10a0fe72b7", size = 185677 }, + { url = "https://files.pythonhosted.org/packages/15/20/278def3822dec807be1e2a734ba9547500ff06667be9dda00ab5d277d605/msgspec-0.18.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e77e56ffe2701e83a96e35770c6adb655ffc074d530018d1b584a8e635b4f36f", size = 200058 }, + { url = "https://files.pythonhosted.org/packages/25/8c/75bfafb040934dd3eb46234a2bd4d8fcc7b646f77440866f954b60e0886b/msgspec-0.18.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5351afb216b743df4b6b147691523697ff3a2fc5f3d54f771e91219f5c23aaa", size = 189108 }, + { url = "https://files.pythonhosted.org/packages/0d/e6/5dd960a7678cbaf90dc910611a0e700775ee341876f029c3c987122afe84/msgspec-0.18.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3232fabacef86fe8323cecbe99abbc5c02f7698e3f5f2e248e3480b66a3596b", size = 208138 }, + { url = "https://files.pythonhosted.org/packages/6a/73/1b2f991dc26899d2f999c938cbc82c858b3cb7e3ccaad317b32760dbe1da/msgspec-0.18.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3b524df6ea9998bbc99ea6ee4d0276a101bcc1aa8d14887bb823914d9f60d07", size = 209538 }, + { url = "https://files.pythonhosted.org/packages/29/d4/2fb2d40b3bde566fd14bf02bf503eea20a912a02cdf7ff100629906c9094/msgspec-0.18.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:37f67c1d81272131895bb20d388dd8d341390acd0e192a55ab02d4d6468b434c", size = 213571 }, + { url = "https://files.pythonhosted.org/packages/59/5a/c2aeeefd78946713047637f0c422c0b8b31182eb9bbed0068e906cc8aca0/msgspec-0.18.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d0feb7a03d971c1c0353de1a8fe30bb6579c2dc5ccf29b5f7c7ab01172010492", size = 215785 }, + { url = "https://files.pythonhosted.org/packages/51/c6/0a8ae23c91ba1e6d58ddb089bba4ce8dad5815411b4a2bb40a5f15d2ab73/msgspec-0.18.6-cp311-cp311-win_amd64.whl", hash = "sha256:41cf758d3f40428c235c0f27bc6f322d43063bc32da7b9643e3f805c21ed57b4", size = 185877 }, + { url = "https://files.pythonhosted.org/packages/1d/b5/c8fbf1db814eb29eda402952374b594b2559419ba7ec6d0997a9e5687530/msgspec-0.18.6-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d86f5071fe33e19500920333c11e2267a31942d18fed4d9de5bc2fbab267d28c", size = 202109 }, + { url = "https://files.pythonhosted.org/packages/d7/9a/235d2dbab078a0b8e6f338205dc59be0b027ce000554ee6a9c41b19339e5/msgspec-0.18.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce13981bfa06f5eb126a3a5a38b1976bddb49a36e4f46d8e6edecf33ccf11df1", size = 190281 }, + { url = "https://files.pythonhosted.org/packages/0e/f2/f864ed36a8a62c26b57c3e08d212bd8f3d12a3ca3ef64600be5452aa3c82/msgspec-0.18.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e97dec6932ad5e3ee1e3c14718638ba333befc45e0661caa57033cd4cc489466", size = 210305 }, + { url = "https://files.pythonhosted.org/packages/73/16/dfef780ced7d690dd5497846ed242ef3e27e319d59d1ddaae816a4f2c15e/msgspec-0.18.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad237100393f637b297926cae1868b0d500f764ccd2f0623a380e2bcfb2809ca", size = 212510 }, + { url = "https://files.pythonhosted.org/packages/c1/90/f5b3a788c4b3d92190e3345d1afa3dd107d5f16b8194e1f61b72582ee9bd/msgspec-0.18.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db1d8626748fa5d29bbd15da58b2d73af25b10aa98abf85aab8028119188ed57", size = 214844 }, + { url = "https://files.pythonhosted.org/packages/ce/0b/d4cc1b09f8dfcc6cc4cc9739c13a86e093fe70257b941ea9feb15df22996/msgspec-0.18.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:d70cb3d00d9f4de14d0b31d38dfe60c88ae16f3182988246a9861259c6722af6", size = 217113 }, + { url = "https://files.pythonhosted.org/packages/3f/76/30d8f152299f65c85c46a2cbeaf95ad1d18516b5ce730acdaef696d4cfe6/msgspec-0.18.6-cp312-cp312-win_amd64.whl", hash = "sha256:1003c20bfe9c6114cc16ea5db9c5466e49fae3d7f5e2e59cb70693190ad34da0", size = 187184 }, ] [[package]] @@ -1079,11 +1091,11 @@ wheels = [ [[package]] name = "path" -version = "15.1.2" +version = "17.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3d/2b/4bc5cdeb942a05633685b9db05b5fd9ffd8ef96ff6f9988190fe43af0ec4/path-15.1.2.tar.gz", hash = "sha256:bb629aefd86825bf21c8bcfa0f8691a6e5abdc3e43d50b626fe6aac5b13f60b7", size = 48280 } +sdist = { url = "https://files.pythonhosted.org/packages/ff/a3/5dac44ce60ad6543578736a5729c5c2130cdac1c3117c61aad0583c2e3c6/path-17.0.0.tar.gz", hash = "sha256:e1540261d22df1416fb1b498b3b1ed5353a371a48fe197d66611bb01e7fab2d5", size = 49721 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/2a/b0f97e1b736725f6ec48a8bd564ee1d1f3f945bb5d39cb44ef8bbe66bd14/path-15.1.2-py3-none-any.whl", hash = "sha256:e07601c83ae394cb05298c96e073c251d185599ecbf3cf7110b00f4d1898d53e", size = 21268 }, + { url = "https://files.pythonhosted.org/packages/55/49/5ffc63f96029e4f899d6caee9db40c445ded1bf15cb60b32d77363c2c8de/path-17.0.0-py3-none-any.whl", hash = "sha256:b7309739c569e30110a34c6c812e582c09ff504c43e1232817410181838918ed", size = 24831 }, ] [[package]] @@ -1200,16 +1212,17 @@ wheels = [ [[package]] name = "psutil" -version = "5.9.6" +version = "6.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/01/beb7331fc6c8d1c49dd051e3611379bfe379e915c808e1301506027fce9d/psutil-5.9.6.tar.gz", hash = "sha256:e4b92ddcd7dd4cdd3f900180ea1e104932c7bce234fb88976e2a3b296441225a", size = 496866 } +sdist = { url = "https://files.pythonhosted.org/packages/26/10/2a30b13c61e7cf937f4adf90710776b7918ed0a9c434e2c38224732af310/psutil-6.1.0.tar.gz", hash = "sha256:353815f59a7f64cdaca1c0307ee13558a0512f6db064e92fe833784f08539c7a", size = 508565 } wheels = [ - { url = "https://files.pythonhosted.org/packages/f8/36/35b12441ba1bc6684c9215191f955415196ca57ca85d88e313bec7f2cf8e/psutil-5.9.6-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c69596f9fc2f8acd574a12d5f8b7b1ba3765a641ea5d60fb4736bf3c08a8214a", size = 246101 }, - { url = "https://files.pythonhosted.org/packages/61/c8/e684dea1912943347922ab5c05efc94b4ff3d7470038e8afbe3941ef9efe/psutil-5.9.6-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92e0cc43c524834af53e9d3369245e6cc3b130e78e26100d1f63cdb0abeb3d3c", size = 280854 }, - { url = "https://files.pythonhosted.org/packages/19/06/4e3fa3c1b79271e933c5ddbad3a48aa2c3d5f592a0fb7c037f3e0f619f4d/psutil-5.9.6-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:748c9dd2583ed86347ed65d0035f45fa8c851e8d90354c122ab72319b5f366f4", size = 283614 }, - { url = "https://files.pythonhosted.org/packages/06/ac/f31a0faf98267e63fc6ed046ad2aca68bd79521380026e92fd4921c869aa/psutil-5.9.6-cp37-abi3-win32.whl", hash = "sha256:a6f01f03bf1843280f4ad16f4bde26b817847b4c1a0db59bf6419807bc5ce05c", size = 248489 }, - { url = "https://files.pythonhosted.org/packages/c5/b2/699c50fe0b0402a1ccb64ad71313bcb740e735008dd3ab9abeddbe148e45/psutil-5.9.6-cp37-abi3-win_amd64.whl", hash = "sha256:6e5fb8dc711a514da83098bc5234264e551ad980cec5f85dabf4d38ed6f15e9a", size = 252327 }, - { url = "https://files.pythonhosted.org/packages/9e/cb/e4b83c27eea66bc255effc967053f6fce7c14906dd9b43a348ead9f0cfea/psutil-5.9.6-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:daecbcbd29b289aac14ece28eca6a3e60aa361754cf6da3dfb20d4d32b6c7f57", size = 246859 }, + { url = "https://files.pythonhosted.org/packages/01/9e/8be43078a171381953cfee33c07c0d628594b5dbfc5157847b85022c2c1b/psutil-6.1.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6e2dcd475ce8b80522e51d923d10c7871e45f20918e027ab682f94f1c6351688", size = 247762 }, + { url = "https://files.pythonhosted.org/packages/1d/cb/313e80644ea407f04f6602a9e23096540d9dc1878755f3952ea8d3d104be/psutil-6.1.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0895b8414afafc526712c498bd9de2b063deaac4021a3b3c34566283464aff8e", size = 248777 }, + { url = "https://files.pythonhosted.org/packages/65/8e/bcbe2025c587b5d703369b6a75b65d41d1367553da6e3f788aff91eaf5bd/psutil-6.1.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9dcbfce5d89f1d1f2546a2090f4fcf87c7f669d1d90aacb7d7582addece9fb38", size = 284259 }, + { url = "https://files.pythonhosted.org/packages/58/4d/8245e6f76a93c98aab285a43ea71ff1b171bcd90c9d238bf81f7021fb233/psutil-6.1.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:498c6979f9c6637ebc3a73b3f87f9eb1ec24e1ce53a7c5173b8508981614a90b", size = 287255 }, + { url = "https://files.pythonhosted.org/packages/27/c2/d034856ac47e3b3cdfa9720d0e113902e615f4190d5d1bdb8df4b2015fb2/psutil-6.1.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d905186d647b16755a800e7263d43df08b790d709d575105d419f8b6ef65423a", size = 288804 }, + { url = "https://files.pythonhosted.org/packages/ea/55/5389ed243c878725feffc0d6a3bc5ef6764312b6fc7c081faaa2cfa7ef37/psutil-6.1.0-cp37-abi3-win32.whl", hash = "sha256:1ad45a1f5d0b608253b11508f80940985d1d0c8f6111b5cb637533a0e6ddc13e", size = 250386 }, + { url = "https://files.pythonhosted.org/packages/11/91/87fa6f060e649b1e1a7b19a4f5869709fbf750b7c8c262ee776ec32f3028/psutil-6.1.0-cp37-abi3-win_amd64.whl", hash = "sha256:a8fb3752b491d246034fa4d279ff076501588ce8cbcdbb62c32fd7a377d996be", size = 254228 }, ] [[package]] @@ -1335,10 +1348,9 @@ wheels = [ [[package]] name = "pytest" -version = "7.2.2" +version = "8.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "attrs" }, { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "iniconfig" }, @@ -1346,22 +1358,23 @@ dependencies = [ { name = "pluggy" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/29/311895d9cd3f003dd58e8fdea36dd895ba2da5c0c90601836f7de79f76fe/pytest-7.2.2.tar.gz", hash = "sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4", size = 1320028 } +sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b2/68/5321b5793bd506961bd40bdbdd0674e7de4fb873ee7cab33dd27283ad513/pytest-7.2.2-py3-none-any.whl", hash = "sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e", size = 317207 }, + { url = "https://files.pythonhosted.org/packages/6b/77/7440a06a8ead44c7757a64362dd22df5760f9b12dc5f11b6188cd2fc27a0/pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2", size = 342341 }, ] [[package]] -name = "pytest-pretty" -version = "1.2.0" +name = "pytest-sugar" +version = "1.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "packaging" }, { name = "pytest" }, - { name = "rich" }, + { name = "termcolor" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/18/30ad0408295f3157f7a4913f0eaa51a0a377ebad0ffa51ff239e833c6c72/pytest_pretty-1.2.0.tar.gz", hash = "sha256:105a355f128e392860ad2c478ae173ff96d2f03044692f9818ff3d49205d3a60", size = 6542 } +sdist = { url = "https://files.pythonhosted.org/packages/f5/ac/5754f5edd6d508bc6493bc37d74b928f102a5fff82d9a80347e180998f08/pytest-sugar-1.0.0.tar.gz", hash = "sha256:6422e83258f5b0c04ce7c632176c7732cab5fdb909cb39cca5c9139f81276c0a", size = 14992 } wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/fe/d44d391312c1b8abee2af58ee70fabb1c00b6577ac4e0bdf25b70c1caffb/pytest_pretty-1.2.0-py3-none-any.whl", hash = "sha256:6f79122bf53864ae2951b6c9e94d7a06a87ef753476acd4588aeac018f062036", size = 6180 }, + { url = "https://files.pythonhosted.org/packages/92/fb/889f1b69da2f13691de09a111c16c4766a433382d44aa0ecf221deded44a/pytest_sugar-1.0.0-py3-none-any.whl", hash = "sha256:70ebcd8fc5795dc457ff8b69d266a4e2e8a74ae0c3edc749381c64b5246c8dfd", size = 10171 }, ] [[package]] @@ -1479,14 +1492,14 @@ wheels = [ [[package]] name = "redis" -version = "5.1.0" +version = "5.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "async-timeout", marker = "python_full_version < '3.11.3'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9b/b6/7a4b49eadff6bdd1904ef96b7e1dede8754673fe4724969bfae3d418ad8d/redis-5.1.0.tar.gz", hash = "sha256:b756df1e4a3858fcc0ef861f3fc53623a96c41e2b1f5304e09e0fe758d333d40", size = 4607302 } +sdist = { url = "https://files.pythonhosted.org/packages/53/17/2f4a87ffa4cd93714cf52edfa3ea94589e9de65f71e9f99cbcfa84347a53/redis-5.2.0.tar.gz", hash = "sha256:0b1087665a771b1ff2e003aa5bdd354f15a70c9e25d5a7dbf9c722c16528a7b0", size = 4607878 } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/d6/37ba7502c5144c93e2e63c81fbfd69c8b97c275328eb85734ce996d3dc13/redis-5.1.0-py3-none-any.whl", hash = "sha256:fd4fccba0d7f6aa48c58a78d76ddb4afc698f5da4a2c1d03d916e4fd7ab88cdd", size = 261212 }, + { url = "https://files.pythonhosted.org/packages/12/f5/ffa560ecc4bafbf25f7961c3d6f50d627a90186352e27e7d0ba5b1f6d87d/redis-5.2.0-py3-none-any.whl", hash = "sha256:ae174f2bb3b1bf2b09d54bf3e51fbc1469cf6c10aa03e21141f51969801a7897", size = 261428 }, ] [package.optional-dependencies] @@ -1676,6 +1689,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/7a/0ad3973941590c040475046fef37a2b08a76691e61aa59540828ee235a6e/supervisor-4.2.5-py2.py3-none-any.whl", hash = "sha256:2ecaede32fc25af814696374b79e42644ecaba5c09494c51016ffda9602d0f08", size = 319561 }, ] +[[package]] +name = "termcolor" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/37/72/88311445fd44c455c7d553e61f95412cf89054308a1aa2434ab835075fc5/termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f", size = 13057 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/be/df630c387a0a054815d60be6a97eb4e8f17385d5d6fe660e1c02750062b4/termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8", size = 7755 }, +] + [[package]] name = "tomli" version = "2.0.2"