From c0a58ae5dbb7d94dbe14acc562b73bf86b2e0d54 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Thu, 8 Feb 2024 04:27:25 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A5=20=E5=8D=87=E7=BA=A7=E4=BE=9D?= =?UTF-8?q?=E8=B5=96`SQLAlchemy`=E8=87=B3`2.0.25`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + gsuid_core/gsuid_core.lnk | Bin 593 -> 0 bytes gsuid_core/utils/api/mys/request.py | 2 +- gsuid_core/utils/database/base_models.py | 128 +++++++---- gsuid_core/version.py | 2 +- gsuid_core/webconsole/mount_app.py | 3 +- pdm.lock | 149 ++++++------ poetry.lock | 278 ++++++++++------------- pyproject.toml | 21 +- requirements.txt | 16 +- 10 files changed, 287 insertions(+), 313 deletions(-) delete mode 100644 gsuid_core/gsuid_core.lnk diff --git a/.vscode/settings.json b/.vscode/settings.json index 089df0a..d05b8d5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,6 +18,7 @@ "--profile", "black" ], + "python.analysis.diagnosticMode": "workspace", "python.formatting.provider": "black", "python.linting.flake8Enabled": true, "python.linting.flake8CategorySeverity.W": "Warning", diff --git a/gsuid_core/gsuid_core.lnk b/gsuid_core/gsuid_core.lnk deleted file mode 100644 index 1dca0916f4c90f2a0e4ab8cac44d7430b30f2197..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 593 zcmeZaU|?VrVFHp23}^~(u+$o zQ{t2Ji&7aF+!#0+SQy^#yAsyN=^XJbPYLl;Ofx|J#R@eJt<#SEnknG7im@eIif z`3yx2KqDBW7+~hxN4)LAW&Q-X`5N8W%wMoy1gH574BkL3GEi56Xo!Cp7`%XNQ6Odp zVmp=Q5Kv&Ac)RBx127;E{zPJeJf_FM%izjj#Snwl!UTwM3nG9t2&AMIXP4v`=q8yP zTNGNRGR)hq&Kv0|1 diff --git a/gsuid_core/utils/api/mys/request.py b/gsuid_core/utils/api/mys/request.py index 70a6104..ec09572 100644 --- a/gsuid_core/utils/api/mys/request.py +++ b/gsuid_core/utils/api/mys/request.py @@ -441,7 +441,7 @@ class BaseMysApi: retcode = 0 # 针对1034做特殊处理 - if retcode == 1034 or retcode == 5003: + if retcode == 1034 or retcode == 5003 or retcode == 10035: if uid: header['x-rpc-challenge_game'] = ( '6' if self.is_sr else '2' diff --git a/gsuid_core/utils/database/base_models.py b/gsuid_core/utils/database/base_models.py index 0230089..6e0cb0f 100644 --- a/gsuid_core/utils/database/base_models.py +++ b/gsuid_core/utils/database/base_models.py @@ -11,19 +11,22 @@ from typing import ( Awaitable, ) -from sqlalchemy.future import select -from sqlalchemy import delete, update -from sqlalchemy.orm import sessionmaker -from sqlmodel import Field, SQLModel, col -from sqlalchemy.sql.expression import func, null -from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine +from sqlalchemy.sql.expression import func, null, true +from sqlmodel import Field, SQLModel, col, and_, delete, select, update +from sqlalchemy.ext.asyncio import ( + AsyncSession, + async_sessionmaker, + create_async_engine, +) from gsuid_core.data_store import get_res_path T_BaseModel = TypeVar('T_BaseModel', bound='BaseModel') T_BaseIDModel = TypeVar('T_BaseIDModel', bound='BaseIDModel') T_User = TypeVar('T_User', bound='User') +T_Bind = TypeVar('T_Bind', bound='Bind') T_Push = TypeVar('T_Push', bound='Push') +T_Cache = TypeVar('T_Cache', bound='Cache') P = ParamSpec("P") R = TypeVar("R") @@ -31,7 +34,9 @@ DB_PATH = get_res_path() / 'GsData.db' db_url = str(DB_PATH) url = f'sqlite+aiosqlite:///{db_url}' engine = create_async_engine(url, pool_recycle=1500) -async_maker = sessionmaker(engine, expire_on_commit=False, class_=AsyncSession) +async_maker = async_sessionmaker( + engine, expire_on_commit=False, class_=AsyncSession +) def with_session( @@ -268,8 +273,7 @@ class BaseBotIDModel(BaseIDModel): return await cls.full_insert_data(bot_id=bot_id, **data) sql = update(cls).where( - getattr(cls, uid_name) == uid, - cls.bot_id == bot_id, + and_(getattr(cls, uid_name) == uid, cls.bot_id == bot_id) ) if data is not None: query = sql.values(**data) @@ -322,7 +326,7 @@ class BaseModel(BaseBotIDModel): cls.user_id == user_id, cls.bot_id == bot_id ) result = await session.execute(sql) - data = result.scalars().all() + data = result.scalars()._allrows() return data if data else None @classmethod @@ -357,7 +361,11 @@ class BaseModel(BaseBotIDModel): @classmethod @with_session async def insert_data( - cls, session: AsyncSession, user_id: str, bot_id: str, **data + cls: Type[T_BaseModel], + session: AsyncSession, + user_id: str, + bot_id: str, + **data, ) -> int: '''📝简单介绍: @@ -397,7 +405,11 @@ class BaseModel(BaseBotIDModel): @classmethod @with_session async def delete_data( - cls, session: AsyncSession, user_id: str, bot_id: str, **data + cls: Type[T_BaseModel], + session: AsyncSession, + user_id: str, + bot_id: str, + **data, ) -> int: '''📝简单介绍: @@ -426,7 +438,11 @@ class BaseModel(BaseBotIDModel): @classmethod @with_session async def update_data( - cls, session: AsyncSession, user_id: str, bot_id: str, **data + cls: Type[T_BaseModel], + session: AsyncSession, + user_id: str, + bot_id: str, + **data, ) -> int: '''📝简单介绍: @@ -451,7 +467,9 @@ class BaseModel(BaseBotIDModel): 🔸`int`: 成功为0, 失败为-1(未找到数据则无法更新) ''' - sql = update(cls).where(cls.user_id == user_id, cls.bot_id == bot_id) + sql = update(cls).where( + and_(cls.user_id == user_id, cls.bot_id == bot_id) + ) if data is not None: query = sql.values(**data) query.execution_options(synchronize_session='fetch') @@ -469,7 +487,7 @@ class Bind(BaseModel): ################################ @classmethod async def get_uid_list_by_game( - cls, + cls: Type[T_Bind], user_id: str, bot_id: str, game_name: Optional[str] = None, @@ -514,7 +532,7 @@ class Bind(BaseModel): @classmethod async def get_uid_by_game( - cls, + cls: Type[T_Bind], user_id: str, bot_id: str, game_name: Optional[str] = None, @@ -549,7 +567,7 @@ class Bind(BaseModel): @classmethod async def bind_exists( - cls, + cls: Type[T_Bind], user_id: str, bot_id: str, ) -> bool: @@ -560,7 +578,7 @@ class Bind(BaseModel): @classmethod async def insert_uid( - cls, + cls: Type[T_Bind], user_id: str, bot_id: str, uid: str, @@ -646,7 +664,7 @@ class Bind(BaseModel): @classmethod async def delete_uid( - cls, + cls: Type[T_Bind], user_id: str, bot_id: str, uid: str, @@ -702,7 +720,7 @@ class Bind(BaseModel): @classmethod @with_session async def get_all_uid_list_by_game( - cls, + cls: Type[T_Bind], session: AsyncSession, bot_id: str, game_name: Optional[str] = None, @@ -729,7 +747,7 @@ class Bind(BaseModel): ''' sql = select(cls).where(cls.bot_id == bot_id) result = await session.execute(sql) - data: List["Bind"] = result.scalars().all() + data = result.scalars()._allrows() uid_list: List[str] = [] for item in data: uid = getattr(item, cls.get_gameid_name(game_name)) @@ -740,7 +758,7 @@ class Bind(BaseModel): @classmethod async def switch_uid_by_game( - cls, + cls: Type[T_Bind], user_id: str, bot_id: str, uid: Optional[str] = None, @@ -807,20 +825,26 @@ class Bind(BaseModel): return 0 @classmethod - async def get_bind_group_list(cls, user_id: str, bot_id: str) -> List[str]: + async def get_bind_group_list( + cls: Type[T_Bind], user_id: str, bot_id: str + ) -> List[str]: '''获取传入`user_id`和`bot_id`对应的绑定群列表''' data: Optional["Bind"] = await cls.select_data(user_id, bot_id) return data.group_id.split("_") if data and data.group_id else [] @classmethod - async def get_bind_group(cls, user_id: str, bot_id: str) -> Optional[str]: + async def get_bind_group( + cls: Type[T_Bind], user_id: str, bot_id: str + ) -> Optional[str]: '''获取传入`user_id`和`bot_id`对应的绑定群(如多个则返回第一个)''' data = await cls.get_bind_group_list(user_id, bot_id) return data[0] if data else None @classmethod @with_session - async def get_group_all_uid(cls, session: AsyncSession, group_id: str): + async def get_group_all_uid( + cls: Type[T_Bind], session: AsyncSession, group_id: str + ): '''根据传入`group_id`获取该群号下所有绑定`uid`列表''' result = await session.scalars( select(cls).where(col(cls.group_id).contains(group_id)) @@ -894,12 +918,12 @@ class User(BaseModel): result = await session.execute( select(cls).where(cls.user_id == user_id) ) - data = result.scalars().all() + data = result.scalars()._allrows() return data if data else None @classmethod async def get_user_attr( - cls, + cls: Type[T_User], user_id: str, bot_id: str, attr: str, @@ -932,7 +956,7 @@ class User(BaseModel): @classmethod async def get_user_attr_by_uid( - cls, + cls: Type[T_User], uid: str, attr: str, game_name: Optional[str] = None, @@ -946,7 +970,7 @@ class User(BaseModel): @classmethod async def get_user_attr_by_user_id( - cls, + cls: Type[T_User], user_id: str, attr: str, ) -> Optional[Any]: @@ -959,19 +983,25 @@ class User(BaseModel): @classmethod @with_session - async def mark_invalid(cls, session: AsyncSession, cookie: str, mark: str): + async def mark_invalid( + cls: Type[T_User], session: AsyncSession, cookie: str, mark: str + ): '''令一个cookie所对应数据的`status`值为传入的mark 例如:mark值可以是`error`, 标记该Cookie已失效 ''' - sql = update(cls).where(cls.cookie == cookie).values(status=mark) + sql = ( + update(cls) + .where(and_(cls.cookie == cookie, true())) + .values(status=mark) + ) await session.execute(sql) await session.commit() return True @classmethod async def get_user_cookie_by_uid( - cls, uid: str, game_name: Optional[str] = None + cls: Type[T_User], uid: str, game_name: Optional[str] = None ) -> Optional[str]: '''根据传入的`uid`选择数据实例,然后返回该数据的`cookie`值 @@ -981,7 +1011,7 @@ class User(BaseModel): @classmethod async def get_user_cookie_by_user_id( - cls, user_id: str, bot_id: str + cls: Type[T_User], user_id: str, bot_id: str ) -> Optional[str]: '''根据传入的`user_id`选择数据实例,然后返回该数据的`cookie`值 @@ -991,7 +1021,7 @@ class User(BaseModel): @classmethod async def get_user_stoken_by_uid( - cls, uid: str, game_name: Optional[str] = None + cls: Type[T_User], uid: str, game_name: Optional[str] = None ) -> Optional[str]: '''根据传入的`uid`选择数据实例,然后返回该数据的`stoken`值 @@ -1001,7 +1031,7 @@ class User(BaseModel): @classmethod async def get_user_stoken_by_user_id( - cls, user_id: str, bot_id: str + cls: Type[T_User], user_id: str, bot_id: str ) -> Optional[str]: '''根据传入的`user_id`选择数据实例,然后返回该数据的`stoken`值 @@ -1011,7 +1041,7 @@ class User(BaseModel): @classmethod async def cookie_validate( - cls, uid: str, game_name: Optional[str] = None + cls: Type[T_User], uid: str, game_name: Optional[str] = None ) -> bool: '''根据传入的`uid`选择数据实例, 校验数据中的`cookie`是否有效 @@ -1052,9 +1082,9 @@ class User(BaseModel): 🔸`List[T_User]`: 有效数据的列表, 如没有则为`[]` ''' _switch = getattr(cls, switch_name, cls.push_switch) - sql = select(cls).filter(_switch != 'off') + sql = select(cls).filter(and_(_switch != 'off', true())) data = await session.execute(sql) - data_list: List[T_User] = data.scalars().all() + data_list: List[T_User] = data.scalars()._allrows() return [user for user in data_list] @classmethod @@ -1088,7 +1118,7 @@ class User(BaseModel): else: sql = select(cls).where(cls.cookie != null(), cls.cookie != '') result = await session.execute(sql) - data = result.scalars().all() + data = result.scalars()._allrows() return data @classmethod @@ -1193,7 +1223,7 @@ class User(BaseModel): .order_by(func.random()) ) data = await session.execute(sql) - user_list: List[T_User] = data.scalars().all() + user_list: List[T_User] = data.scalars()._allrows() break else: user_list = await cls.get_all_user() @@ -1238,20 +1268,23 @@ class Cache(BaseIDModel): @classmethod @with_session async def select_cache_cookie( - cls, session: AsyncSession, uid: str, game_name: Optional[str] + cls: Type[T_Cache], + session: AsyncSession, + uid: str, + game_name: Optional[str], ) -> Optional[str]: '''根据给定的`uid`获取表中存在缓存的`cookie`并返回''' sql = select(cls).where( getattr(cls, cls.get_gameid_name(game_name)) == uid ) result = await session.execute(sql) - data: List["Cache"] = result.scalars().all() + data = result.scalars()._allrows() return data[0].cookie if len(data) >= 1 else None @classmethod @with_session async def delete_error_cache( - cls, session: AsyncSession, user: Type["User"] + cls: Type[T_Cache], session: AsyncSession, user: Type["User"] ) -> bool: '''根据给定的`user`模型中, 查找该模型所有数据的status @@ -1263,7 +1296,7 @@ class Cache(BaseIDModel): ''' data = await user.get_all_error_cookie() for cookie in data: - sql = delete(cls).where(cls.cookie == cookie) + sql = delete(cls).where(and_(cls.cookie == cookie, true())) await session.execute(sql) return True @@ -1280,7 +1313,12 @@ class Cache(BaseIDModel): 清除`User`表中该类cookie的status, 令其重新为`None` ''' - sql = update(user).where(user.status == 'limit30').values(status=None) + sql = ( + update(user) + .where(and_(user.status == 'limit30')) + .values(status=None) + .execution_options(synchronize_session="fetch") + ) empty_sql = delete(cls) await session.execute(sql) await session.execute(empty_sql) diff --git a/gsuid_core/version.py b/gsuid_core/version.py index dd9b22c..7225152 100644 --- a/gsuid_core/version.py +++ b/gsuid_core/version.py @@ -1 +1 @@ -__version__ = "0.5.1" +__version__ = "0.5.2" diff --git a/gsuid_core/webconsole/mount_app.py b/gsuid_core/webconsole/mount_app.py index 6690748..b1ce5dc 100644 --- a/gsuid_core/webconsole/mount_app.py +++ b/gsuid_core/webconsole/mount_app.py @@ -109,7 +109,7 @@ class GsUserRegFormAdmin(UserRegFormAdmin): def route_submit(self): async def route( response: Response, - result: BaseApiOut = Depends(super().route_submit), + result: BaseApiOut = Depends(super().route_submit), # type: ignore ): if result.status == 0 and result.code == 0: # 登录成功,设置用户信息 response.set_cookie( @@ -162,7 +162,6 @@ class GsAuthAdminSite(AuthAdminSite): settings = Settings( database_url_async=f'sqlite+aiosqlite:///{db_url}', - database_url='', site_path='/genshinuid', site_icon='https://s2.loli.net/2022/01/31/kwCIl3cF1Z2GxnR.png', site_title='GsCore - 网页控制台', diff --git a/pdm.lock b/pdm.lock index e5b4721..429bfbb 100644 --- a/pdm.lock +++ b/pdm.lock @@ -5,7 +5,7 @@ groups = ["default"] strategy = ["cross_platform"] lock_version = "4.4.1" -content_hash = "sha256:adfef0e5e6f03b2da5ebea578ee371dc1bbdb40deb337866b5bf525af4291ea7" +content_hash = "sha256:56b2caf872d8bcee6467a94080d594c330389e7c106fdcef39a9a7600982def1" [[package]] name = "aioboto3" @@ -424,39 +424,36 @@ files = [ [[package]] name = "fastapi-amis-admin" -version = "0.6.9" -requires_python = ">=3.7" +version = "0.7.1" +requires_python = ">=3.8" summary = "FastAPI-Amis-Admin is a high-performance, efficient and easily extensible FastAPI admin framework. Inspired by Django-admin, and has as many powerful functions as Django-admin. " dependencies = [ "aiofiles>=0.17.0", - "fastapi>=0.100.0", - "pydantic>1.7.4", + "fastapi>=0.103.2", "python-multipart>=0.0.5", "sqlalchemy-database<0.2.0,>=0.1.1", - "sqlalchemy>=1.4.0", + "sqlmodel<0.1.0,>=0.0.14", ] files = [ - {file = "fastapi_amis_admin-0.6.9-py3-none-any.whl", hash = "sha256:0022aefaaef5f3171a9d7da8d7af970d95f6da407308877fa41ce19874a22fa9"}, - {file = "fastapi_amis_admin-0.6.9.tar.gz", hash = "sha256:ae73b2984e6438a58891a560ae9de4e1b6688e81458c653f563a5ac3feaa4dc2"}, + {file = "fastapi_amis_admin-0.7.1-py3-none-any.whl", hash = "sha256:5872bd7e7769f8b3b2e89477abaec48c7b84dabea41a30cdfde3064593d7b043"}, + {file = "fastapi_amis_admin-0.7.1.tar.gz", hash = "sha256:421675c03aa8bf663d4a683668d5e97d40917287216b745c7231df9551483f9b"}, ] [[package]] name = "fastapi-user-auth" -version = "0.6.2" +version = "0.7.2" requires_python = ">=3.8" summary = "FastAPI-User-Auth is a simple and powerful FastAPI user RBAC authentication and authorization library. Based on FastAPI-Amis-Admin and provides a freely extensible visual management interface." dependencies = [ - "bcrypt>=4.0.0", - "casbin>=1.29.0", - "email-validator<2.0.0,>=1.3.1", - "fastapi-amis-admin<0.7.0,>=0.6.5", + "bcrypt<4.1.0,>=4.0.0", + "casbin>=1.34.0", + "email-validator<3.0.0,>=1.3.1", + "fastapi-amis-admin<0.8.0,>=0.7.1", "passlib>=1.7.4", - "pydantic<2.0.0,>=1.10.0", - "sqlmodelx>=0.0.5", ] files = [ - {file = "fastapi_user_auth-0.6.2-py3-none-any.whl", hash = "sha256:28764e4d9bd654c643a7e9bba40bcd29ad39dee52497e023729da787bf0f8c66"}, - {file = "fastapi_user_auth-0.6.2.tar.gz", hash = "sha256:70df3eaf1646d66ced2e835b030de710ae56df4697f909b5b7ca463f9d2fd30c"}, + {file = "fastapi_user_auth-0.7.2-py3-none-any.whl", hash = "sha256:592543e9f909dd1b55a506217c78a3e503cb32279996f75b005deb0b554b2fc9"}, + {file = "fastapi_user_auth-0.7.2.tar.gz", hash = "sha256:b6b81945807981f86bc44badff029662709f28665ef489bbceae3bef0c910587"}, ] [[package]] @@ -1341,45 +1338,56 @@ files = [ [[package]] name = "sqlalchemy" -version = "1.4.51" -requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +version = "2.0.25" +requires_python = ">=3.7" summary = "Database Abstraction Library" dependencies = [ - "greenlet!=0.4.17; (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\") and python_version >= \"3\"", + "greenlet!=0.4.17; platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\"", + "typing-extensions>=4.6.0", ] files = [ - {file = "SQLAlchemy-1.4.51-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:1a09d5bd1a40d76ad90e5570530e082ddc000e1d92de495746f6257dc08f166b"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2be4e6294c53f2ec8ea36486b56390e3bcaa052bf3a9a47005687ccf376745d1"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca484ca11c65e05639ffe80f20d45e6be81fbec7683d6c9a15cd421e6e8b340"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0535d5b57d014d06ceeaeffd816bb3a6e2dddeb670222570b8c4953e2d2ea678"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af55cc207865d641a57f7044e98b08b09220da3d1b13a46f26487cc2f898a072"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-win32.whl", hash = "sha256:7af40425ac535cbda129d9915edcaa002afe35d84609fd3b9d6a8c46732e02ee"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-win_amd64.whl", hash = "sha256:8d1d7d63e5d2f4e92a39ae1e897a5d551720179bb8d1254883e7113d3826d43c"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eaeeb2464019765bc4340214fca1143081d49972864773f3f1e95dba5c7edc7d"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7deeae5071930abb3669b5185abb6c33ddfd2398f87660fafdb9e6a5fb0f3f2f"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0892e7ac8bc76da499ad3ee8de8da4d7905a3110b952e2a35a940dab1ffa550e"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-win32.whl", hash = "sha256:50e074aea505f4427151c286955ea025f51752fa42f9939749336672e0674c81"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-win_amd64.whl", hash = "sha256:3b0cd89a7bd03f57ae58263d0f828a072d1b440c8c2949f38f3b446148321171"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a33cb3f095e7d776ec76e79d92d83117438b6153510770fcd57b9c96f9ef623d"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cacc0b2dd7d22a918a9642fc89840a5d3cee18a0e1fe41080b1141b23b10916"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:245c67c88e63f1523e9216cad6ba3107dea2d3ee19adc359597a628afcabfbcb"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-win32.whl", hash = "sha256:8e702e7489f39375601c7ea5a0bef207256828a2bc5986c65cb15cd0cf097a87"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-win_amd64.whl", hash = "sha256:0525c4905b4b52d8ccc3c203c9d7ab2a80329ffa077d4bacf31aefda7604dc65"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7d8139ca0b9f93890ab899da678816518af74312bb8cd71fb721436a93a93298"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb18549b770351b54e1ab5da37d22bc530b8bfe2ee31e22b9ebe650640d2ef12"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55e699466106d09f028ab78d3c2e1f621b5ef2c8694598242259e4515715da7c"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2ad16880ccd971ac8e570550fbdef1385e094b022d6fc85ef3ce7df400dddad3"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b97fd5bb6b7c1a64b7ac0632f7ce389b8ab362e7bd5f60654c2a418496be5d7f"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-win32.whl", hash = "sha256:cecb66492440ae8592797dd705a0cbaa6abe0555f4fa6c5f40b078bd2740fc6b"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-win_amd64.whl", hash = "sha256:39b02b645632c5fe46b8dd30755682f629ffbb62ff317ecc14c998c21b2896ff"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:b03850c290c765b87102959ea53299dc9addf76ca08a06ea98383348ae205c99"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e646b19f47d655261b22df9976e572f588185279970efba3d45c377127d35349"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3cf56cc36d42908495760b223ca9c2c0f9f0002b4eddc994b24db5fcb86a9e4"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0d661cff58c91726c601cc0ee626bf167b20cc4d7941c93c5f3ac28dc34ddbea"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3823dda635988e6744d4417e13f2e2b5fe76c4bf29dd67e95f98717e1b094cad"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-win32.whl", hash = "sha256:b00cf0471888823b7a9f722c6c41eb6985cf34f077edcf62695ac4bed6ec01ee"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-win_amd64.whl", hash = "sha256:a055ba17f4675aadcda3005df2e28a86feb731fdcc865e1f6b4f209ed1225cba"}, - {file = "SQLAlchemy-1.4.51.tar.gz", hash = "sha256:e7908c2025eb18394e32d65dd02d2e37e17d733cdbe7d78231c2b6d7eb20cdb9"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4344d059265cc8b1b1be351bfb88749294b87a8b2bbe21dfbe066c4199541ebd"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9e2e59cbcc6ba1488404aad43de005d05ca56e069477b33ff74e91b6319735"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84daa0a2055df9ca0f148a64fdde12ac635e30edbca80e87df9b3aaf419e144a"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc8b7dabe8e67c4832891a5d322cec6d44ef02f432b4588390017f5cec186a84"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f5693145220517b5f42393e07a6898acdfe820e136c98663b971906120549da5"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:db854730a25db7c956423bb9fb4bdd1216c839a689bf9cc15fada0a7fb2f4570"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-win32.whl", hash = "sha256:14a6f68e8fc96e5e8f5647ef6cda6250c780612a573d99e4d881581432ef1669"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-win_amd64.whl", hash = "sha256:87f6e732bccd7dcf1741c00f1ecf33797383128bd1c90144ac8adc02cbb98643"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:342d365988ba88ada8af320d43df4e0b13a694dbd75951f537b2d5e4cb5cd002"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f37c0caf14b9e9b9e8f6dbc81bc56db06acb4363eba5a633167781a48ef036ed"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa9373708763ef46782d10e950b49d0235bfe58facebd76917d3f5cbf5971aed"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d24f571990c05f6b36a396218f251f3e0dda916e0c687ef6fdca5072743208f5"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75432b5b14dc2fff43c50435e248b45c7cdadef73388e5610852b95280ffd0e9"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:884272dcd3ad97f47702965a0e902b540541890f468d24bd1d98bcfe41c3f018"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-win32.whl", hash = "sha256:e607cdd99cbf9bb80391f54446b86e16eea6ad309361942bf88318bcd452363c"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d505815ac340568fd03f719446a589162d55c52f08abd77ba8964fbb7eb5b5f"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0dacf67aee53b16f365c589ce72e766efaabd2b145f9de7c917777b575e3659d"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b801154027107461ee992ff4b5c09aa7cc6ec91ddfe50d02bca344918c3265c6"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59a21853f5daeb50412d459cfb13cb82c089ad4c04ec208cd14dddd99fc23b39"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29049e2c299b5ace92cbed0c1610a7a236f3baf4c6b66eb9547c01179f638ec5"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b64b183d610b424a160b0d4d880995e935208fc043d0302dd29fee32d1ee3f95"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f7a7d7fcc675d3d85fbf3b3828ecd5990b8d61bd6de3f1b260080b3beccf215"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-win32.whl", hash = "sha256:cf18ff7fc9941b8fc23437cc3e68ed4ebeff3599eec6ef5eebf305f3d2e9a7c2"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-win_amd64.whl", hash = "sha256:91f7d9d1c4dd1f4f6e092874c128c11165eafcf7c963128f79e28f8445de82d5"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:420362338681eec03f53467804541a854617faed7272fe71a1bfdb07336a381e"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c88f0c7dcc5f99bdb34b4fd9b69b93c89f893f454f40219fe923a3a2fd11625"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3be4987e3ee9d9a380b66393b77a4cd6d742480c951a1c56a23c335caca4ce3"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a159111a0f58fb034c93eeba211b4141137ec4b0a6e75789ab7a3ef3c7e7e3"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8b8cb63d3ea63b29074dcd29da4dc6a97ad1349151f2d2949495418fd6e48db9"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:736ea78cd06de6c21ecba7416499e7236a22374561493b456a1f7ffbe3f6cdb4"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-win32.whl", hash = "sha256:10331f129982a19df4284ceac6fe87353ca3ca6b4ca77ff7d697209ae0a5915e"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-win_amd64.whl", hash = "sha256:c55731c116806836a5d678a70c84cb13f2cedba920212ba7dcad53260997666d"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:605b6b059f4b57b277f75ace81cc5bc6335efcbcc4ccb9066695e515dbdb3900"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:665f0a3954635b5b777a55111ababf44b4fc12b1f3ba0a435b602b6387ffd7cf"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecf6d4cda1f9f6cb0b45803a01ea7f034e2f1aed9475e883410812d9f9e3cfcf"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c51db269513917394faec5e5c00d6f83829742ba62e2ac4fa5c98d58be91662f"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:790f533fa5c8901a62b6fef5811d48980adeb2f51f1290ade8b5e7ba990ba3de"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1b1180cda6df7af84fe72e4530f192231b1f29a7496951db4ff38dac1687202d"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-win32.whl", hash = "sha256:555651adbb503ac7f4cb35834c5e4ae0819aab2cd24857a123370764dc7d7e24"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-win_amd64.whl", hash = "sha256:dc55990143cbd853a5d038c05e79284baedf3e299661389654551bd02a6a68d7"}, + {file = "SQLAlchemy-2.0.25-py3-none-any.whl", hash = "sha256:a86b4240e67d4753dc3092d9511886795b3c2852abe599cffe108952f7af7ac3"}, + {file = "SQLAlchemy-2.0.25.tar.gz", hash = "sha256:a2c69a7664fb2d54b8682dd774c3b54f67f84fa123cf84dda2a5f40dcaa04e08"}, ] [[package]] @@ -1395,45 +1403,18 @@ files = [ {file = "sqlalchemy_database-0.1.1.tar.gz", hash = "sha256:c4a6bdc9812a42e9a246dfd7c336e2685969f1163cf2777c88127615b65c6539"}, ] -[[package]] -name = "sqlalchemy2-stubs" -version = "0.0.2a38" -requires_python = ">=3.6" -summary = "Typing Stubs for SQLAlchemy 1.4" -dependencies = [ - "typing-extensions>=3.7.4", -] -files = [ - {file = "sqlalchemy2-stubs-0.0.2a38.tar.gz", hash = "sha256:861d722abeb12f13eacd775a9f09379b11a5a9076f469ccd4099961b95800f9e"}, - {file = "sqlalchemy2_stubs-0.0.2a38-py3-none-any.whl", hash = "sha256:b62aa46943807287550e2033dafe07564b33b6a815fbaa3c144e396f9cc53bcb"}, -] - [[package]] name = "sqlmodel" -version = "0.0.11" +version = "0.0.14" requires_python = ">=3.7,<4.0" summary = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness." dependencies = [ - "SQLAlchemy<2.0.0,>=1.4.36", - "pydantic<2.0.0,>=1.9.0", - "sqlalchemy2-stubs", + "SQLAlchemy<2.1.0,>=2.0.0", + "pydantic<3.0.0,>=1.10.13", ] files = [ - {file = "sqlmodel-0.0.11-py3-none-any.whl", hash = "sha256:bc0d64c4b901d919d2f16bbd79aefb07cb268c29f7c1dd83a84758772ccc95c6"}, - {file = "sqlmodel-0.0.11.tar.gz", hash = "sha256:fc33abbf7ec29caafabe3d0e1db61e33597857a289e5fd1ecdb91be702b26084"}, -] - -[[package]] -name = "sqlmodelx" -version = "0.0.5" -requires_python = ">=3.7" -summary = "SQLModelX is an extension of the SQLModel library." -dependencies = [ - "sqlmodel>=0.0.7", -] -files = [ - {file = "sqlmodelx-0.0.5-py3-none-any.whl", hash = "sha256:6c5dd61cb24d754c1d21cedf1d8e25023286959c9adf5d7a07363925a94cf3e7"}, - {file = "sqlmodelx-0.0.5.tar.gz", hash = "sha256:ec6df637a1df98b503df053a1db749617fdb1ead119db09ea92f7103877533b5"}, + {file = "sqlmodel-0.0.14-py3-none-any.whl", hash = "sha256:accea3ff5d878e41ac439b11e78613ed61ce300cfcb860e87a2d73d4884cbee4"}, + {file = "sqlmodel-0.0.14.tar.gz", hash = "sha256:0bff8fc94af86b44925aa813f56cf6aabdd7f156b73259f2f60692c6a64ac90e"}, ] [[package]] diff --git a/poetry.lock b/poetry.lock index 7f2c3f8..bf9b3fe 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.7.0 and should not be changed by hand. [[package]] name = "aioboto3" @@ -360,38 +360,32 @@ reference = "mirrors" [[package]] name = "bcrypt" -version = "4.1.2" +version = "4.0.1" description = "Modern password hashing for your software and your servers" optional = false -python-versions = ">=3.7" +python-versions = ">=3.6" files = [ - {file = "bcrypt-4.1.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:ac621c093edb28200728a9cca214d7e838529e557027ef0581685909acd28b5e"}, - {file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea505c97a5c465ab8c3ba75c0805a102ce526695cd6818c6de3b1a38f6f60da1"}, - {file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57fa9442758da926ed33a91644649d3e340a71e2d0a5a8de064fb621fd5a3326"}, - {file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:eb3bd3321517916696233b5e0c67fd7d6281f0ef48e66812db35fc963a422a1c"}, - {file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6cad43d8c63f34b26aef462b6f5e44fdcf9860b723d2453b5d391258c4c8e966"}, - {file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:44290ccc827d3a24604f2c8bcd00d0da349e336e6503656cb8192133e27335e2"}, - {file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:732b3920a08eacf12f93e6b04ea276c489f1c8fb49344f564cca2adb663b3e4c"}, - {file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1c28973decf4e0e69cee78c68e30a523be441972c826703bb93099868a8ff5b5"}, - {file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b8df79979c5bae07f1db22dcc49cc5bccf08a0380ca5c6f391cbb5790355c0b0"}, - {file = "bcrypt-4.1.2-cp37-abi3-win32.whl", hash = "sha256:fbe188b878313d01b7718390f31528be4010fed1faa798c5a1d0469c9c48c369"}, - {file = "bcrypt-4.1.2-cp37-abi3-win_amd64.whl", hash = "sha256:9800ae5bd5077b13725e2e3934aa3c9c37e49d3ea3d06318010aa40f54c63551"}, - {file = "bcrypt-4.1.2-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:71b8be82bc46cedd61a9f4ccb6c1a493211d031415a34adde3669ee1b0afbb63"}, - {file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e3c6642077b0c8092580c819c1684161262b2e30c4f45deb000c38947bf483"}, - {file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:387e7e1af9a4dd636b9505a465032f2f5cb8e61ba1120e79a0e1cd0b512f3dfc"}, - {file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f70d9c61f9c4ca7d57f3bfe88a5ccf62546ffbadf3681bb1e268d9d2e41c91a7"}, - {file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2a298db2a8ab20056120b45e86c00a0a5eb50ec4075b6142db35f593b97cb3fb"}, - {file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ba55e40de38a24e2d78d34c2d36d6e864f93e0d79d0b6ce915e4335aa81d01b1"}, - {file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3566a88234e8de2ccae31968127b0ecccbb4cddb629da744165db72b58d88ca4"}, - {file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b90e216dc36864ae7132cb151ffe95155a37a14e0de3a8f64b49655dd959ff9c"}, - {file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:69057b9fc5093ea1ab00dd24ede891f3e5e65bee040395fb1e66ee196f9c9b4a"}, - {file = "bcrypt-4.1.2-cp39-abi3-win32.whl", hash = "sha256:02d9ef8915f72dd6daaef40e0baeef8a017ce624369f09754baf32bb32dba25f"}, - {file = "bcrypt-4.1.2-cp39-abi3-win_amd64.whl", hash = "sha256:be3ab1071662f6065899fe08428e45c16aa36e28bc42921c4901a191fda6ee42"}, - {file = "bcrypt-4.1.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:d75fc8cd0ba23f97bae88a6ec04e9e5351ff3c6ad06f38fe32ba50cbd0d11946"}, - {file = "bcrypt-4.1.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:a97e07e83e3262599434816f631cc4c7ca2aa8e9c072c1b1a7fec2ae809a1d2d"}, - {file = "bcrypt-4.1.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:e51c42750b7585cee7892c2614be0d14107fad9581d1738d954a262556dd1aab"}, - {file = "bcrypt-4.1.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:ba4e4cc26610581a6329b3937e02d319f5ad4b85b074846bf4fef8a8cf51e7bb"}, - {file = "bcrypt-4.1.2.tar.gz", hash = "sha256:33313a1200a3ae90b75587ceac502b048b840fc69e7f7a0905b5f87fac7a1258"}, + {file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3"}, + {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2"}, + {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535"}, + {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e"}, + {file = "bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab"}, + {file = "bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b"}, + {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215"}, + {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665"}, + {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71"}, + {file = "bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd"}, ] [package.extras] @@ -649,17 +643,17 @@ reference = "mirrors" [[package]] name = "email-validator" -version = "1.3.1" +version = "2.1.0.post1" description = "A robust email address syntax and deliverability validation library." optional = false -python-versions = ">=3.5" +python-versions = ">=3.8" files = [ - {file = "email_validator-1.3.1-py2.py3-none-any.whl", hash = "sha256:49a72f5fa6ed26be1c964f0567d931d10bf3fdeeacdf97bc26ef1cd2a44e0bda"}, - {file = "email_validator-1.3.1.tar.gz", hash = "sha256:d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2"}, + {file = "email_validator-2.1.0.post1-py3-none-any.whl", hash = "sha256:c973053efbeddfef924dc0bd93f6e77a1ea7ee0fce935aea7103c7a3d6d2d637"}, + {file = "email_validator-2.1.0.post1.tar.gz", hash = "sha256:a4b0bd1cf55f073b924258d19321b1f3aa74b4b5a71a42c305575dba920e1a44"}, ] [package.dependencies] -dnspython = ">=1.15.0" +dnspython = ">=2.0.0" idna = ">=2.0.0" [package.source] @@ -712,29 +706,27 @@ reference = "mirrors" [[package]] name = "fastapi-amis-admin" -version = "0.6.9" +version = "0.7.1" description = "FastAPI-Amis-Admin is a high-performance, efficient and easily extensible FastAPI admin framework. Inspired by Django-admin, and has as many powerful functions as Django-admin." optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "fastapi_amis_admin-0.6.9-py3-none-any.whl", hash = "sha256:0022aefaaef5f3171a9d7da8d7af970d95f6da407308877fa41ce19874a22fa9"}, - {file = "fastapi_amis_admin-0.6.9.tar.gz", hash = "sha256:ae73b2984e6438a58891a560ae9de4e1b6688e81458c653f563a5ac3feaa4dc2"}, + {file = "fastapi_amis_admin-0.7.1-py3-none-any.whl", hash = "sha256:5872bd7e7769f8b3b2e89477abaec48c7b84dabea41a30cdfde3064593d7b043"}, + {file = "fastapi_amis_admin-0.7.1.tar.gz", hash = "sha256:421675c03aa8bf663d4a683668d5e97d40917287216b745c7231df9551483f9b"}, ] [package.dependencies] aiofiles = ">=0.17.0" -fastapi = ">=0.100.0" -pydantic = ">1.7.4" +fastapi = ">=0.103.2" python-multipart = ">=0.0.5" -sqlalchemy = ">=1.4.0" sqlalchemy-database = ">=0.1.1,<0.2.0" +sqlmodel = ">=0.0.14,<0.1.0" [package.extras] -cli = ["fastapi-amis-admin-cli (>=0.2.0,<0.3.0)"] +cli = ["fastapi-amis-admin-cli (>=0.2.1,<0.3.0)"] dev = ["pre-commit (>=2.20.0)", "ruff (>=0.0.261)"] -sqlmodel = ["sqlmodel (==0.0.8)"] -standard = ["fastapi-amis-admin-cli (>=0.1.3,<0.2.0)", "uvicorn[standard] (>=0.19.0,<1.0)"] -test = ["aiosqlite (>=0.15.0)", "fastapi-amis-admin-cli (>=0.2.0,<0.3.0)", "httpx (>=0.24.0,<1.0)", "jinja2 (>=2.11.2,<4.0.0)", "pytest (>=6.2.4)", "pytest-asyncio (>=0.17)", "requests (>=2.28.1)", "sqlmodel (==0.0.8)", "ujson (>=4.0.1)", "uvicorn[standard] (>=0.19.0,<1.0)"] +standard = ["fastapi-amis-admin-cli (>=0.2.1,<0.3.0)", "uvicorn[standard] (>=0.19.0,<1.0)"] +test = ["aiosqlite (>=0.15.0)", "fastapi-amis-admin-cli (>=0.2.1,<0.3.0)", "httpx (>=0.24.0,<1.0)", "jinja2 (>=2.11.2,<4.0.0)", "pydantic-settings (>=2.0.0)", "pytest (>=6.2.4)", "pytest-asyncio (>=0.17)", "requests (>=2.28.1)", "ujson (>=4.0.1)", "uvicorn[standard] (>=0.19.0,<1.0)"] [package.source] type = "legacy" @@ -743,28 +735,26 @@ reference = "mirrors" [[package]] name = "fastapi-user-auth" -version = "0.6.2" +version = "0.7.2" description = "FastAPI-User-Auth is a simple and powerful FastAPI user RBAC authentication and authorization library. Based on FastAPI-Amis-Admin and provides a freely extensible visual management interface." optional = false python-versions = ">=3.8" files = [ - {file = "fastapi_user_auth-0.6.2-py3-none-any.whl", hash = "sha256:28764e4d9bd654c643a7e9bba40bcd29ad39dee52497e023729da787bf0f8c66"}, - {file = "fastapi_user_auth-0.6.2.tar.gz", hash = "sha256:70df3eaf1646d66ced2e835b030de710ae56df4697f909b5b7ca463f9d2fd30c"}, + {file = "fastapi_user_auth-0.7.2-py3-none-any.whl", hash = "sha256:592543e9f909dd1b55a506217c78a3e503cb32279996f75b005deb0b554b2fc9"}, + {file = "fastapi_user_auth-0.7.2.tar.gz", hash = "sha256:b6b81945807981f86bc44badff029662709f28665ef489bbceae3bef0c910587"}, ] [package.dependencies] -bcrypt = ">=4.0.0" -casbin = ">=1.29.0" -email-validator = ">=1.3.1,<2.0.0" -fastapi-amis-admin = ">=0.6.5,<0.7.0" +bcrypt = ">=4.0.0,<4.1.0" +casbin = ">=1.34.0" +email-validator = ">=1.3.1,<3.0.0" +fastapi-amis-admin = ">=0.7.1,<0.8.0" passlib = ">=1.7.4" -pydantic = ">=1.10.0,<2.0.0" -sqlmodelx = ">=0.0.5" [package.extras] -jwt = ["python-jose (==3.3.0)"] +jwt = ["python-jose (>=3.3.0)"] redis = ["redis (>=4.2.0)"] -test = ["aiosqlite (>=0.15.0)", "httpx (>=0.23.3)", "jinja2 (>=2.11.2,<4.0.0)", "pre-commit (>=2.20.0)", "pytest (>=6.2.4)", "pytest-asyncio (>=0.17)", "python-jose (==3.3.0)", "requests (>=2.28.1)", "ujson (>=5.5.0)", "uvicorn[standard] (>=0.19.0,<1.0)"] +test = ["aiosqlite (>=0.15.0)", "httpx (>=0.23.3)", "jinja2 (>=2.11.2,<4.0.0)", "pre-commit (>=2.20.0)", "pydantic-settings (>=2.0.0)", "pytest (>=6.2.4)", "pytest-asyncio (>=0.17,<0.23.0)", "python-jose (>=3.3.0)", "requests (>=2.28.1)", "sqlmodelx (>=0.0.11)", "ujson (>=5.5.0)", "uvicorn[standard] (>=0.19.0,<1.0)"] [package.source] type = "legacy" @@ -2373,81 +2363,89 @@ reference = "mirrors" [[package]] name = "sqlalchemy" -version = "1.4.51" +version = "2.0.25" description = "Database Abstraction Library" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" +python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-1.4.51-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:1a09d5bd1a40d76ad90e5570530e082ddc000e1d92de495746f6257dc08f166b"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2be4e6294c53f2ec8ea36486b56390e3bcaa052bf3a9a47005687ccf376745d1"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ca484ca11c65e05639ffe80f20d45e6be81fbec7683d6c9a15cd421e6e8b340"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0535d5b57d014d06ceeaeffd816bb3a6e2dddeb670222570b8c4953e2d2ea678"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af55cc207865d641a57f7044e98b08b09220da3d1b13a46f26487cc2f898a072"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-win32.whl", hash = "sha256:7af40425ac535cbda129d9915edcaa002afe35d84609fd3b9d6a8c46732e02ee"}, - {file = "SQLAlchemy-1.4.51-cp310-cp310-win_amd64.whl", hash = "sha256:8d1d7d63e5d2f4e92a39ae1e897a5d551720179bb8d1254883e7113d3826d43c"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eaeeb2464019765bc4340214fca1143081d49972864773f3f1e95dba5c7edc7d"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7deeae5071930abb3669b5185abb6c33ddfd2398f87660fafdb9e6a5fb0f3f2f"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0892e7ac8bc76da499ad3ee8de8da4d7905a3110b952e2a35a940dab1ffa550e"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-win32.whl", hash = "sha256:50e074aea505f4427151c286955ea025f51752fa42f9939749336672e0674c81"}, - {file = "SQLAlchemy-1.4.51-cp311-cp311-win_amd64.whl", hash = "sha256:3b0cd89a7bd03f57ae58263d0f828a072d1b440c8c2949f38f3b446148321171"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a33cb3f095e7d776ec76e79d92d83117438b6153510770fcd57b9c96f9ef623d"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cacc0b2dd7d22a918a9642fc89840a5d3cee18a0e1fe41080b1141b23b10916"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:245c67c88e63f1523e9216cad6ba3107dea2d3ee19adc359597a628afcabfbcb"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-win32.whl", hash = "sha256:8e702e7489f39375601c7ea5a0bef207256828a2bc5986c65cb15cd0cf097a87"}, - {file = "SQLAlchemy-1.4.51-cp312-cp312-win_amd64.whl", hash = "sha256:0525c4905b4b52d8ccc3c203c9d7ab2a80329ffa077d4bacf31aefda7604dc65"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:1980e6eb6c9be49ea8f89889989127daafc43f0b1b6843d71efab1514973cca0"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ec7a0ed9b32afdf337172678a4a0e6419775ba4e649b66f49415615fa47efbd"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:352df882088a55293f621328ec33b6ffca936ad7f23013b22520542e1ab6ad1b"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:86a22143a4001f53bf58027b044da1fb10d67b62a785fc1390b5c7f089d9838c"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c37bc677690fd33932182b85d37433845de612962ed080c3e4d92f758d1bd894"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-win32.whl", hash = "sha256:d0a83afab5e062abffcdcbcc74f9d3ba37b2385294dd0927ad65fc6ebe04e054"}, - {file = "SQLAlchemy-1.4.51-cp36-cp36m-win_amd64.whl", hash = "sha256:a61184c7289146c8cff06b6b41807c6994c6d437278e72cf00ff7fe1c7a263d1"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:3f0ef620ecbab46e81035cf3dedfb412a7da35340500ba470f9ce43a1e6c423b"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c55040d8ea65414de7c47f1a23823cd9f3fad0dc93e6b6b728fee81230f817b"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ef80328e3fee2be0a1abe3fe9445d3a2e52a1282ba342d0dab6edf1fef4707"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f8cafa6f885a0ff5e39efa9325195217bb47d5929ab0051636610d24aef45ade"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e8f2df79a46e130235bc5e1bbef4de0583fb19d481eaa0bffa76e8347ea45ec6"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-win32.whl", hash = "sha256:f2e5b6f5cf7c18df66d082604a1d9c7a2d18f7d1dbe9514a2afaccbb51cc4fc3"}, - {file = "SQLAlchemy-1.4.51-cp37-cp37m-win_amd64.whl", hash = "sha256:5e180fff133d21a800c4f050733d59340f40d42364fcb9d14f6a67764bdc48d2"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7d8139ca0b9f93890ab899da678816518af74312bb8cd71fb721436a93a93298"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb18549b770351b54e1ab5da37d22bc530b8bfe2ee31e22b9ebe650640d2ef12"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55e699466106d09f028ab78d3c2e1f621b5ef2c8694598242259e4515715da7c"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2ad16880ccd971ac8e570550fbdef1385e094b022d6fc85ef3ce7df400dddad3"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b97fd5bb6b7c1a64b7ac0632f7ce389b8ab362e7bd5f60654c2a418496be5d7f"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-win32.whl", hash = "sha256:cecb66492440ae8592797dd705a0cbaa6abe0555f4fa6c5f40b078bd2740fc6b"}, - {file = "SQLAlchemy-1.4.51-cp38-cp38-win_amd64.whl", hash = "sha256:39b02b645632c5fe46b8dd30755682f629ffbb62ff317ecc14c998c21b2896ff"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:b03850c290c765b87102959ea53299dc9addf76ca08a06ea98383348ae205c99"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e646b19f47d655261b22df9976e572f588185279970efba3d45c377127d35349"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3cf56cc36d42908495760b223ca9c2c0f9f0002b4eddc994b24db5fcb86a9e4"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0d661cff58c91726c601cc0ee626bf167b20cc4d7941c93c5f3ac28dc34ddbea"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3823dda635988e6744d4417e13f2e2b5fe76c4bf29dd67e95f98717e1b094cad"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-win32.whl", hash = "sha256:b00cf0471888823b7a9f722c6c41eb6985cf34f077edcf62695ac4bed6ec01ee"}, - {file = "SQLAlchemy-1.4.51-cp39-cp39-win_amd64.whl", hash = "sha256:a055ba17f4675aadcda3005df2e28a86feb731fdcc865e1f6b4f209ed1225cba"}, - {file = "SQLAlchemy-1.4.51.tar.gz", hash = "sha256:e7908c2025eb18394e32d65dd02d2e37e17d733cdbe7d78231c2b6d7eb20cdb9"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4344d059265cc8b1b1be351bfb88749294b87a8b2bbe21dfbe066c4199541ebd"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9e2e59cbcc6ba1488404aad43de005d05ca56e069477b33ff74e91b6319735"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84daa0a2055df9ca0f148a64fdde12ac635e30edbca80e87df9b3aaf419e144a"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc8b7dabe8e67c4832891a5d322cec6d44ef02f432b4588390017f5cec186a84"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f5693145220517b5f42393e07a6898acdfe820e136c98663b971906120549da5"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:db854730a25db7c956423bb9fb4bdd1216c839a689bf9cc15fada0a7fb2f4570"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-win32.whl", hash = "sha256:14a6f68e8fc96e5e8f5647ef6cda6250c780612a573d99e4d881581432ef1669"}, + {file = "SQLAlchemy-2.0.25-cp310-cp310-win_amd64.whl", hash = "sha256:87f6e732bccd7dcf1741c00f1ecf33797383128bd1c90144ac8adc02cbb98643"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:342d365988ba88ada8af320d43df4e0b13a694dbd75951f537b2d5e4cb5cd002"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f37c0caf14b9e9b9e8f6dbc81bc56db06acb4363eba5a633167781a48ef036ed"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa9373708763ef46782d10e950b49d0235bfe58facebd76917d3f5cbf5971aed"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d24f571990c05f6b36a396218f251f3e0dda916e0c687ef6fdca5072743208f5"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75432b5b14dc2fff43c50435e248b45c7cdadef73388e5610852b95280ffd0e9"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:884272dcd3ad97f47702965a0e902b540541890f468d24bd1d98bcfe41c3f018"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-win32.whl", hash = "sha256:e607cdd99cbf9bb80391f54446b86e16eea6ad309361942bf88318bcd452363c"}, + {file = "SQLAlchemy-2.0.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d505815ac340568fd03f719446a589162d55c52f08abd77ba8964fbb7eb5b5f"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0dacf67aee53b16f365c589ce72e766efaabd2b145f9de7c917777b575e3659d"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b801154027107461ee992ff4b5c09aa7cc6ec91ddfe50d02bca344918c3265c6"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59a21853f5daeb50412d459cfb13cb82c089ad4c04ec208cd14dddd99fc23b39"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29049e2c299b5ace92cbed0c1610a7a236f3baf4c6b66eb9547c01179f638ec5"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b64b183d610b424a160b0d4d880995e935208fc043d0302dd29fee32d1ee3f95"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f7a7d7fcc675d3d85fbf3b3828ecd5990b8d61bd6de3f1b260080b3beccf215"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-win32.whl", hash = "sha256:cf18ff7fc9941b8fc23437cc3e68ed4ebeff3599eec6ef5eebf305f3d2e9a7c2"}, + {file = "SQLAlchemy-2.0.25-cp312-cp312-win_amd64.whl", hash = "sha256:91f7d9d1c4dd1f4f6e092874c128c11165eafcf7c963128f79e28f8445de82d5"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bb209a73b8307f8fe4fe46f6ad5979649be01607f11af1eb94aa9e8a3aaf77f0"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:798f717ae7c806d67145f6ae94dc7c342d3222d3b9a311a784f371a4333212c7"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fdd402169aa00df3142149940b3bf9ce7dde075928c1886d9a1df63d4b8de62"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0d3cab3076af2e4aa5693f89622bef7fa770c6fec967143e4da7508b3dceb9b9"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:74b080c897563f81062b74e44f5a72fa44c2b373741a9ade701d5f789a10ba23"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-win32.whl", hash = "sha256:87d91043ea0dc65ee583026cb18e1b458d8ec5fc0a93637126b5fc0bc3ea68c4"}, + {file = "SQLAlchemy-2.0.25-cp37-cp37m-win_amd64.whl", hash = "sha256:75f99202324383d613ddd1f7455ac908dca9c2dd729ec8584c9541dd41822a2c"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:420362338681eec03f53467804541a854617faed7272fe71a1bfdb07336a381e"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c88f0c7dcc5f99bdb34b4fd9b69b93c89f893f454f40219fe923a3a2fd11625"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3be4987e3ee9d9a380b66393b77a4cd6d742480c951a1c56a23c335caca4ce3"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a159111a0f58fb034c93eeba211b4141137ec4b0a6e75789ab7a3ef3c7e7e3"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8b8cb63d3ea63b29074dcd29da4dc6a97ad1349151f2d2949495418fd6e48db9"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:736ea78cd06de6c21ecba7416499e7236a22374561493b456a1f7ffbe3f6cdb4"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-win32.whl", hash = "sha256:10331f129982a19df4284ceac6fe87353ca3ca6b4ca77ff7d697209ae0a5915e"}, + {file = "SQLAlchemy-2.0.25-cp38-cp38-win_amd64.whl", hash = "sha256:c55731c116806836a5d678a70c84cb13f2cedba920212ba7dcad53260997666d"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:605b6b059f4b57b277f75ace81cc5bc6335efcbcc4ccb9066695e515dbdb3900"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:665f0a3954635b5b777a55111ababf44b4fc12b1f3ba0a435b602b6387ffd7cf"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecf6d4cda1f9f6cb0b45803a01ea7f034e2f1aed9475e883410812d9f9e3cfcf"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c51db269513917394faec5e5c00d6f83829742ba62e2ac4fa5c98d58be91662f"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:790f533fa5c8901a62b6fef5811d48980adeb2f51f1290ade8b5e7ba990ba3de"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1b1180cda6df7af84fe72e4530f192231b1f29a7496951db4ff38dac1687202d"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-win32.whl", hash = "sha256:555651adbb503ac7f4cb35834c5e4ae0819aab2cd24857a123370764dc7d7e24"}, + {file = "SQLAlchemy-2.0.25-cp39-cp39-win_amd64.whl", hash = "sha256:dc55990143cbd853a5d038c05e79284baedf3e299661389654551bd02a6a68d7"}, + {file = "SQLAlchemy-2.0.25-py3-none-any.whl", hash = "sha256:a86b4240e67d4753dc3092d9511886795b3c2852abe599cffe108952f7af7ac3"}, + {file = "SQLAlchemy-2.0.25.tar.gz", hash = "sha256:a2c69a7664fb2d54b8682dd774c3b54f67f84fa123cf84dda2a5f40dcaa04e08"}, ] [package.dependencies] -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\")"} +greenlet = {version = "!=0.4.17", markers = "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\""} +typing-extensions = ">=4.6.0" [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] mssql = ["pyodbc"] mssql-pymssql = ["pymssql"] mssql-pyodbc = ["pyodbc"] -mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] -mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] +mypy = ["mypy (>=0.910)"] +mysql = ["mysqlclient (>=1.4.0)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=7)", "cx-oracle (>=7,<8)"] +oracle = ["cx-oracle (>=8)"] +oracle-oracledb = ["oracledb (>=1.0.1)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-pg8000 = ["pg8000 (>=1.29.1)"] +postgresql-psycopg = ["psycopg (>=3.0.7)"] postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] -pymysql = ["pymysql", "pymysql (<1)"] +postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] +pymysql = ["pymysql"] sqlcipher = ["sqlcipher3-binary"] [package.source] @@ -2478,62 +2476,20 @@ type = "legacy" url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" reference = "mirrors" -[[package]] -name = "sqlalchemy2-stubs" -version = "0.0.2a38" -description = "Typing Stubs for SQLAlchemy 1.4" -optional = false -python-versions = ">=3.6" -files = [ - {file = "sqlalchemy2-stubs-0.0.2a38.tar.gz", hash = "sha256:861d722abeb12f13eacd775a9f09379b11a5a9076f469ccd4099961b95800f9e"}, - {file = "sqlalchemy2_stubs-0.0.2a38-py3-none-any.whl", hash = "sha256:b62aa46943807287550e2033dafe07564b33b6a815fbaa3c144e396f9cc53bcb"}, -] - -[package.dependencies] -typing-extensions = ">=3.7.4" - -[package.source] -type = "legacy" -url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" -reference = "mirrors" - [[package]] name = "sqlmodel" -version = "0.0.11" +version = "0.0.14" description = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness." optional = false python-versions = ">=3.7,<4.0" files = [ - {file = "sqlmodel-0.0.11-py3-none-any.whl", hash = "sha256:bc0d64c4b901d919d2f16bbd79aefb07cb268c29f7c1dd83a84758772ccc95c6"}, - {file = "sqlmodel-0.0.11.tar.gz", hash = "sha256:fc33abbf7ec29caafabe3d0e1db61e33597857a289e5fd1ecdb91be702b26084"}, + {file = "sqlmodel-0.0.14-py3-none-any.whl", hash = "sha256:accea3ff5d878e41ac439b11e78613ed61ce300cfcb860e87a2d73d4884cbee4"}, + {file = "sqlmodel-0.0.14.tar.gz", hash = "sha256:0bff8fc94af86b44925aa813f56cf6aabdd7f156b73259f2f60692c6a64ac90e"}, ] [package.dependencies] -pydantic = ">=1.9.0,<2.0.0" -SQLAlchemy = ">=1.4.36,<2.0.0" -sqlalchemy2-stubs = "*" - -[package.source] -type = "legacy" -url = "https://mirrors.bfsu.edu.cn/pypi/web/simple" -reference = "mirrors" - -[[package]] -name = "sqlmodelx" -version = "0.0.5" -description = "SQLModelX is an extension of the SQLModel library." -optional = false -python-versions = ">=3.7" -files = [ - {file = "sqlmodelx-0.0.5-py3-none-any.whl", hash = "sha256:6c5dd61cb24d754c1d21cedf1d8e25023286959c9adf5d7a07363925a94cf3e7"}, - {file = "sqlmodelx-0.0.5.tar.gz", hash = "sha256:ec6df637a1df98b503df053a1db749617fdb1ead119db09ea92f7103877533b5"}, -] - -[package.dependencies] -sqlmodel = ">=0.0.7" - -[package.extras] -test = ["pytest (>=7.1.3)"] +pydantic = ">=1.10.13,<3.0.0" +SQLAlchemy = ">=2.0.0,<2.1.0" [package.source] type = "legacy" @@ -3079,4 +3035,4 @@ reference = "mirrors" [metadata] lock-version = "2.0" python-versions = "^3.8.1" -content-hash = "80babf9c31494847bd85c380498d31764a1f93c954f69ad1aa34e29035769155" +content-hash = "6a041520c30e909273671af1d193d1f16423a9a0594afca11c16a0e1ed0c8482" diff --git a/pyproject.toml b/pyproject.toml index 2f7e96c..65128c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gsuid-core" -version = "0.5.1" +version = "0.5.2" description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。" authors = ["KimigaiiWuyi <444835641@qq.com>", "MingxuanGame "] license = "GPL-3.0-or-later" @@ -18,14 +18,14 @@ httpx = ">=0.23.0" beautifulsoup4 = ">=4.11.1" lxml = ">=4.9.2" aiohttp = ">=3.8.1" -sqlalchemy = ">=1.4.39,<2.0.0" +sqlalchemy = ">=2.0.0,<2.1.0" pillow = ">=9.2.0" aiosqlite = ">=0.17.0" aiofiles = ">=0.8.0" -sqlmodel = ">=0.0.8" +sqlmodel = ">=0.0.14" gitpython = ">=3.1.27" -fastapi-amis-admin = ">=0.6.0" -fastapi-user-auth = ">=0.5.1" +fastapi-amis-admin = ">=0.7.1" +fastapi-user-auth = ">=0.7.2" qrcode = {extras = ["pil"], version = "^7.3.1"} msgspec = ">= 0.13.1" uvicorn = ">=0.20.0" @@ -33,7 +33,7 @@ websockets = "^10.4" loguru = "^0.6.0" urllib3 = "^1.26.15" mpmath = "^1.3.0" -fastapi = ">=0.104.1" +fastapi = ">=0.109.1" apscheduler = "^3.10.1" aioboto3 = "^12.0.0" jinja2 = "^3.1.2" @@ -44,6 +44,7 @@ bcrypt = "^4.0.1" motor = "^3.3.2" pymongo = "^4.6.1" setuptools = ">=69.0.3" +pydantic = "<2.0.0" [tool.poetry.group.dev.dependencies] flake8 = "^6.0.0" @@ -96,14 +97,14 @@ dependencies = [ "beautifulsoup4>=4.11.1", "lxml>=4.9.2", "aiohttp>=3.8.1", - "sqlalchemy<2.0.0,>=1.4.39", + "sqlalchemy<2.1.0,>=2.0.0", "pillow>=9.2.0", "aiosqlite>=0.17.0", "aiofiles>=0.8.0", "sqlmodel>=0.0.8", "gitpython>=3.1.27", - "fastapi-amis-admin>=0.5.8", - "fastapi-user-auth>=0.5.1", + "fastapi-amis-admin>=0.7.1", + "fastapi-user-auth>=0.7.2", "qrcode[pil]<8.0.0,>=7.3.1", "msgspec>=0.13.1", "uvicorn>=0.20.0", @@ -124,7 +125,7 @@ dependencies = [ "setuptools>=69.0.3", ] name = "gsuid-core" -version = "0.5.1" +version = "0.5.2" description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。" readme = "README.md" diff --git a/requirements.txt b/requirements.txt index 2a03478..749b068 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ apscheduler==3.10.4 ; python_full_version >= "3.8.1" and python_full_version < " async-timeout==4.0.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" attrs==23.2.0 ; python_full_version >= "3.8.1" and python_version < "4.0" backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9" -bcrypt==4.1.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +bcrypt==4.0.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" beautifulsoup4==4.12.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" boto3==1.34.34 ; python_full_version >= "3.8.1" and python_version < "4.0" botocore==1.34.34 ; python_full_version >= "3.8.1" and python_version < "4.0" @@ -21,15 +21,15 @@ certifi==2024.2.2 ; python_full_version >= "3.8.1" and python_full_version < "4. click==8.1.7 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" colorama==0.4.6 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" dnspython==2.5.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -email-validator==1.3.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +email-validator==2.1.0.post1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" exceptiongroup==1.2.0 ; python_full_version >= "3.8.1" and python_version < "3.11" -fastapi-amis-admin==0.6.9 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -fastapi-user-auth==0.6.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +fastapi-amis-admin==0.7.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +fastapi-user-auth==0.7.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" fastapi==0.109.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" frozenlist==1.4.1 ; python_full_version >= "3.8.1" and python_version < "4.0" gitdb==4.0.11 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" gitpython==3.1.41 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -greenlet==3.0.3 ; python_full_version >= "3.8.1" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") and python_version < "4.0" +greenlet==3.0.3 ; python_full_version >= "3.8.1" and python_version < "4.0" and (platform_machine == "aarch64" or platform_machine == "ppc64le" or platform_machine == "x86_64" or platform_machine == "amd64" or platform_machine == "AMD64" or platform_machine == "win32" or platform_machine == "WIN32") h11==0.14.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" httpcore==1.0.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" httpx==0.26.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" @@ -60,10 +60,8 @@ smmap==5.0.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" sniffio==1.3.0 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" soupsieve==2.5 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" sqlalchemy-database==0.1.1 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" -sqlalchemy2-stubs==0.0.2a38 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlalchemy==1.4.51 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlmodel==0.0.11 ; python_full_version >= "3.8.1" and python_version < "4.0" -sqlmodelx==0.0.5 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" +sqlalchemy==2.0.25 ; python_full_version >= "3.8.1" and python_version < "4.0" +sqlmodel==0.0.14 ; python_full_version >= "3.8.1" and python_version < "4.0" starlette==0.36.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" toml==0.10.2 ; python_full_version >= "3.8.1" and python_full_version < "4.0.0" typing-extensions==4.9.0 ; python_full_version >= "3.8.1" and python_version < "4.0"