mirror of
https://gitflic.ru/project/alt-gnome/karkas.git
synced 2025-04-06 09:33:49 +03:00
fix: add tmp chat_member handler
This commit is contained in:
parent
e0a8bea938
commit
7c25c7b4a9
15
src/gnomik/poetry.lock
generated
15
src/gnomik/poetry.lock
generated
@ -1190,6 +1190,7 @@ dash-bootstrap-components = "^1.6.0"
|
|||||||
dash-extensions = "^1.0.18"
|
dash-extensions = "^1.0.18"
|
||||||
karkas-core = {path = "../karkas_core", develop = true}
|
karkas-core = {path = "../karkas_core", develop = true}
|
||||||
peewee = "^3.17.6"
|
peewee = "^3.17.6"
|
||||||
|
python-json-logger = "^3.2.1"
|
||||||
pyyaml = "^6.0.1"
|
pyyaml = "^6.0.1"
|
||||||
torch = "^2.0"
|
torch = "^2.0"
|
||||||
transformers = "^4.45.2"
|
transformers = "^4.45.2"
|
||||||
@ -1858,6 +1859,20 @@ files = [
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
cli = ["click (>=5.0)"]
|
cli = ["click (>=5.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-json-logger"
|
||||||
|
version = "3.2.1"
|
||||||
|
description = "JSON Log Formatter for the Python Logging Package"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"},
|
||||||
|
{file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-multipart"
|
name = "python-multipart"
|
||||||
version = "0.0.9"
|
version = "0.0.9"
|
||||||
|
@ -148,7 +148,14 @@ class SpamDetectionMiddleware(BaseMiddleware):
|
|||||||
if not verified_users_row["verified"]:
|
if not verified_users_row["verified"]:
|
||||||
if event.text:
|
if event.text:
|
||||||
is_spam, confidence = spam_predict(event.text)
|
is_spam, confidence = spam_predict(event.text)
|
||||||
log(f"{event.text} is {is_spam} with confidence {confidence}")
|
|
||||||
|
log(
|
||||||
|
"message spam confidence",
|
||||||
|
trace_id=data["trace_id"],
|
||||||
|
is_spam=is_spam,
|
||||||
|
confidence=confidence,
|
||||||
|
)
|
||||||
|
|
||||||
if is_spam:
|
if is_spam:
|
||||||
if confidence >= config.get(
|
if confidence >= config.get(
|
||||||
"spam::spam_detection::confidence"
|
"spam::spam_detection::confidence"
|
||||||
@ -165,6 +172,11 @@ class SpamDetectionMiddleware(BaseMiddleware):
|
|||||||
== f"{event.chat.id}-{event.from_user.id}",
|
== f"{event.chat.id}-{event.from_user.id}",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
log(
|
||||||
|
"user is not spammer anymore",
|
||||||
|
trace_id=data["trace_id"],
|
||||||
|
)
|
||||||
|
|
||||||
result = await handler(event, data)
|
result = await handler(event, data)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
@ -180,8 +192,10 @@ class ChatMemberMiddleware(BaseMiddleware):
|
|||||||
event: "ChatMemberUpdated",
|
event: "ChatMemberUpdated",
|
||||||
data: Dict[str, Any],
|
data: Dict[str, Any],
|
||||||
) -> Any:
|
) -> Any:
|
||||||
|
log("chat member middleware - start")
|
||||||
|
|
||||||
if await joinFilter(event):
|
if await joinFilter(event):
|
||||||
|
log("chat member join")
|
||||||
try:
|
try:
|
||||||
await VerifiedUsers.insert(
|
await VerifiedUsers.insert(
|
||||||
VerifiedUsers(
|
VerifiedUsers(
|
||||||
@ -194,6 +208,8 @@ class ChatMemberMiddleware(BaseMiddleware):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
log(str(e))
|
log(str(e))
|
||||||
|
|
||||||
|
log("chat member middleware - ok")
|
||||||
|
|
||||||
result = await handler(event, data)
|
result = await handler(event, data)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
@ -215,6 +231,7 @@ def module_init():
|
|||||||
register_outer_chat_member_middleware(ChatMemberMiddleware())
|
register_outer_chat_member_middleware(ChatMemberMiddleware())
|
||||||
|
|
||||||
register_app_config = get_module("standard.database", "register_app_config")
|
register_app_config = get_module("standard.database", "register_app_config")
|
||||||
|
|
||||||
SimpleAdminFilter: "Type[ISimpleAdminFilter]" = get_module(
|
SimpleAdminFilter: "Type[ISimpleAdminFilter]" = get_module(
|
||||||
"standard.filters", "SimpleAdminFilter"
|
"standard.filters", "SimpleAdminFilter"
|
||||||
)
|
)
|
||||||
@ -225,6 +242,11 @@ def module_init():
|
|||||||
|
|
||||||
router = Router()
|
router = Router()
|
||||||
|
|
||||||
|
def tmp(event):
|
||||||
|
pass
|
||||||
|
|
||||||
|
router.chat_member.register(tmp)
|
||||||
|
|
||||||
router.message.register(
|
router.message.register(
|
||||||
delete_spam_by_request, SimpleAdminFilter(), Command("spam")
|
delete_spam_by_request, SimpleAdminFilter(), Command("spam")
|
||||||
)
|
)
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import uuid
|
||||||
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict
|
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict
|
||||||
|
|
||||||
from aiogram import BaseMiddleware
|
from aiogram import BaseMiddleware
|
||||||
@ -9,7 +10,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
from karkas_blocks.standard.config import IConfig
|
from karkas_blocks.standard.config import IConfig
|
||||||
|
|
||||||
from karkas_core.modules_system.public_api import get_module
|
from karkas_core.modules_system.public_api import get_module, log
|
||||||
|
|
||||||
config: "IConfig" = get_module("standard.config", "config")
|
config: "IConfig" = get_module("standard.config", "config")
|
||||||
|
|
||||||
@ -69,9 +70,19 @@ class StatisticsMiddleware(BaseMiddleware):
|
|||||||
async def __call__(
|
async def __call__(
|
||||||
self,
|
self,
|
||||||
handler: Callable[["TelegramObject", Dict[str, Any]], Awaitable[Any]],
|
handler: Callable[["TelegramObject", Dict[str, Any]], Awaitable[Any]],
|
||||||
event: "TelegramObject",
|
event: "Message",
|
||||||
data: Dict[str, Any],
|
data: Dict[str, Any],
|
||||||
) -> Any:
|
) -> Any:
|
||||||
|
trace_id = str(uuid.uuid4())
|
||||||
|
|
||||||
|
log(
|
||||||
|
"new message recieved",
|
||||||
|
trace_id=trace_id,
|
||||||
|
chat_id=event.chat.id,
|
||||||
|
message_text=event.text,
|
||||||
|
)
|
||||||
|
|
||||||
|
data["trace_id"] = trace_id
|
||||||
|
|
||||||
await update_chat_stats(event)
|
await update_chat_stats(event)
|
||||||
await update_user_stats(event)
|
await update_user_stats(event)
|
||||||
|
18
src/karkas_blocks/poetry.lock
generated
18
src/karkas_blocks/poetry.lock
generated
@ -1,4 +1,4 @@
|
|||||||
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aiofiles"
|
name = "aiofiles"
|
||||||
@ -1438,6 +1438,20 @@ files = [
|
|||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
|
typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-json-logger"
|
||||||
|
version = "3.2.1"
|
||||||
|
description = "JSON Log Formatter for the Python Logging Package"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"},
|
||||||
|
{file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyyaml"
|
name = "pyyaml"
|
||||||
version = "6.0.2"
|
version = "6.0.2"
|
||||||
@ -2311,4 +2325,4 @@ type = ["pytest-mypy"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = ">=3.10,<3.13"
|
python-versions = ">=3.10,<3.13"
|
||||||
content-hash = "e4c8f543df7eea0b8410cb3ef189099ce1ea14082051fa40c96ce7f4ce3e0513"
|
content-hash = "a1fd839181bf4b4f84df4ec18be43b4a78e2b0292a3d421bd0974ae3bd4f49fa"
|
||||||
|
@ -19,6 +19,7 @@ dash-bootstrap-components = "^1.6.0"
|
|||||||
|
|
||||||
torch = { version = "^2.0", source="pytorch-cpu" }
|
torch = { version = "^2.0", source="pytorch-cpu" }
|
||||||
transformers = "^4.45.2"
|
transformers = "^4.45.2"
|
||||||
|
python-json-logger = "^3.2.1"
|
||||||
|
|
||||||
[tool.poetry-monorepo.deps]
|
[tool.poetry-monorepo.deps]
|
||||||
enabled = true
|
enabled = true
|
||||||
|
@ -1,36 +1,73 @@
|
|||||||
import logging
|
import logging
|
||||||
|
import sys
|
||||||
import traceback
|
import traceback
|
||||||
|
from io import TextIOWrapper
|
||||||
|
|
||||||
app_logger = logging.getLogger("karkas")
|
from pythonjsonlogger import jsonlogger
|
||||||
log_level = logging.INFO
|
|
||||||
|
# Константы для настройки логгера
|
||||||
|
DEFAULT_LOG_LEVEL = logging.INFO
|
||||||
|
LOG_FORMAT = "%(asctime)s %(levelname)s %(name)s %(message)s"
|
||||||
|
DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
|
||||||
|
|
||||||
|
|
||||||
def patch_logger(logger_: logging.Logger):
|
def configure_logger(logger: logging.Logger, level=DEFAULT_LOG_LEVEL) -> logging.Logger:
|
||||||
logger_.handlers = []
|
"""
|
||||||
formatter = logging.Formatter("%(asctime)s %(message)s", datefmt="%H:%M:%S")
|
Конфигурация логгера с использованием JSON-форматтера.
|
||||||
console_handler = logging.StreamHandler()
|
"""
|
||||||
|
logger.handlers = [] # Удалить существующие обработчики
|
||||||
|
logger.propagate = False # Отключить проброс логов
|
||||||
|
logger.setLevel(level)
|
||||||
|
|
||||||
|
formatter = jsonlogger.JsonFormatter(
|
||||||
|
fmt=LOG_FORMAT, datefmt=DATE_FORMAT, json_ensure_ascii=False
|
||||||
|
)
|
||||||
|
|
||||||
|
console_handler = logging.StreamHandler(
|
||||||
|
stream=TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
|
||||||
|
)
|
||||||
console_handler.setFormatter(formatter)
|
console_handler.setFormatter(formatter)
|
||||||
logger_.addHandler(console_handler)
|
|
||||||
logger_.propagate = False
|
logger.addHandler(console_handler)
|
||||||
logger_.setLevel(log_level)
|
return logger
|
||||||
return logger_
|
|
||||||
|
|
||||||
|
|
||||||
def setup_logger():
|
def get_logger(name: str, level=DEFAULT_LOG_LEVEL) -> logging.Logger:
|
||||||
"""
|
"""
|
||||||
Настройка логирования
|
Возвращает настроенный логгер с заданным именем.
|
||||||
"""
|
"""
|
||||||
patch_logger(app_logger)
|
logger = logging.getLogger(name)
|
||||||
|
return configure_logger(logger, level)
|
||||||
|
|
||||||
|
|
||||||
def log(message):
|
# Глобальный логгер приложения
|
||||||
|
app_logger = get_logger("karkas")
|
||||||
|
|
||||||
|
|
||||||
|
def log(message, level="info", **kwargs):
|
||||||
|
"""
|
||||||
|
Логирование сообщений с поддержкой уровней.
|
||||||
|
Уровни: debug, info, warning, error, critical.
|
||||||
|
Поддерживает логирование исключений и дополнительных полей.
|
||||||
|
"""
|
||||||
|
# Проверка на исключение
|
||||||
if isinstance(message, Exception):
|
if isinstance(message, Exception):
|
||||||
error_message = f"Error: {str(message)}\n{traceback.format_exc()}"
|
message = {"error": str(message), "traceback": traceback.format_exc()}
|
||||||
app_logger.error(error_message)
|
|
||||||
else:
|
# Выбор метода логирования
|
||||||
app_logger.info(message)
|
log_method = getattr(app_logger, level, app_logger.info)
|
||||||
|
|
||||||
|
# Добавление пользовательских данных
|
||||||
|
if kwargs:
|
||||||
|
if isinstance(message, dict):
|
||||||
|
message.update(kwargs)
|
||||||
|
else:
|
||||||
|
message = {"message": message, **kwargs}
|
||||||
|
|
||||||
|
log_method(message)
|
||||||
|
|
||||||
|
|
||||||
|
# Пример интеграции с Hypercorn
|
||||||
try:
|
try:
|
||||||
from hypercorn.logging import Logger as HypercornLogger
|
from hypercorn.logging import Logger as HypercornLogger
|
||||||
|
|
||||||
@ -38,9 +75,9 @@ try:
|
|||||||
def __init__(self, *args, **kwargs) -> None:
|
def __init__(self, *args, **kwargs) -> None:
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
if self.error_logger:
|
if self.error_logger:
|
||||||
patch_logger(self.error_logger)
|
configure_logger(self.error_logger)
|
||||||
if self.access_logger:
|
if self.access_logger:
|
||||||
patch_logger(self.access_logger)
|
configure_logger(self.access_logger)
|
||||||
|
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
@ -3,7 +3,7 @@ from typing import TYPE_CHECKING
|
|||||||
|
|
||||||
from aiogram import Bot, Dispatcher
|
from aiogram import Bot, Dispatcher
|
||||||
|
|
||||||
from karkas_core.logger import log, setup_logger
|
from karkas_core.logger import log
|
||||||
from karkas_core.modules_system import ModulesManager
|
from karkas_core.modules_system import ModulesManager
|
||||||
from karkas_core.modules_system.public_api import get_module
|
from karkas_core.modules_system.public_api import get_module
|
||||||
from karkas_core.singleton import Singleton
|
from karkas_core.singleton import Singleton
|
||||||
@ -17,7 +17,6 @@ class Karkas:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
async def init_app(self, bot_modules, metainfo=None):
|
async def init_app(self, bot_modules, metainfo=None):
|
||||||
setup_logger()
|
|
||||||
singleton = Singleton()
|
singleton = Singleton()
|
||||||
if isinstance(metainfo, dict):
|
if isinstance(metainfo, dict):
|
||||||
singleton.storage["metainfo"] = metainfo
|
singleton.storage["metainfo"] = metainfo
|
||||||
@ -41,9 +40,15 @@ class Karkas:
|
|||||||
singleton.dp.include_routers(*singleton.storage["_routers"])
|
singleton.dp.include_routers(*singleton.storage["_routers"])
|
||||||
|
|
||||||
for middleware in singleton.storage["_outer_message_middlewares"]:
|
for middleware in singleton.storage["_outer_message_middlewares"]:
|
||||||
|
log("update outer middleware register", middleware=middleware)
|
||||||
singleton.dp.message.outer_middleware.register(middleware)
|
singleton.dp.message.outer_middleware.register(middleware)
|
||||||
|
|
||||||
|
for middleware in singleton.storage["_outer_update_middlewares"]:
|
||||||
|
log("message outer middleware register", middleware=middleware)
|
||||||
|
singleton.dp.update.outer_middleware.register(middleware)
|
||||||
|
|
||||||
for middleware in singleton.storage["_outer_chat_member_middlewares"]:
|
for middleware in singleton.storage["_outer_chat_member_middlewares"]:
|
||||||
|
log("chat_member outer middleware register", middleware=middleware)
|
||||||
singleton.dp.chat_member.outer_middleware.register(middleware)
|
singleton.dp.chat_member.outer_middleware.register(middleware)
|
||||||
|
|
||||||
await singleton.modules_manager.late_init()
|
await singleton.modules_manager.late_init()
|
||||||
@ -65,7 +70,9 @@ class Karkas:
|
|||||||
async def start_long_polling_mode(self):
|
async def start_long_polling_mode(self):
|
||||||
singleton = Singleton()
|
singleton = Singleton()
|
||||||
await singleton.bot.delete_webhook()
|
await singleton.bot.delete_webhook()
|
||||||
await singleton.dp.start_polling(singleton.bot)
|
await singleton.dp.start_polling(
|
||||||
|
singleton.bot,
|
||||||
|
)
|
||||||
|
|
||||||
async def start_webhook_mode(self):
|
async def start_webhook_mode(self):
|
||||||
try:
|
try:
|
||||||
|
@ -7,6 +7,7 @@ from .public_api import (
|
|||||||
get_module,
|
get_module,
|
||||||
register_outer_chat_member_middleware,
|
register_outer_chat_member_middleware,
|
||||||
register_outer_message_middleware,
|
register_outer_message_middleware,
|
||||||
|
register_outer_update_middleware,
|
||||||
register_router,
|
register_router,
|
||||||
set_chat_menu_button,
|
set_chat_menu_button,
|
||||||
set_my_commands,
|
set_my_commands,
|
||||||
|
@ -28,6 +28,11 @@ def register_outer_message_middleware(middleware: "BaseMiddleware"):
|
|||||||
app.storage["_outer_message_middlewares"].append(middleware)
|
app.storage["_outer_message_middlewares"].append(middleware)
|
||||||
|
|
||||||
|
|
||||||
|
def register_outer_update_middleware(middleware: "BaseMiddleware"):
|
||||||
|
app = Singleton()
|
||||||
|
app.storage["_outer_update_middlewares"].append(middleware)
|
||||||
|
|
||||||
|
|
||||||
def register_outer_chat_member_middleware(middleware: "BaseMiddleware"):
|
def register_outer_chat_member_middleware(middleware: "BaseMiddleware"):
|
||||||
app = Singleton()
|
app = Singleton()
|
||||||
app.storage["_outer_chat_member_middlewares"].append(middleware)
|
app.storage["_outer_chat_member_middlewares"].append(middleware)
|
||||||
|
@ -26,6 +26,7 @@ class Singleton(metaclass=SingletonMeta):
|
|||||||
"_fsm_storage": MemoryStorage(),
|
"_fsm_storage": MemoryStorage(),
|
||||||
"_routers": [],
|
"_routers": [],
|
||||||
"_outer_message_middlewares": [],
|
"_outer_message_middlewares": [],
|
||||||
|
"_outer_update_middlewares": [],
|
||||||
"_outer_chat_member_middlewares": [],
|
"_outer_chat_member_middlewares": [],
|
||||||
"metainfo": {},
|
"metainfo": {},
|
||||||
}
|
}
|
||||||
|
15
src/karkas_core/poetry.lock
generated
15
src/karkas_core/poetry.lock
generated
@ -1076,6 +1076,7 @@ dash-bootstrap-components = "^1.6.0"
|
|||||||
dash-extensions = "^1.0.18"
|
dash-extensions = "^1.0.18"
|
||||||
karkas-core = {path = "../karkas_core", develop = true}
|
karkas-core = {path = "../karkas_core", develop = true}
|
||||||
peewee = "^3.17.6"
|
peewee = "^3.17.6"
|
||||||
|
python-json-logger = "^3.2.1"
|
||||||
pyyaml = "^6.0.1"
|
pyyaml = "^6.0.1"
|
||||||
torch = "^2.0"
|
torch = "^2.0"
|
||||||
transformers = "^4.45.2"
|
transformers = "^4.45.2"
|
||||||
@ -1645,6 +1646,20 @@ files = [
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
cli = ["click (>=5.0)"]
|
cli = ["click (>=5.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-json-logger"
|
||||||
|
version = "3.2.1"
|
||||||
|
description = "JSON Log Formatter for the Python Logging Package"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"},
|
||||||
|
{file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-multipart"
|
name = "python-multipart"
|
||||||
version = "0.0.9"
|
version = "0.0.9"
|
||||||
|
17
src/karkas_lite/poetry.lock
generated
17
src/karkas_lite/poetry.lock
generated
@ -1,4 +1,4 @@
|
|||||||
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aiofiles"
|
name = "aiofiles"
|
||||||
@ -1198,6 +1198,7 @@ dash-bootstrap-components = "^1.6.0"
|
|||||||
dash-extensions = "^1.0.18"
|
dash-extensions = "^1.0.18"
|
||||||
karkas-core = {path = "../karkas_core", develop = true}
|
karkas-core = {path = "../karkas_core", develop = true}
|
||||||
peewee = "^3.17.6"
|
peewee = "^3.17.6"
|
||||||
|
python-json-logger = "^3.2.1"
|
||||||
pyyaml = "^6.0.1"
|
pyyaml = "^6.0.1"
|
||||||
torch = "^2.0"
|
torch = "^2.0"
|
||||||
transformers = "^4.45.2"
|
transformers = "^4.45.2"
|
||||||
@ -1980,6 +1981,20 @@ files = [
|
|||||||
[package.extras]
|
[package.extras]
|
||||||
cli = ["click (>=5.0)"]
|
cli = ["click (>=5.0)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "python-json-logger"
|
||||||
|
version = "3.2.1"
|
||||||
|
description = "JSON Log Formatter for the Python Logging Package"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.8"
|
||||||
|
files = [
|
||||||
|
{file = "python_json_logger-3.2.1-py3-none-any.whl", hash = "sha256:cdc17047eb5374bd311e748b42f99d71223f3b0e186f4206cc5d52aefe85b090"},
|
||||||
|
{file = "python_json_logger-3.2.1.tar.gz", hash = "sha256:8eb0554ea17cb75b05d2848bc14fb02fbdbd9d6972120781b974380bfa162008"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["backports.zoneinfo", "black", "build", "freezegun", "mdx_truly_sane_lists", "mike", "mkdocs", "mkdocs-awesome-pages-plugin", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-material (>=8.5)", "mkdocstrings[python]", "msgspec", "msgspec-python313-pre", "mypy", "orjson", "pylint", "pytest", "tzdata", "validate-pyproject[all]"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "python-multipart"
|
name = "python-multipart"
|
||||||
version = "0.0.12"
|
version = "0.0.12"
|
||||||
|
Loading…
Reference in New Issue
Block a user