mirror of
https://github.com/Genshin-bots/gsuid_core.git
synced 2025-05-08 21:15:46 +08:00
💥 升级依赖SQLAlchemy
至2.0.25
This commit is contained in:
parent
5517328a6f
commit
c0a58ae5db
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -18,6 +18,7 @@
|
|||||||
"--profile",
|
"--profile",
|
||||||
"black"
|
"black"
|
||||||
],
|
],
|
||||||
|
"python.analysis.diagnosticMode": "workspace",
|
||||||
"python.formatting.provider": "black",
|
"python.formatting.provider": "black",
|
||||||
"python.linting.flake8Enabled": true,
|
"python.linting.flake8Enabled": true,
|
||||||
"python.linting.flake8CategorySeverity.W": "Warning",
|
"python.linting.flake8CategorySeverity.W": "Warning",
|
||||||
|
Binary file not shown.
@ -441,7 +441,7 @@ class BaseMysApi:
|
|||||||
retcode = 0
|
retcode = 0
|
||||||
|
|
||||||
# 针对1034做特殊处理
|
# 针对1034做特殊处理
|
||||||
if retcode == 1034 or retcode == 5003:
|
if retcode == 1034 or retcode == 5003 or retcode == 10035:
|
||||||
if uid:
|
if uid:
|
||||||
header['x-rpc-challenge_game'] = (
|
header['x-rpc-challenge_game'] = (
|
||||||
'6' if self.is_sr else '2'
|
'6' if self.is_sr else '2'
|
||||||
|
@ -11,19 +11,22 @@ from typing import (
|
|||||||
Awaitable,
|
Awaitable,
|
||||||
)
|
)
|
||||||
|
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.sql.expression import func, null, true
|
||||||
from sqlalchemy import delete, update
|
from sqlmodel import Field, SQLModel, col, and_, delete, select, update
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.ext.asyncio import (
|
||||||
from sqlmodel import Field, SQLModel, col
|
AsyncSession,
|
||||||
from sqlalchemy.sql.expression import func, null
|
async_sessionmaker,
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
|
create_async_engine,
|
||||||
|
)
|
||||||
|
|
||||||
from gsuid_core.data_store import get_res_path
|
from gsuid_core.data_store import get_res_path
|
||||||
|
|
||||||
T_BaseModel = TypeVar('T_BaseModel', bound='BaseModel')
|
T_BaseModel = TypeVar('T_BaseModel', bound='BaseModel')
|
||||||
T_BaseIDModel = TypeVar('T_BaseIDModel', bound='BaseIDModel')
|
T_BaseIDModel = TypeVar('T_BaseIDModel', bound='BaseIDModel')
|
||||||
T_User = TypeVar('T_User', bound='User')
|
T_User = TypeVar('T_User', bound='User')
|
||||||
|
T_Bind = TypeVar('T_Bind', bound='Bind')
|
||||||
T_Push = TypeVar('T_Push', bound='Push')
|
T_Push = TypeVar('T_Push', bound='Push')
|
||||||
|
T_Cache = TypeVar('T_Cache', bound='Cache')
|
||||||
P = ParamSpec("P")
|
P = ParamSpec("P")
|
||||||
R = TypeVar("R")
|
R = TypeVar("R")
|
||||||
|
|
||||||
@ -31,7 +34,9 @@ DB_PATH = get_res_path() / 'GsData.db'
|
|||||||
db_url = str(DB_PATH)
|
db_url = str(DB_PATH)
|
||||||
url = f'sqlite+aiosqlite:///{db_url}'
|
url = f'sqlite+aiosqlite:///{db_url}'
|
||||||
engine = create_async_engine(url, pool_recycle=1500)
|
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(
|
def with_session(
|
||||||
@ -268,8 +273,7 @@ class BaseBotIDModel(BaseIDModel):
|
|||||||
return await cls.full_insert_data(bot_id=bot_id, **data)
|
return await cls.full_insert_data(bot_id=bot_id, **data)
|
||||||
|
|
||||||
sql = update(cls).where(
|
sql = update(cls).where(
|
||||||
getattr(cls, uid_name) == uid,
|
and_(getattr(cls, uid_name) == uid, cls.bot_id == bot_id)
|
||||||
cls.bot_id == bot_id,
|
|
||||||
)
|
)
|
||||||
if data is not None:
|
if data is not None:
|
||||||
query = sql.values(**data)
|
query = sql.values(**data)
|
||||||
@ -322,7 +326,7 @@ class BaseModel(BaseBotIDModel):
|
|||||||
cls.user_id == user_id, cls.bot_id == bot_id
|
cls.user_id == user_id, cls.bot_id == bot_id
|
||||||
)
|
)
|
||||||
result = await session.execute(sql)
|
result = await session.execute(sql)
|
||||||
data = result.scalars().all()
|
data = result.scalars()._allrows()
|
||||||
return data if data else None
|
return data if data else None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -357,7 +361,11 @@ class BaseModel(BaseBotIDModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def insert_data(
|
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:
|
) -> int:
|
||||||
'''📝简单介绍:
|
'''📝简单介绍:
|
||||||
|
|
||||||
@ -397,7 +405,11 @@ class BaseModel(BaseBotIDModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def delete_data(
|
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:
|
) -> int:
|
||||||
'''📝简单介绍:
|
'''📝简单介绍:
|
||||||
|
|
||||||
@ -426,7 +438,11 @@ class BaseModel(BaseBotIDModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def update_data(
|
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:
|
) -> int:
|
||||||
'''📝简单介绍:
|
'''📝简单介绍:
|
||||||
|
|
||||||
@ -451,7 +467,9 @@ class BaseModel(BaseBotIDModel):
|
|||||||
|
|
||||||
🔸`int`: 成功为0, 失败为-1(未找到数据则无法更新)
|
🔸`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:
|
if data is not None:
|
||||||
query = sql.values(**data)
|
query = sql.values(**data)
|
||||||
query.execution_options(synchronize_session='fetch')
|
query.execution_options(synchronize_session='fetch')
|
||||||
@ -469,7 +487,7 @@ class Bind(BaseModel):
|
|||||||
################################
|
################################
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_uid_list_by_game(
|
async def get_uid_list_by_game(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
game_name: Optional[str] = None,
|
game_name: Optional[str] = None,
|
||||||
@ -514,7 +532,7 @@ class Bind(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_uid_by_game(
|
async def get_uid_by_game(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
game_name: Optional[str] = None,
|
game_name: Optional[str] = None,
|
||||||
@ -549,7 +567,7 @@ class Bind(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def bind_exists(
|
async def bind_exists(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
@ -560,7 +578,7 @@ class Bind(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def insert_uid(
|
async def insert_uid(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
uid: str,
|
uid: str,
|
||||||
@ -646,7 +664,7 @@ class Bind(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def delete_uid(
|
async def delete_uid(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
uid: str,
|
uid: str,
|
||||||
@ -702,7 +720,7 @@ class Bind(BaseModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def get_all_uid_list_by_game(
|
async def get_all_uid_list_by_game(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
session: AsyncSession,
|
session: AsyncSession,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
game_name: Optional[str] = None,
|
game_name: Optional[str] = None,
|
||||||
@ -729,7 +747,7 @@ class Bind(BaseModel):
|
|||||||
'''
|
'''
|
||||||
sql = select(cls).where(cls.bot_id == bot_id)
|
sql = select(cls).where(cls.bot_id == bot_id)
|
||||||
result = await session.execute(sql)
|
result = await session.execute(sql)
|
||||||
data: List["Bind"] = result.scalars().all()
|
data = result.scalars()._allrows()
|
||||||
uid_list: List[str] = []
|
uid_list: List[str] = []
|
||||||
for item in data:
|
for item in data:
|
||||||
uid = getattr(item, cls.get_gameid_name(game_name))
|
uid = getattr(item, cls.get_gameid_name(game_name))
|
||||||
@ -740,7 +758,7 @@ class Bind(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def switch_uid_by_game(
|
async def switch_uid_by_game(
|
||||||
cls,
|
cls: Type[T_Bind],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
uid: Optional[str] = None,
|
uid: Optional[str] = None,
|
||||||
@ -807,20 +825,26 @@ class Bind(BaseModel):
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
@classmethod
|
@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`对应的绑定群列表'''
|
'''获取传入`user_id`和`bot_id`对应的绑定群列表'''
|
||||||
data: Optional["Bind"] = await cls.select_data(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 []
|
return data.group_id.split("_") if data and data.group_id else []
|
||||||
|
|
||||||
@classmethod
|
@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`对应的绑定群(如多个则返回第一个)'''
|
'''获取传入`user_id`和`bot_id`对应的绑定群(如多个则返回第一个)'''
|
||||||
data = await cls.get_bind_group_list(user_id, bot_id)
|
data = await cls.get_bind_group_list(user_id, bot_id)
|
||||||
return data[0] if data else None
|
return data[0] if data else None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@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`列表'''
|
'''根据传入`group_id`获取该群号下所有绑定`uid`列表'''
|
||||||
result = await session.scalars(
|
result = await session.scalars(
|
||||||
select(cls).where(col(cls.group_id).contains(group_id))
|
select(cls).where(col(cls.group_id).contains(group_id))
|
||||||
@ -894,12 +918,12 @@ class User(BaseModel):
|
|||||||
result = await session.execute(
|
result = await session.execute(
|
||||||
select(cls).where(cls.user_id == user_id)
|
select(cls).where(cls.user_id == user_id)
|
||||||
)
|
)
|
||||||
data = result.scalars().all()
|
data = result.scalars()._allrows()
|
||||||
return data if data else None
|
return data if data else None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_attr(
|
async def get_user_attr(
|
||||||
cls,
|
cls: Type[T_User],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
bot_id: str,
|
bot_id: str,
|
||||||
attr: str,
|
attr: str,
|
||||||
@ -932,7 +956,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_attr_by_uid(
|
async def get_user_attr_by_uid(
|
||||||
cls,
|
cls: Type[T_User],
|
||||||
uid: str,
|
uid: str,
|
||||||
attr: str,
|
attr: str,
|
||||||
game_name: Optional[str] = None,
|
game_name: Optional[str] = None,
|
||||||
@ -946,7 +970,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_attr_by_user_id(
|
async def get_user_attr_by_user_id(
|
||||||
cls,
|
cls: Type[T_User],
|
||||||
user_id: str,
|
user_id: str,
|
||||||
attr: str,
|
attr: str,
|
||||||
) -> Optional[Any]:
|
) -> Optional[Any]:
|
||||||
@ -959,19 +983,25 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@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
|
'''令一个cookie所对应数据的`status`值为传入的mark
|
||||||
|
|
||||||
例如:mark值可以是`error`, 标记该Cookie已失效
|
例如: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.execute(sql)
|
||||||
await session.commit()
|
await session.commit()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_cookie_by_uid(
|
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]:
|
) -> Optional[str]:
|
||||||
'''根据传入的`uid`选择数据实例,然后返回该数据的`cookie`值
|
'''根据传入的`uid`选择数据实例,然后返回该数据的`cookie`值
|
||||||
|
|
||||||
@ -981,7 +1011,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_cookie_by_user_id(
|
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]:
|
) -> Optional[str]:
|
||||||
'''根据传入的`user_id`选择数据实例,然后返回该数据的`cookie`值
|
'''根据传入的`user_id`选择数据实例,然后返回该数据的`cookie`值
|
||||||
|
|
||||||
@ -991,7 +1021,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_stoken_by_uid(
|
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]:
|
) -> Optional[str]:
|
||||||
'''根据传入的`uid`选择数据实例,然后返回该数据的`stoken`值
|
'''根据传入的`uid`选择数据实例,然后返回该数据的`stoken`值
|
||||||
|
|
||||||
@ -1001,7 +1031,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_user_stoken_by_user_id(
|
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]:
|
) -> Optional[str]:
|
||||||
'''根据传入的`user_id`选择数据实例,然后返回该数据的`stoken`值
|
'''根据传入的`user_id`选择数据实例,然后返回该数据的`stoken`值
|
||||||
|
|
||||||
@ -1011,7 +1041,7 @@ class User(BaseModel):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def cookie_validate(
|
async def cookie_validate(
|
||||||
cls, uid: str, game_name: Optional[str] = None
|
cls: Type[T_User], uid: str, game_name: Optional[str] = None
|
||||||
) -> bool:
|
) -> bool:
|
||||||
'''根据传入的`uid`选择数据实例, 校验数据中的`cookie`是否有效
|
'''根据传入的`uid`选择数据实例, 校验数据中的`cookie`是否有效
|
||||||
|
|
||||||
@ -1052,9 +1082,9 @@ class User(BaseModel):
|
|||||||
🔸`List[T_User]`: 有效数据的列表, 如没有则为`[]`
|
🔸`List[T_User]`: 有效数据的列表, 如没有则为`[]`
|
||||||
'''
|
'''
|
||||||
_switch = getattr(cls, switch_name, cls.push_switch)
|
_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 = 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]
|
return [user for user in data_list]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -1088,7 +1118,7 @@ class User(BaseModel):
|
|||||||
else:
|
else:
|
||||||
sql = select(cls).where(cls.cookie != null(), cls.cookie != '')
|
sql = select(cls).where(cls.cookie != null(), cls.cookie != '')
|
||||||
result = await session.execute(sql)
|
result = await session.execute(sql)
|
||||||
data = result.scalars().all()
|
data = result.scalars()._allrows()
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -1193,7 +1223,7 @@ class User(BaseModel):
|
|||||||
.order_by(func.random())
|
.order_by(func.random())
|
||||||
)
|
)
|
||||||
data = await session.execute(sql)
|
data = await session.execute(sql)
|
||||||
user_list: List[T_User] = data.scalars().all()
|
user_list: List[T_User] = data.scalars()._allrows()
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
user_list = await cls.get_all_user()
|
user_list = await cls.get_all_user()
|
||||||
@ -1238,20 +1268,23 @@ class Cache(BaseIDModel):
|
|||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def select_cache_cookie(
|
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]:
|
) -> Optional[str]:
|
||||||
'''根据给定的`uid`获取表中存在缓存的`cookie`并返回'''
|
'''根据给定的`uid`获取表中存在缓存的`cookie`并返回'''
|
||||||
sql = select(cls).where(
|
sql = select(cls).where(
|
||||||
getattr(cls, cls.get_gameid_name(game_name)) == uid
|
getattr(cls, cls.get_gameid_name(game_name)) == uid
|
||||||
)
|
)
|
||||||
result = await session.execute(sql)
|
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
|
return data[0].cookie if len(data) >= 1 else None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@with_session
|
@with_session
|
||||||
async def delete_error_cache(
|
async def delete_error_cache(
|
||||||
cls, session: AsyncSession, user: Type["User"]
|
cls: Type[T_Cache], session: AsyncSession, user: Type["User"]
|
||||||
) -> bool:
|
) -> bool:
|
||||||
'''根据给定的`user`模型中, 查找该模型所有数据的status
|
'''根据给定的`user`模型中, 查找该模型所有数据的status
|
||||||
|
|
||||||
@ -1263,7 +1296,7 @@ class Cache(BaseIDModel):
|
|||||||
'''
|
'''
|
||||||
data = await user.get_all_error_cookie()
|
data = await user.get_all_error_cookie()
|
||||||
for cookie in data:
|
for cookie in data:
|
||||||
sql = delete(cls).where(cls.cookie == cookie)
|
sql = delete(cls).where(and_(cls.cookie == cookie, true()))
|
||||||
await session.execute(sql)
|
await session.execute(sql)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@ -1280,7 +1313,12 @@ class Cache(BaseIDModel):
|
|||||||
|
|
||||||
清除`User`表中该类cookie的status, 令其重新为`None`
|
清除`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)
|
empty_sql = delete(cls)
|
||||||
await session.execute(sql)
|
await session.execute(sql)
|
||||||
await session.execute(empty_sql)
|
await session.execute(empty_sql)
|
||||||
|
@ -1 +1 @@
|
|||||||
__version__ = "0.5.1"
|
__version__ = "0.5.2"
|
||||||
|
@ -109,7 +109,7 @@ class GsUserRegFormAdmin(UserRegFormAdmin):
|
|||||||
def route_submit(self):
|
def route_submit(self):
|
||||||
async def route(
|
async def route(
|
||||||
response: Response,
|
response: Response,
|
||||||
result: BaseApiOut = Depends(super().route_submit),
|
result: BaseApiOut = Depends(super().route_submit), # type: ignore
|
||||||
):
|
):
|
||||||
if result.status == 0 and result.code == 0: # 登录成功,设置用户信息
|
if result.status == 0 and result.code == 0: # 登录成功,设置用户信息
|
||||||
response.set_cookie(
|
response.set_cookie(
|
||||||
@ -162,7 +162,6 @@ class GsAuthAdminSite(AuthAdminSite):
|
|||||||
|
|
||||||
settings = Settings(
|
settings = Settings(
|
||||||
database_url_async=f'sqlite+aiosqlite:///{db_url}',
|
database_url_async=f'sqlite+aiosqlite:///{db_url}',
|
||||||
database_url='',
|
|
||||||
site_path='/genshinuid',
|
site_path='/genshinuid',
|
||||||
site_icon='https://s2.loli.net/2022/01/31/kwCIl3cF1Z2GxnR.png',
|
site_icon='https://s2.loli.net/2022/01/31/kwCIl3cF1Z2GxnR.png',
|
||||||
site_title='GsCore - 网页控制台',
|
site_title='GsCore - 网页控制台',
|
||||||
|
149
pdm.lock
generated
149
pdm.lock
generated
@ -5,7 +5,7 @@
|
|||||||
groups = ["default"]
|
groups = ["default"]
|
||||||
strategy = ["cross_platform"]
|
strategy = ["cross_platform"]
|
||||||
lock_version = "4.4.1"
|
lock_version = "4.4.1"
|
||||||
content_hash = "sha256:adfef0e5e6f03b2da5ebea578ee371dc1bbdb40deb337866b5bf525af4291ea7"
|
content_hash = "sha256:56b2caf872d8bcee6467a94080d594c330389e7c106fdcef39a9a7600982def1"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aioboto3"
|
name = "aioboto3"
|
||||||
@ -424,39 +424,36 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi-amis-admin"
|
name = "fastapi-amis-admin"
|
||||||
version = "0.6.9"
|
version = "0.7.1"
|
||||||
requires_python = ">=3.7"
|
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. "
|
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 = [
|
dependencies = [
|
||||||
"aiofiles>=0.17.0",
|
"aiofiles>=0.17.0",
|
||||||
"fastapi>=0.100.0",
|
"fastapi>=0.103.2",
|
||||||
"pydantic>1.7.4",
|
|
||||||
"python-multipart>=0.0.5",
|
"python-multipart>=0.0.5",
|
||||||
"sqlalchemy-database<0.2.0,>=0.1.1",
|
"sqlalchemy-database<0.2.0,>=0.1.1",
|
||||||
"sqlalchemy>=1.4.0",
|
"sqlmodel<0.1.0,>=0.0.14",
|
||||||
]
|
]
|
||||||
files = [
|
files = [
|
||||||
{file = "fastapi_amis_admin-0.6.9-py3-none-any.whl", hash = "sha256:0022aefaaef5f3171a9d7da8d7af970d95f6da407308877fa41ce19874a22fa9"},
|
{file = "fastapi_amis_admin-0.7.1-py3-none-any.whl", hash = "sha256:5872bd7e7769f8b3b2e89477abaec48c7b84dabea41a30cdfde3064593d7b043"},
|
||||||
{file = "fastapi_amis_admin-0.6.9.tar.gz", hash = "sha256:ae73b2984e6438a58891a560ae9de4e1b6688e81458c653f563a5ac3feaa4dc2"},
|
{file = "fastapi_amis_admin-0.7.1.tar.gz", hash = "sha256:421675c03aa8bf663d4a683668d5e97d40917287216b745c7231df9551483f9b"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi-user-auth"
|
name = "fastapi-user-auth"
|
||||||
version = "0.6.2"
|
version = "0.7.2"
|
||||||
requires_python = ">=3.8"
|
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."
|
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 = [
|
dependencies = [
|
||||||
"bcrypt>=4.0.0",
|
"bcrypt<4.1.0,>=4.0.0",
|
||||||
"casbin>=1.29.0",
|
"casbin>=1.34.0",
|
||||||
"email-validator<2.0.0,>=1.3.1",
|
"email-validator<3.0.0,>=1.3.1",
|
||||||
"fastapi-amis-admin<0.7.0,>=0.6.5",
|
"fastapi-amis-admin<0.8.0,>=0.7.1",
|
||||||
"passlib>=1.7.4",
|
"passlib>=1.7.4",
|
||||||
"pydantic<2.0.0,>=1.10.0",
|
|
||||||
"sqlmodelx>=0.0.5",
|
|
||||||
]
|
]
|
||||||
files = [
|
files = [
|
||||||
{file = "fastapi_user_auth-0.6.2-py3-none-any.whl", hash = "sha256:28764e4d9bd654c643a7e9bba40bcd29ad39dee52497e023729da787bf0f8c66"},
|
{file = "fastapi_user_auth-0.7.2-py3-none-any.whl", hash = "sha256:592543e9f909dd1b55a506217c78a3e503cb32279996f75b005deb0b554b2fc9"},
|
||||||
{file = "fastapi_user_auth-0.6.2.tar.gz", hash = "sha256:70df3eaf1646d66ced2e835b030de710ae56df4697f909b5b7ca463f9d2fd30c"},
|
{file = "fastapi_user_auth-0.7.2.tar.gz", hash = "sha256:b6b81945807981f86bc44badff029662709f28665ef489bbceae3bef0c910587"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1341,45 +1338,56 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sqlalchemy"
|
name = "sqlalchemy"
|
||||||
version = "1.4.51"
|
version = "2.0.25"
|
||||||
requires_python = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
|
requires_python = ">=3.7"
|
||||||
summary = "Database Abstraction Library"
|
summary = "Database Abstraction Library"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"greenlet!=0.4.17; (platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\") and python_version >= \"3\"",
|
"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 = [
|
files = [
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:1a09d5bd1a40d76ad90e5570530e082ddc000e1d92de495746f6257dc08f166b"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4344d059265cc8b1b1be351bfb88749294b87a8b2bbe21dfbe066c4199541ebd"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2be4e6294c53f2ec8ea36486b56390e3bcaa052bf3a9a47005687ccf376745d1"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9e2e59cbcc6ba1488404aad43de005d05ca56e069477b33ff74e91b6319735"},
|
||||||
{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-2.0.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84daa0a2055df9ca0f148a64fdde12ac635e30edbca80e87df9b3aaf419e144a"},
|
||||||
{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-2.0.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc8b7dabe8e67c4832891a5d322cec6d44ef02f432b4588390017f5cec186a84"},
|
||||||
{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-2.0.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f5693145220517b5f42393e07a6898acdfe820e136c98663b971906120549da5"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-win32.whl", hash = "sha256:7af40425ac535cbda129d9915edcaa002afe35d84609fd3b9d6a8c46732e02ee"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:db854730a25db7c956423bb9fb4bdd1216c839a689bf9cc15fada0a7fb2f4570"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-win_amd64.whl", hash = "sha256:8d1d7d63e5d2f4e92a39ae1e897a5d551720179bb8d1254883e7113d3826d43c"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-win32.whl", hash = "sha256:14a6f68e8fc96e5e8f5647ef6cda6250c780612a573d99e4d881581432ef1669"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eaeeb2464019765bc4340214fca1143081d49972864773f3f1e95dba5c7edc7d"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-win_amd64.whl", hash = "sha256:87f6e732bccd7dcf1741c00f1ecf33797383128bd1c90144ac8adc02cbb98643"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7deeae5071930abb3669b5185abb6c33ddfd2398f87660fafdb9e6a5fb0f3f2f"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:342d365988ba88ada8af320d43df4e0b13a694dbd75951f537b2d5e4cb5cd002"},
|
||||||
{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-2.0.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f37c0caf14b9e9b9e8f6dbc81bc56db06acb4363eba5a633167781a48ef036ed"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-win32.whl", hash = "sha256:50e074aea505f4427151c286955ea025f51752fa42f9939749336672e0674c81"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa9373708763ef46782d10e950b49d0235bfe58facebd76917d3f5cbf5971aed"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-win_amd64.whl", hash = "sha256:3b0cd89a7bd03f57ae58263d0f828a072d1b440c8c2949f38f3b446148321171"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d24f571990c05f6b36a396218f251f3e0dda916e0c687ef6fdca5072743208f5"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a33cb3f095e7d776ec76e79d92d83117438b6153510770fcd57b9c96f9ef623d"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75432b5b14dc2fff43c50435e248b45c7cdadef73388e5610852b95280ffd0e9"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cacc0b2dd7d22a918a9642fc89840a5d3cee18a0e1fe41080b1141b23b10916"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:884272dcd3ad97f47702965a0e902b540541890f468d24bd1d98bcfe41c3f018"},
|
||||||
{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-2.0.25-cp311-cp311-win32.whl", hash = "sha256:e607cdd99cbf9bb80391f54446b86e16eea6ad309361942bf88318bcd452363c"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-win32.whl", hash = "sha256:8e702e7489f39375601c7ea5a0bef207256828a2bc5986c65cb15cd0cf097a87"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d505815ac340568fd03f719446a589162d55c52f08abd77ba8964fbb7eb5b5f"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-win_amd64.whl", hash = "sha256:0525c4905b4b52d8ccc3c203c9d7ab2a80329ffa077d4bacf31aefda7604dc65"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0dacf67aee53b16f365c589ce72e766efaabd2b145f9de7c917777b575e3659d"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7d8139ca0b9f93890ab899da678816518af74312bb8cd71fb721436a93a93298"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b801154027107461ee992ff4b5c09aa7cc6ec91ddfe50d02bca344918c3265c6"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb18549b770351b54e1ab5da37d22bc530b8bfe2ee31e22b9ebe650640d2ef12"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59a21853f5daeb50412d459cfb13cb82c089ad4c04ec208cd14dddd99fc23b39"},
|
||||||
{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-2.0.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29049e2c299b5ace92cbed0c1610a7a236f3baf4c6b66eb9547c01179f638ec5"},
|
||||||
{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-2.0.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b64b183d610b424a160b0d4d880995e935208fc043d0302dd29fee32d1ee3f95"},
|
||||||
{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-2.0.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f7a7d7fcc675d3d85fbf3b3828ecd5990b8d61bd6de3f1b260080b3beccf215"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-win32.whl", hash = "sha256:cecb66492440ae8592797dd705a0cbaa6abe0555f4fa6c5f40b078bd2740fc6b"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-win32.whl", hash = "sha256:cf18ff7fc9941b8fc23437cc3e68ed4ebeff3599eec6ef5eebf305f3d2e9a7c2"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-win_amd64.whl", hash = "sha256:39b02b645632c5fe46b8dd30755682f629ffbb62ff317ecc14c998c21b2896ff"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-win_amd64.whl", hash = "sha256:91f7d9d1c4dd1f4f6e092874c128c11165eafcf7c963128f79e28f8445de82d5"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:b03850c290c765b87102959ea53299dc9addf76ca08a06ea98383348ae205c99"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:420362338681eec03f53467804541a854617faed7272fe71a1bfdb07336a381e"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e646b19f47d655261b22df9976e572f588185279970efba3d45c377127d35349"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c88f0c7dcc5f99bdb34b4fd9b69b93c89f893f454f40219fe923a3a2fd11625"},
|
||||||
{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-2.0.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3be4987e3ee9d9a380b66393b77a4cd6d742480c951a1c56a23c335caca4ce3"},
|
||||||
{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-2.0.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a159111a0f58fb034c93eeba211b4141137ec4b0a6e75789ab7a3ef3c7e7e3"},
|
||||||
{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-2.0.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8b8cb63d3ea63b29074dcd29da4dc6a97ad1349151f2d2949495418fd6e48db9"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-win32.whl", hash = "sha256:b00cf0471888823b7a9f722c6c41eb6985cf34f077edcf62695ac4bed6ec01ee"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:736ea78cd06de6c21ecba7416499e7236a22374561493b456a1f7ffbe3f6cdb4"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-win_amd64.whl", hash = "sha256:a055ba17f4675aadcda3005df2e28a86feb731fdcc865e1f6b4f209ed1225cba"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-win32.whl", hash = "sha256:10331f129982a19df4284ceac6fe87353ca3ca6b4ca77ff7d697209ae0a5915e"},
|
||||||
{file = "SQLAlchemy-1.4.51.tar.gz", hash = "sha256:e7908c2025eb18394e32d65dd02d2e37e17d733cdbe7d78231c2b6d7eb20cdb9"},
|
{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]]
|
[[package]]
|
||||||
@ -1395,45 +1403,18 @@ files = [
|
|||||||
{file = "sqlalchemy_database-0.1.1.tar.gz", hash = "sha256:c4a6bdc9812a42e9a246dfd7c336e2685969f1163cf2777c88127615b65c6539"},
|
{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]]
|
[[package]]
|
||||||
name = "sqlmodel"
|
name = "sqlmodel"
|
||||||
version = "0.0.11"
|
version = "0.0.14"
|
||||||
requires_python = ">=3.7,<4.0"
|
requires_python = ">=3.7,<4.0"
|
||||||
summary = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness."
|
summary = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness."
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"SQLAlchemy<2.0.0,>=1.4.36",
|
"SQLAlchemy<2.1.0,>=2.0.0",
|
||||||
"pydantic<2.0.0,>=1.9.0",
|
"pydantic<3.0.0,>=1.10.13",
|
||||||
"sqlalchemy2-stubs",
|
|
||||||
]
|
]
|
||||||
files = [
|
files = [
|
||||||
{file = "sqlmodel-0.0.11-py3-none-any.whl", hash = "sha256:bc0d64c4b901d919d2f16bbd79aefb07cb268c29f7c1dd83a84758772ccc95c6"},
|
{file = "sqlmodel-0.0.14-py3-none-any.whl", hash = "sha256:accea3ff5d878e41ac439b11e78613ed61ce300cfcb860e87a2d73d4884cbee4"},
|
||||||
{file = "sqlmodel-0.0.11.tar.gz", hash = "sha256:fc33abbf7ec29caafabe3d0e1db61e33597857a289e5fd1ecdb91be702b26084"},
|
{file = "sqlmodel-0.0.14.tar.gz", hash = "sha256:0bff8fc94af86b44925aa813f56cf6aabdd7f156b73259f2f60692c6a64ac90e"},
|
||||||
]
|
|
||||||
|
|
||||||
[[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"},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
278
poetry.lock
generated
278
poetry.lock
generated
@ -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]]
|
[[package]]
|
||||||
name = "aioboto3"
|
name = "aioboto3"
|
||||||
@ -360,38 +360,32 @@ reference = "mirrors"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bcrypt"
|
name = "bcrypt"
|
||||||
version = "4.1.2"
|
version = "4.0.1"
|
||||||
description = "Modern password hashing for your software and your servers"
|
description = "Modern password hashing for your software and your servers"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.6"
|
||||||
files = [
|
files = [
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:ac621c093edb28200728a9cca214d7e838529e557027ef0581685909acd28b5e"},
|
{file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea505c97a5c465ab8c3ba75c0805a102ce526695cd6818c6de3b1a38f6f60da1"},
|
{file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:57fa9442758da926ed33a91644649d3e340a71e2d0a5a8de064fb621fd5a3326"},
|
{file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:eb3bd3321517916696233b5e0c67fd7d6281f0ef48e66812db35fc963a422a1c"},
|
{file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6cad43d8c63f34b26aef462b6f5e44fdcf9860b723d2453b5d391258c4c8e966"},
|
{file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:44290ccc827d3a24604f2c8bcd00d0da349e336e6503656cb8192133e27335e2"},
|
{file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:732b3920a08eacf12f93e6b04ea276c489f1c8fb49344f564cca2adb663b3e4c"},
|
{file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1c28973decf4e0e69cee78c68e30a523be441972c826703bb93099868a8ff5b5"},
|
{file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b8df79979c5bae07f1db22dcc49cc5bccf08a0380ca5c6f391cbb5790355c0b0"},
|
{file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-win32.whl", hash = "sha256:fbe188b878313d01b7718390f31528be4010fed1faa798c5a1d0469c9c48c369"},
|
{file = "bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab"},
|
||||||
{file = "bcrypt-4.1.2-cp37-abi3-win_amd64.whl", hash = "sha256:9800ae5bd5077b13725e2e3934aa3c9c37e49d3ea3d06318010aa40f54c63551"},
|
{file = "bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:71b8be82bc46cedd61a9f4ccb6c1a493211d031415a34adde3669ee1b0afbb63"},
|
{file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68e3c6642077b0c8092580c819c1684161262b2e30c4f45deb000c38947bf483"},
|
{file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:387e7e1af9a4dd636b9505a465032f2f5cb8e61ba1120e79a0e1cd0b512f3dfc"},
|
{file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f70d9c61f9c4ca7d57f3bfe88a5ccf62546ffbadf3681bb1e268d9d2e41c91a7"},
|
{file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2a298db2a8ab20056120b45e86c00a0a5eb50ec4075b6142db35f593b97cb3fb"},
|
{file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:ba55e40de38a24e2d78d34c2d36d6e864f93e0d79d0b6ce915e4335aa81d01b1"},
|
{file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3566a88234e8de2ccae31968127b0ecccbb4cddb629da744165db72b58d88ca4"},
|
{file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b90e216dc36864ae7132cb151ffe95155a37a14e0de3a8f64b49655dd959ff9c"},
|
{file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:69057b9fc5093ea1ab00dd24ede891f3e5e65bee040395fb1e66ee196f9c9b4a"},
|
{file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71"},
|
||||||
{file = "bcrypt-4.1.2-cp39-abi3-win32.whl", hash = "sha256:02d9ef8915f72dd6daaef40e0baeef8a017ce624369f09754baf32bb32dba25f"},
|
{file = "bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd"},
|
||||||
{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"},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@ -649,17 +643,17 @@ reference = "mirrors"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "email-validator"
|
name = "email-validator"
|
||||||
version = "1.3.1"
|
version = "2.1.0.post1"
|
||||||
description = "A robust email address syntax and deliverability validation library."
|
description = "A robust email address syntax and deliverability validation library."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.5"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "email_validator-1.3.1-py2.py3-none-any.whl", hash = "sha256:49a72f5fa6ed26be1c964f0567d931d10bf3fdeeacdf97bc26ef1cd2a44e0bda"},
|
{file = "email_validator-2.1.0.post1-py3-none-any.whl", hash = "sha256:c973053efbeddfef924dc0bd93f6e77a1ea7ee0fce935aea7103c7a3d6d2d637"},
|
||||||
{file = "email_validator-1.3.1.tar.gz", hash = "sha256:d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2"},
|
{file = "email_validator-2.1.0.post1.tar.gz", hash = "sha256:a4b0bd1cf55f073b924258d19321b1f3aa74b4b5a71a42c305575dba920e1a44"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
dnspython = ">=1.15.0"
|
dnspython = ">=2.0.0"
|
||||||
idna = ">=2.0.0"
|
idna = ">=2.0.0"
|
||||||
|
|
||||||
[package.source]
|
[package.source]
|
||||||
@ -712,29 +706,27 @@ reference = "mirrors"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi-amis-admin"
|
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."
|
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
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "fastapi_amis_admin-0.6.9-py3-none-any.whl", hash = "sha256:0022aefaaef5f3171a9d7da8d7af970d95f6da407308877fa41ce19874a22fa9"},
|
{file = "fastapi_amis_admin-0.7.1-py3-none-any.whl", hash = "sha256:5872bd7e7769f8b3b2e89477abaec48c7b84dabea41a30cdfde3064593d7b043"},
|
||||||
{file = "fastapi_amis_admin-0.6.9.tar.gz", hash = "sha256:ae73b2984e6438a58891a560ae9de4e1b6688e81458c653f563a5ac3feaa4dc2"},
|
{file = "fastapi_amis_admin-0.7.1.tar.gz", hash = "sha256:421675c03aa8bf663d4a683668d5e97d40917287216b745c7231df9551483f9b"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
aiofiles = ">=0.17.0"
|
aiofiles = ">=0.17.0"
|
||||||
fastapi = ">=0.100.0"
|
fastapi = ">=0.103.2"
|
||||||
pydantic = ">1.7.4"
|
|
||||||
python-multipart = ">=0.0.5"
|
python-multipart = ">=0.0.5"
|
||||||
sqlalchemy = ">=1.4.0"
|
|
||||||
sqlalchemy-database = ">=0.1.1,<0.2.0"
|
sqlalchemy-database = ">=0.1.1,<0.2.0"
|
||||||
|
sqlmodel = ">=0.0.14,<0.1.0"
|
||||||
|
|
||||||
[package.extras]
|
[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)"]
|
dev = ["pre-commit (>=2.20.0)", "ruff (>=0.0.261)"]
|
||||||
sqlmodel = ["sqlmodel (==0.0.8)"]
|
standard = ["fastapi-amis-admin-cli (>=0.2.1,<0.3.0)", "uvicorn[standard] (>=0.19.0,<1.0)"]
|
||||||
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.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)"]
|
||||||
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)"]
|
|
||||||
|
|
||||||
[package.source]
|
[package.source]
|
||||||
type = "legacy"
|
type = "legacy"
|
||||||
@ -743,28 +735,26 @@ reference = "mirrors"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi-user-auth"
|
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."
|
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
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "fastapi_user_auth-0.6.2-py3-none-any.whl", hash = "sha256:28764e4d9bd654c643a7e9bba40bcd29ad39dee52497e023729da787bf0f8c66"},
|
{file = "fastapi_user_auth-0.7.2-py3-none-any.whl", hash = "sha256:592543e9f909dd1b55a506217c78a3e503cb32279996f75b005deb0b554b2fc9"},
|
||||||
{file = "fastapi_user_auth-0.6.2.tar.gz", hash = "sha256:70df3eaf1646d66ced2e835b030de710ae56df4697f909b5b7ca463f9d2fd30c"},
|
{file = "fastapi_user_auth-0.7.2.tar.gz", hash = "sha256:b6b81945807981f86bc44badff029662709f28665ef489bbceae3bef0c910587"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
bcrypt = ">=4.0.0"
|
bcrypt = ">=4.0.0,<4.1.0"
|
||||||
casbin = ">=1.29.0"
|
casbin = ">=1.34.0"
|
||||||
email-validator = ">=1.3.1,<2.0.0"
|
email-validator = ">=1.3.1,<3.0.0"
|
||||||
fastapi-amis-admin = ">=0.6.5,<0.7.0"
|
fastapi-amis-admin = ">=0.7.1,<0.8.0"
|
||||||
passlib = ">=1.7.4"
|
passlib = ">=1.7.4"
|
||||||
pydantic = ">=1.10.0,<2.0.0"
|
|
||||||
sqlmodelx = ">=0.0.5"
|
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
jwt = ["python-jose (==3.3.0)"]
|
jwt = ["python-jose (>=3.3.0)"]
|
||||||
redis = ["redis (>=4.2.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]
|
[package.source]
|
||||||
type = "legacy"
|
type = "legacy"
|
||||||
@ -2373,81 +2363,89 @@ reference = "mirrors"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "sqlalchemy"
|
name = "sqlalchemy"
|
||||||
version = "1.4.51"
|
version = "2.0.25"
|
||||||
description = "Database Abstraction Library"
|
description = "Database Abstraction Library"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:1a09d5bd1a40d76ad90e5570530e082ddc000e1d92de495746f6257dc08f166b"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4344d059265cc8b1b1be351bfb88749294b87a8b2bbe21dfbe066c4199541ebd"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2be4e6294c53f2ec8ea36486b56390e3bcaa052bf3a9a47005687ccf376745d1"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f9e2e59cbcc6ba1488404aad43de005d05ca56e069477b33ff74e91b6319735"},
|
||||||
{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-2.0.25-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84daa0a2055df9ca0f148a64fdde12ac635e30edbca80e87df9b3aaf419e144a"},
|
||||||
{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-2.0.25-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc8b7dabe8e67c4832891a5d322cec6d44ef02f432b4588390017f5cec186a84"},
|
||||||
{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-2.0.25-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f5693145220517b5f42393e07a6898acdfe820e136c98663b971906120549da5"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-win32.whl", hash = "sha256:7af40425ac535cbda129d9915edcaa002afe35d84609fd3b9d6a8c46732e02ee"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:db854730a25db7c956423bb9fb4bdd1216c839a689bf9cc15fada0a7fb2f4570"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp310-cp310-win_amd64.whl", hash = "sha256:8d1d7d63e5d2f4e92a39ae1e897a5d551720179bb8d1254883e7113d3826d43c"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-win32.whl", hash = "sha256:14a6f68e8fc96e5e8f5647ef6cda6250c780612a573d99e4d881581432ef1669"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eaeeb2464019765bc4340214fca1143081d49972864773f3f1e95dba5c7edc7d"},
|
{file = "SQLAlchemy-2.0.25-cp310-cp310-win_amd64.whl", hash = "sha256:87f6e732bccd7dcf1741c00f1ecf33797383128bd1c90144ac8adc02cbb98643"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7deeae5071930abb3669b5185abb6c33ddfd2398f87660fafdb9e6a5fb0f3f2f"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:342d365988ba88ada8af320d43df4e0b13a694dbd75951f537b2d5e4cb5cd002"},
|
||||||
{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-2.0.25-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f37c0caf14b9e9b9e8f6dbc81bc56db06acb4363eba5a633167781a48ef036ed"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-win32.whl", hash = "sha256:50e074aea505f4427151c286955ea025f51752fa42f9939749336672e0674c81"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa9373708763ef46782d10e950b49d0235bfe58facebd76917d3f5cbf5971aed"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp311-cp311-win_amd64.whl", hash = "sha256:3b0cd89a7bd03f57ae58263d0f828a072d1b440c8c2949f38f3b446148321171"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d24f571990c05f6b36a396218f251f3e0dda916e0c687ef6fdca5072743208f5"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:a33cb3f095e7d776ec76e79d92d83117438b6153510770fcd57b9c96f9ef623d"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75432b5b14dc2fff43c50435e248b45c7cdadef73388e5610852b95280ffd0e9"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cacc0b2dd7d22a918a9642fc89840a5d3cee18a0e1fe41080b1141b23b10916"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:884272dcd3ad97f47702965a0e902b540541890f468d24bd1d98bcfe41c3f018"},
|
||||||
{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-2.0.25-cp311-cp311-win32.whl", hash = "sha256:e607cdd99cbf9bb80391f54446b86e16eea6ad309361942bf88318bcd452363c"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-win32.whl", hash = "sha256:8e702e7489f39375601c7ea5a0bef207256828a2bc5986c65cb15cd0cf097a87"},
|
{file = "SQLAlchemy-2.0.25-cp311-cp311-win_amd64.whl", hash = "sha256:7d505815ac340568fd03f719446a589162d55c52f08abd77ba8964fbb7eb5b5f"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp312-cp312-win_amd64.whl", hash = "sha256:0525c4905b4b52d8ccc3c203c9d7ab2a80329ffa077d4bacf31aefda7604dc65"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0dacf67aee53b16f365c589ce72e766efaabd2b145f9de7c917777b575e3659d"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:1980e6eb6c9be49ea8f89889989127daafc43f0b1b6843d71efab1514973cca0"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b801154027107461ee992ff4b5c09aa7cc6ec91ddfe50d02bca344918c3265c6"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ec7a0ed9b32afdf337172678a4a0e6419775ba4e649b66f49415615fa47efbd"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59a21853f5daeb50412d459cfb13cb82c089ad4c04ec208cd14dddd99fc23b39"},
|
||||||
{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-2.0.25-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:29049e2c299b5ace92cbed0c1610a7a236f3baf4c6b66eb9547c01179f638ec5"},
|
||||||
{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-2.0.25-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b64b183d610b424a160b0d4d880995e935208fc043d0302dd29fee32d1ee3f95"},
|
||||||
{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-2.0.25-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f7a7d7fcc675d3d85fbf3b3828ecd5990b8d61bd6de3f1b260080b3beccf215"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp36-cp36m-win32.whl", hash = "sha256:d0a83afab5e062abffcdcbcc74f9d3ba37b2385294dd0927ad65fc6ebe04e054"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-win32.whl", hash = "sha256:cf18ff7fc9941b8fc23437cc3e68ed4ebeff3599eec6ef5eebf305f3d2e9a7c2"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp36-cp36m-win_amd64.whl", hash = "sha256:a61184c7289146c8cff06b6b41807c6994c6d437278e72cf00ff7fe1c7a263d1"},
|
{file = "SQLAlchemy-2.0.25-cp312-cp312-win_amd64.whl", hash = "sha256:91f7d9d1c4dd1f4f6e092874c128c11165eafcf7c963128f79e28f8445de82d5"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:3f0ef620ecbab46e81035cf3dedfb412a7da35340500ba470f9ce43a1e6c423b"},
|
{file = "SQLAlchemy-2.0.25-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bb209a73b8307f8fe4fe46f6ad5979649be01607f11af1eb94aa9e8a3aaf77f0"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c55040d8ea65414de7c47f1a23823cd9f3fad0dc93e6b6b728fee81230f817b"},
|
{file = "SQLAlchemy-2.0.25-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:798f717ae7c806d67145f6ae94dc7c342d3222d3b9a311a784f371a4333212c7"},
|
||||||
{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-2.0.25-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fdd402169aa00df3142149940b3bf9ce7dde075928c1886d9a1df63d4b8de62"},
|
||||||
{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-2.0.25-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0d3cab3076af2e4aa5693f89622bef7fa770c6fec967143e4da7508b3dceb9b9"},
|
||||||
{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-2.0.25-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:74b080c897563f81062b74e44f5a72fa44c2b373741a9ade701d5f789a10ba23"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp37-cp37m-win32.whl", hash = "sha256:f2e5b6f5cf7c18df66d082604a1d9c7a2d18f7d1dbe9514a2afaccbb51cc4fc3"},
|
{file = "SQLAlchemy-2.0.25-cp37-cp37m-win32.whl", hash = "sha256:87d91043ea0dc65ee583026cb18e1b458d8ec5fc0a93637126b5fc0bc3ea68c4"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp37-cp37m-win_amd64.whl", hash = "sha256:5e180fff133d21a800c4f050733d59340f40d42364fcb9d14f6a67764bdc48d2"},
|
{file = "SQLAlchemy-2.0.25-cp37-cp37m-win_amd64.whl", hash = "sha256:75f99202324383d613ddd1f7455ac908dca9c2dd729ec8584c9541dd41822a2c"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:7d8139ca0b9f93890ab899da678816518af74312bb8cd71fb721436a93a93298"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:420362338681eec03f53467804541a854617faed7272fe71a1bfdb07336a381e"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb18549b770351b54e1ab5da37d22bc530b8bfe2ee31e22b9ebe650640d2ef12"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7c88f0c7dcc5f99bdb34b4fd9b69b93c89f893f454f40219fe923a3a2fd11625"},
|
||||||
{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-2.0.25-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3be4987e3ee9d9a380b66393b77a4cd6d742480c951a1c56a23c335caca4ce3"},
|
||||||
{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-2.0.25-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a159111a0f58fb034c93eeba211b4141137ec4b0a6e75789ab7a3ef3c7e7e3"},
|
||||||
{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-2.0.25-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8b8cb63d3ea63b29074dcd29da4dc6a97ad1349151f2d2949495418fd6e48db9"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-win32.whl", hash = "sha256:cecb66492440ae8592797dd705a0cbaa6abe0555f4fa6c5f40b078bd2740fc6b"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:736ea78cd06de6c21ecba7416499e7236a22374561493b456a1f7ffbe3f6cdb4"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp38-cp38-win_amd64.whl", hash = "sha256:39b02b645632c5fe46b8dd30755682f629ffbb62ff317ecc14c998c21b2896ff"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-win32.whl", hash = "sha256:10331f129982a19df4284ceac6fe87353ca3ca6b4ca77ff7d697209ae0a5915e"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:b03850c290c765b87102959ea53299dc9addf76ca08a06ea98383348ae205c99"},
|
{file = "SQLAlchemy-2.0.25-cp38-cp38-win_amd64.whl", hash = "sha256:c55731c116806836a5d678a70c84cb13f2cedba920212ba7dcad53260997666d"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e646b19f47d655261b22df9976e572f588185279970efba3d45c377127d35349"},
|
{file = "SQLAlchemy-2.0.25-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:605b6b059f4b57b277f75ace81cc5bc6335efcbcc4ccb9066695e515dbdb3900"},
|
||||||
{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-2.0.25-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:665f0a3954635b5b777a55111ababf44b4fc12b1f3ba0a435b602b6387ffd7cf"},
|
||||||
{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-2.0.25-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecf6d4cda1f9f6cb0b45803a01ea7f034e2f1aed9475e883410812d9f9e3cfcf"},
|
||||||
{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-2.0.25-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c51db269513917394faec5e5c00d6f83829742ba62e2ac4fa5c98d58be91662f"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-win32.whl", hash = "sha256:b00cf0471888823b7a9f722c6c41eb6985cf34f077edcf62695ac4bed6ec01ee"},
|
{file = "SQLAlchemy-2.0.25-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:790f533fa5c8901a62b6fef5811d48980adeb2f51f1290ade8b5e7ba990ba3de"},
|
||||||
{file = "SQLAlchemy-1.4.51-cp39-cp39-win_amd64.whl", hash = "sha256:a055ba17f4675aadcda3005df2e28a86feb731fdcc865e1f6b4f209ed1225cba"},
|
{file = "SQLAlchemy-2.0.25-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1b1180cda6df7af84fe72e4530f192231b1f29a7496951db4ff38dac1687202d"},
|
||||||
{file = "SQLAlchemy-1.4.51.tar.gz", hash = "sha256:e7908c2025eb18394e32d65dd02d2e37e17d733cdbe7d78231c2b6d7eb20cdb9"},
|
{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]
|
[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]
|
[package.extras]
|
||||||
aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"]
|
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)"]
|
aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"]
|
||||||
asyncio = ["greenlet (!=0.4.17)"]
|
asyncio = ["greenlet (!=0.4.17)"]
|
||||||
asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"]
|
asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"]
|
||||||
mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"]
|
mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"]
|
||||||
mssql = ["pyodbc"]
|
mssql = ["pyodbc"]
|
||||||
mssql-pymssql = ["pymssql"]
|
mssql-pymssql = ["pymssql"]
|
||||||
mssql-pyodbc = ["pyodbc"]
|
mssql-pyodbc = ["pyodbc"]
|
||||||
mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"]
|
mypy = ["mypy (>=0.910)"]
|
||||||
mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"]
|
mysql = ["mysqlclient (>=1.4.0)"]
|
||||||
mysql-connector = ["mysql-connector-python"]
|
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 = ["psycopg2 (>=2.7)"]
|
||||||
postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"]
|
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-psycopg2binary = ["psycopg2-binary"]
|
||||||
postgresql-psycopg2cffi = ["psycopg2cffi"]
|
postgresql-psycopg2cffi = ["psycopg2cffi"]
|
||||||
pymysql = ["pymysql", "pymysql (<1)"]
|
postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"]
|
||||||
|
pymysql = ["pymysql"]
|
||||||
sqlcipher = ["sqlcipher3-binary"]
|
sqlcipher = ["sqlcipher3-binary"]
|
||||||
|
|
||||||
[package.source]
|
[package.source]
|
||||||
@ -2478,62 +2476,20 @@ type = "legacy"
|
|||||||
url = "https://mirrors.bfsu.edu.cn/pypi/web/simple"
|
url = "https://mirrors.bfsu.edu.cn/pypi/web/simple"
|
||||||
reference = "mirrors"
|
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]]
|
[[package]]
|
||||||
name = "sqlmodel"
|
name = "sqlmodel"
|
||||||
version = "0.0.11"
|
version = "0.0.14"
|
||||||
description = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness."
|
description = "SQLModel, SQL databases in Python, designed for simplicity, compatibility, and robustness."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7,<4.0"
|
python-versions = ">=3.7,<4.0"
|
||||||
files = [
|
files = [
|
||||||
{file = "sqlmodel-0.0.11-py3-none-any.whl", hash = "sha256:bc0d64c4b901d919d2f16bbd79aefb07cb268c29f7c1dd83a84758772ccc95c6"},
|
{file = "sqlmodel-0.0.14-py3-none-any.whl", hash = "sha256:accea3ff5d878e41ac439b11e78613ed61ce300cfcb860e87a2d73d4884cbee4"},
|
||||||
{file = "sqlmodel-0.0.11.tar.gz", hash = "sha256:fc33abbf7ec29caafabe3d0e1db61e33597857a289e5fd1ecdb91be702b26084"},
|
{file = "sqlmodel-0.0.14.tar.gz", hash = "sha256:0bff8fc94af86b44925aa813f56cf6aabdd7f156b73259f2f60692c6a64ac90e"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
pydantic = ">=1.9.0,<2.0.0"
|
pydantic = ">=1.10.13,<3.0.0"
|
||||||
SQLAlchemy = ">=1.4.36,<2.0.0"
|
SQLAlchemy = ">=2.0.0,<2.1.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)"]
|
|
||||||
|
|
||||||
[package.source]
|
[package.source]
|
||||||
type = "legacy"
|
type = "legacy"
|
||||||
@ -3079,4 +3035,4 @@ reference = "mirrors"
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.8.1"
|
python-versions = "^3.8.1"
|
||||||
content-hash = "80babf9c31494847bd85c380498d31764a1f93c954f69ad1aa34e29035769155"
|
content-hash = "6a041520c30e909273671af1d193d1f16423a9a0594afca11c16a0e1ed0c8482"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "gsuid-core"
|
name = "gsuid-core"
|
||||||
version = "0.5.1"
|
version = "0.5.2"
|
||||||
description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。"
|
description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。"
|
||||||
authors = ["KimigaiiWuyi <444835641@qq.com>", "MingxuanGame <MingxuanGame@outlook.com>"]
|
authors = ["KimigaiiWuyi <444835641@qq.com>", "MingxuanGame <MingxuanGame@outlook.com>"]
|
||||||
license = "GPL-3.0-or-later"
|
license = "GPL-3.0-or-later"
|
||||||
@ -18,14 +18,14 @@ httpx = ">=0.23.0"
|
|||||||
beautifulsoup4 = ">=4.11.1"
|
beautifulsoup4 = ">=4.11.1"
|
||||||
lxml = ">=4.9.2"
|
lxml = ">=4.9.2"
|
||||||
aiohttp = ">=3.8.1"
|
aiohttp = ">=3.8.1"
|
||||||
sqlalchemy = ">=1.4.39,<2.0.0"
|
sqlalchemy = ">=2.0.0,<2.1.0"
|
||||||
pillow = ">=9.2.0"
|
pillow = ">=9.2.0"
|
||||||
aiosqlite = ">=0.17.0"
|
aiosqlite = ">=0.17.0"
|
||||||
aiofiles = ">=0.8.0"
|
aiofiles = ">=0.8.0"
|
||||||
sqlmodel = ">=0.0.8"
|
sqlmodel = ">=0.0.14"
|
||||||
gitpython = ">=3.1.27"
|
gitpython = ">=3.1.27"
|
||||||
fastapi-amis-admin = ">=0.6.0"
|
fastapi-amis-admin = ">=0.7.1"
|
||||||
fastapi-user-auth = ">=0.5.1"
|
fastapi-user-auth = ">=0.7.2"
|
||||||
qrcode = {extras = ["pil"], version = "^7.3.1"}
|
qrcode = {extras = ["pil"], version = "^7.3.1"}
|
||||||
msgspec = ">= 0.13.1"
|
msgspec = ">= 0.13.1"
|
||||||
uvicorn = ">=0.20.0"
|
uvicorn = ">=0.20.0"
|
||||||
@ -33,7 +33,7 @@ websockets = "^10.4"
|
|||||||
loguru = "^0.6.0"
|
loguru = "^0.6.0"
|
||||||
urllib3 = "^1.26.15"
|
urllib3 = "^1.26.15"
|
||||||
mpmath = "^1.3.0"
|
mpmath = "^1.3.0"
|
||||||
fastapi = ">=0.104.1"
|
fastapi = ">=0.109.1"
|
||||||
apscheduler = "^3.10.1"
|
apscheduler = "^3.10.1"
|
||||||
aioboto3 = "^12.0.0"
|
aioboto3 = "^12.0.0"
|
||||||
jinja2 = "^3.1.2"
|
jinja2 = "^3.1.2"
|
||||||
@ -44,6 +44,7 @@ bcrypt = "^4.0.1"
|
|||||||
motor = "^3.3.2"
|
motor = "^3.3.2"
|
||||||
pymongo = "^4.6.1"
|
pymongo = "^4.6.1"
|
||||||
setuptools = ">=69.0.3"
|
setuptools = ">=69.0.3"
|
||||||
|
pydantic = "<2.0.0"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
flake8 = "^6.0.0"
|
flake8 = "^6.0.0"
|
||||||
@ -96,14 +97,14 @@ dependencies = [
|
|||||||
"beautifulsoup4>=4.11.1",
|
"beautifulsoup4>=4.11.1",
|
||||||
"lxml>=4.9.2",
|
"lxml>=4.9.2",
|
||||||
"aiohttp>=3.8.1",
|
"aiohttp>=3.8.1",
|
||||||
"sqlalchemy<2.0.0,>=1.4.39",
|
"sqlalchemy<2.1.0,>=2.0.0",
|
||||||
"pillow>=9.2.0",
|
"pillow>=9.2.0",
|
||||||
"aiosqlite>=0.17.0",
|
"aiosqlite>=0.17.0",
|
||||||
"aiofiles>=0.8.0",
|
"aiofiles>=0.8.0",
|
||||||
"sqlmodel>=0.0.8",
|
"sqlmodel>=0.0.8",
|
||||||
"gitpython>=3.1.27",
|
"gitpython>=3.1.27",
|
||||||
"fastapi-amis-admin>=0.5.8",
|
"fastapi-amis-admin>=0.7.1",
|
||||||
"fastapi-user-auth>=0.5.1",
|
"fastapi-user-auth>=0.7.2",
|
||||||
"qrcode[pil]<8.0.0,>=7.3.1",
|
"qrcode[pil]<8.0.0,>=7.3.1",
|
||||||
"msgspec>=0.13.1",
|
"msgspec>=0.13.1",
|
||||||
"uvicorn>=0.20.0",
|
"uvicorn>=0.20.0",
|
||||||
@ -124,7 +125,7 @@ dependencies = [
|
|||||||
"setuptools>=69.0.3",
|
"setuptools>=69.0.3",
|
||||||
]
|
]
|
||||||
name = "gsuid-core"
|
name = "gsuid-core"
|
||||||
version = "0.5.1"
|
version = "0.5.2"
|
||||||
description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。"
|
description = "KimigaiiWuyi/GenshinUID 的核心部分,平台无关,便于移植到其他平台以及框架。"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
|
@ -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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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-amis-admin==0.7.1 ; 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-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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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"
|
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==2.0.25 ; 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.14 ; 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"
|
|
||||||
starlette==0.36.3 ; python_full_version >= "3.8.1" and python_full_version < "4.0.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"
|
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"
|
typing-extensions==4.9.0 ; python_full_version >= "3.8.1" and python_version < "4.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user