diff --git a/.gitignore b/.gitignore index dddca8d..c747ee6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,6 @@ env .venv venv __pycache__ -OCAB.db +Karkas.db config.yaml dist diff --git a/CONTRIBUTORS b/CONTRIBUTORS deleted file mode 100644 index 39b759d..0000000 --- a/CONTRIBUTORS +++ /dev/null @@ -1,8 +0,0 @@ -Руководитель проекта: - - Семен Фомченков (@Armatik), e-mail: armatik@alt-gnome.ru - -Ведущие разработчики: - - Максим Слипенко (@Maks1m_S), e-mail: maxim@slipenko.com - -Участники проекта: - - Илья Женецкий (@ilyazheprog) diff --git a/README.md b/README.md index b9f8cd9..6cd4dc5 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,23 @@ -# OCAB - Open Chat Ai Bot +# Karkas - Open Chat Ai Bot -## Что такое OCAB? +## Что такое Karkas? -OCAB - это платформа для разработки модульных Telegram-ботов, которая призвана упростить взаимодействие с чатами. -OCAB предоставляет возможность расширять функциональность бота с помощью интеграции различных модулей. +Karkas - это платформа для разработки модульных Telegram-ботов, которая призвана упростить взаимодействие с чатами. +Karkas предоставляет возможность расширять функциональность бота с помощью интеграции различных модулей. Код платформы и набор стандартных модулей находятся в этом монорепозитории. ## Структура монорепозитория -Монорепозиторий OCAB включает в себя: -* **Ядро OCAB (src/ocab_core):** Содержит основные компоненты платформы, такие как система управления модулями, +Монорепозиторий Karkas включает в себя: +* **Ядро Karkas (src/karkas_core):** Содержит основные компоненты платформы, такие как система управления модулями, логирование и утилиты. -* **Модули OCAB (src/ocab_modules):** Содержит стандартные и дополнительные модули, которые расширяют - функциональность ботов OCAB. -* **Пример бота (src/gnomik):** Пример реализации бота на платформе OCAB. +* **Модули Karkas (src/karkas_blocks):** Содержит стандартные и дополнительные модули, которые расширяют + функциональность ботов Karkas. +* **Пример бота (src/gnomik):** Пример реализации бота на платформе Karkas. ## Модули -Модули OCAB - это независимые компоненты, которые добавляют функциональность к боту. +Модули Karkas - это независимые компоненты, которые добавляют функциональность к боту. ### Структура модуля @@ -26,19 +26,19 @@ OCAB предоставляет возможность расширять фун ### Стандартные модули Стандартные модули предоставляют базовые функции для работы бота: -* [admin](src/ocab_modules/ocab_modules/standard/admin/README.md) - модуль для модерирования чата. -* [roles](src/ocab_modules/ocab_modules/standard/roles/README.md) - модуль ролей пользователей. -* [config](src/ocab_modules/ocab_modules/standard/config/README.md) - модуль управления конфигурацией бота. -* [database](src/ocab_modules/ocab_modules/standard/database/README.md) - модуль для работы с базой данных. -* [fsm_database_storage](src/ocab_modules/ocab_modules/standard/fsm_database_storage/README.md) - модуль для хранения состояний FSM в базе данных. -* [filters](src/ocab_modules/ocab_modules/standard/filters/README.md) - модуль, предоставляющий фильтры для aiogram. -* [message_processing](src/ocab_modules/ocab_modules/standard/message_processing/README.md) - модуль обработки входящих сообщений. -* [miniapp](src/ocab_modules/ocab_modules/standard/miniapp/README.md) - модуль для реализации веб-интерфейса бота. -* [command_helper](src/ocab_modules/ocab_modules/standard/command_helper/README.md) - модуль для упрощения регистрации команд бота. -* [info](src/ocab_modules/ocab_modules/standard/info/README.md) - модуль предоставления информации о пользователях и чатах. +* [admin](src/karkas_blocks/karkas_blocks/standard/admin/README.md) - модуль для модерирования чата. +* [roles](src/karkas_blocks/karkas_blocks/standard/roles/README.md) - модуль ролей пользователей. +* [config](src/karkas_blocks/karkas_blocks/standard/config/README.md) - модуль управления конфигурацией бота. +* [database](src/karkas_blocks/karkas_blocks/standard/database/README.md) - модуль для работы с базой данных. +* [fsm_database_storage](src/karkas_blocks/karkas_blocks/standard/fsm_database_storage/README.md) - модуль для хранения состояний FSM в базе данных. +* [filters](src/karkas_blocks/karkas_blocks/standard/filters/README.md) - модуль, предоставляющий фильтры для aiogram. +* [message_processing](src/karkas_blocks/karkas_blocks/standard/message_processing/README.md) - модуль обработки входящих сообщений. +* [miniapp](src/karkas_blocks/karkas_blocks/standard/miniapp/README.md) - модуль для реализации веб-интерфейса бота. +* [command_helper](src/karkas_blocks/karkas_blocks/standard/command_helper/README.md) - модуль для упрощения регистрации команд бота. +* [info](src/karkas_blocks/karkas_blocks/standard/info/README.md) - модуль предоставления информации о пользователях и чатах. ### Дополнительные официальные модули -Дополнительные официальные модули разработаны командой OCAB и предоставляют расширенные возможности для бота: -* [yandexgpt](src/ocab_modules/ocab_modules/external/yandexgpt/README.md) - модуль для интеграции с нейросетью YandexGPT. -* [create_report_apps](src/ocab_modules/ocab_modules/external/create_report_apps/README.md) - модуль для создания отчетов об ошибках. +Дополнительные официальные модули разработаны командой Karkas и предоставляют расширенные возможности для бота: +* [yandexgpt](src/karkas_blocks/karkas_blocks/external/yandexgpt/README.md) - модуль для интеграции с нейросетью YandexGPT. +* [create_report_apps](src/karkas_blocks/karkas_blocks/external/create_report_apps/README.md) - модуль для создания отчетов об ошибках. diff --git a/docs/DEV.md b/docs/DEV.md index 5962e19..9db59a5 100644 --- a/docs/DEV.md +++ b/docs/DEV.md @@ -1,10 +1,10 @@ ## Настройка рабочего окружения -Данная инструкция поможет вам настроить рабочее окружение для разработки OCAB. +Данная инструкция поможет вам настроить рабочее окружение для разработки Karkas. ### Предварительные требования -* **Python 3.12:** OCAB требует Python 3.12. +* **Python 3.12:** Karkas требует Python 3.12. * **VSCode:** Рекомендуется использовать VSCode для разработки. * **Git:** У вас должен быть установлен Git для клонирования репозитория. @@ -12,18 +12,18 @@ 1. **Клонируйте репозиторий:** ```bash - git clone https://gitflic.ru/project/armatik/ocab.git + git clone https://gitflic.ru/project/alt-gnome/karkas.git ``` 2. **Откройте проект в VSCode:** - * Откройте папку `ocab` в VSCode. - * VSCode автоматически предложит открыть проект как workspace, используя файл `ocab.code-workspace`. + * Откройте папку `karkas` в VSCode. + * VSCode автоматически предложит открыть проект как workspace, используя файл `karkas.code-workspace`. Нажмите "Открыть Workspace", чтобы принять предложение. 3. **Настройте Poetry:** * Установите Poetry, следуя инструкциям на официальном сайте: [https://python-poetry.org/docs/](https://python-poetry.org/docs/). * **Для каждого пакета:** - * Перейдите в папку пакета (например, `src/ocab_core`). + * Перейдите в папку пакета (например, `src/karkas_core`). * Выполните команду `poetry install`, чтобы установить зависимости пакета. * Poetry создаст виртуальное окружение внутри папки пакета (`.venv`). diff --git a/docs/MODULES-SPEC.md b/docs/MODULES-SPEC.md index 561e822..3445dd3 100644 --- a/docs/MODULES-SPEC.md +++ b/docs/MODULES-SPEC.md @@ -16,7 +16,7 @@ "id": "standard.info", "name": "Info", "description": "Модуль с информацией", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": false, "dependencies": { @@ -50,7 +50,7 @@ - `author`: Автор модуля. - `version`: Версия модуля в формате [SemVer](https://semver.org/). - `privileged`: Булево значение, указывающее, является ли модуль привилегированным. -- `dependencies`: Объект, описывающий зависимости модуля от других **OCAB** модулей. +- `dependencies`: Объект, описывающий зависимости модуля от других **Karkas** модулей. - `required`: Обязательные зависимости. Ключ - идентификатор модуля, значение - версия или объект `DependencyInfo`. - `optional`: Необязательные зависимости. Ключ - идентификатор модуля, значение - версия или объект `DependencyInfo`. - `pythonDependencies`: Объект, описывающий зависимости модуля от внешних Python пакетов. @@ -80,7 +80,7 @@ - Модуль выполняется в доверенной среде на основе RestrictedPython (это накладывает ряд ограничений). - Может импортировать только явно разрешенные модули, указанные в `pythonDependencies`, а также несколько стандартных модулей, необходимых для работы. -- Имеет доступ к пакету `ocab_core.modules_system.public_api` для взаимодействия с ботом. +- Имеет доступ к пакету `karkas_core.modules_system.public_api` для взаимодействия с ботом. **Привилегированный режим** (`privileged: true`): - Модуль выполняется без ограничений. @@ -100,7 +100,7 @@ ## Взаимодействие между модулями -Модули могут взаимодействовать друг с другом через [API](../src/ocab_core/ocab_core/modules_system/public_api/__init__.py), +Модули могут взаимодействовать друг с другом через [API](../src/karkas_core/karkas_core/modules_system/public_api/__init__.py), предоставляемое системой управления модулями. Например, есть функция `get_module`. Она позволяет получить модуль или предоставляемые им объекты по его diff --git a/ocab.code-workspace b/ocab.code-workspace index 96f794e..3aad916 100644 --- a/ocab.code-workspace +++ b/ocab.code-workspace @@ -1,16 +1,16 @@ { "folders": [ { - "name": "OCAB Monorepo Root", + "name": "Karkas Monorepo Root", "path": ".", }, { - "name": "OCAB Modules", - "path": "src/ocab_modules" + "name": "Karkas Blocks", + "path": "src/karkas_blocks" }, { - "name": "OCAB Core", - "path": "src/ocab_core" + "name": "Karkas Core", + "path": "src/karkas_core" }, { "name": "Gnomik", diff --git a/pyproject.toml b/pyproject.toml index f8cb63c..d35c7d7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.poetry] -name = "ocab-monorepo" +name = "karkas-monorepo" version = "2.0.0" -description = "OCAB is a modular Telegram bot" +description = "Karkas is a modular Telegram bot" license = "GPL-3.0-only" authors = ["Семён Фомченков "] maintainers = [ @@ -11,13 +11,13 @@ maintainers = [ "Максим Слипенко " ] readme = "README.md" -repository = "https://gitflic.ru/project/armatik/ocab" +repository = "https://gitflic.ru/project/alt-gnome/karkas" packages = [ { include = "scripts" } ] [tool.poetry.urls] -"Bug Tracker" = "https://gitflic.ru/project/armatik/ocab/issue?status=OPEN" +"Bug Tracker" = "https://gitflic.ru/project/alt-gnome/karkas/issue?status=OPEN" [tool.poetry.scripts] test = 'scripts.test:main' diff --git a/scripts/init.py b/scripts/init.py index 362e4da..c4d9382 100644 --- a/scripts/init.py +++ b/scripts/init.py @@ -4,9 +4,9 @@ from pathlib import Path def main(): pwd = Path().cwd() - dir_core = pwd / "src" / "ocab_core" - dir_modules_standard = pwd / "src" / "ocab_modules" / "standard" - dir_modules_external = pwd / "src" / "ocab_modules" / "external" + dir_core = pwd / "src" / "karkas_core" + dir_modules_standard = pwd / "src" / "karkas_blocks" / "standard" + dir_modules_external = pwd / "src" / "karkas_blocks" / "external" json = { "core": str(dir_core), diff --git a/scripts/module.py b/scripts/module.py index 88e13c3..2e9522b 100644 --- a/scripts/module.py +++ b/scripts/module.py @@ -4,14 +4,14 @@ import os DEFAULTS = { "description": "Очень полезный модуль", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": "false", } def create_module(args): - module_dir = os.path.join("src/ocab_modules/standard", args.module_name) + module_dir = os.path.join("src/karkas_blocks/standard", args.module_name) os.makedirs(module_dir, exist_ok=True) module_info = { diff --git a/src/altlinux/Dockerfile b/src/altlinux/Dockerfile index c789f02..8a1f469 100644 --- a/src/altlinux/Dockerfile +++ b/src/altlinux/Dockerfile @@ -6,9 +6,9 @@ COPY . /app # Фикс -RUN sed -i '/ocab-core = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \ - sed -i '/ocab-modules = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \ - sed -i '/ocab-core = {/{s/, develop = true//}' /app/src/ocab_modules/pyproject.toml +RUN sed -i '/karkas-core = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \ + sed -i '/karkas-blocks = {/{s/, develop = true//}' /app/src/altlinux/pyproject.toml && \ + sed -i '/karkas-core = {/{s/, develop = true//}' /app/src/karkas_blocks/pyproject.toml WORKDIR /app/src/altlinux diff --git a/src/altlinux/README.md b/src/altlinux/README.md index ec07657..8bee95a 100644 --- a/src/altlinux/README.md +++ b/src/altlinux/README.md @@ -2,14 +2,14 @@ ## Описание -Подготовленная версия OCAB Lite для интеграции в чат [Альт Линукс](https://t.me/alt_linux) +Подготовленная версия Karkas Lite для интеграции в чат [Альт Линукс](https://t.me/alt_linux) ## Функционал Список OCAB-модулей используемых в боте: * report - Вызов администрации чата одной командой * welcome - Автоматическая вариативная проверка пользователей на признаки бота или другой автоматической рекламной системы -* help - Получение информации об OCAB Lite +* help - Получение информации об Karkas Lite ## Запуск diff --git a/src/altlinux/altlinux/__main__.py b/src/altlinux/altlinux/__main__.py index d49b85a..618082b 100644 --- a/src/altlinux/altlinux/__main__.py +++ b/src/altlinux/altlinux/__main__.py @@ -1,25 +1,25 @@ import asyncio from importlib.metadata import version -from ocab_core import OCAB -from ocab_modules import module_loader +from karkas_core import Karkas +from karkas_blocks import block_loader async def main(): - ocab = OCAB() - await ocab.init_app( + karkas = Karkas() + await karkas.init_app( [ - module_loader("standard", "config", safe=False), - module_loader("standard", "command_helper"), + block_loader("standard", "config", safe=False), + block_loader("standard", "command_helper"), # safe=False из-за super().__init__() - module_loader("standard", "filters", safe=False), - module_loader("standard", "report"), - module_loader("standard", "welcome", safe=False), - module_loader("standard", "help"), + block_loader("standard", "filters", safe=False), + block_loader("standard", "report"), + block_loader("standard", "welcome", safe=False), + block_loader("standard", "help"), ], metainfo={"app_version": version("altlinux")}, ) - await ocab.start() + await karkas.start() asyncio.run(main()) diff --git a/src/altlinux/poetry.lock b/src/altlinux/poetry.lock index 5224dc3..69d1016 100644 --- a/src/altlinux/poetry.lock +++ b/src/altlinux/poetry.lock @@ -1210,7 +1210,7 @@ files = [ ] [[package]] -name = "ocab-core" +name = "karkas-core" version = "0.1.0" description = "" optional = false @@ -1232,10 +1232,10 @@ webhook = ["fastapi (>=0.111.1,<0.112.0)", "hypercorn (>=0.17.3,<0.18.0)"] [package.source] type = "directory" -url = "../ocab_core" +url = "../karkas_core" [[package]] -name = "ocab-modules" +name = "karkas-blocks" version = "0.1.0" description = "" optional = false @@ -1247,13 +1247,13 @@ develop = true dash = "^2.17.1" dash-bootstrap-components = "^1.6.0" dash-extensions = "^1.0.18" -ocab-core = {path = "../ocab_core", develop = true} +karkas-core = {path = "../karkas_core", develop = true} peewee = "^3.17.6" pyyaml = "^6.0.1" [package.source] type = "directory" -url = "../ocab_modules" +url = "../karkas_blocks" [[package]] name = "packaging" diff --git a/src/altlinux/pyproject.toml b/src/altlinux/pyproject.toml index 38e816d..e63ca9e 100644 --- a/src/altlinux/pyproject.toml +++ b/src/altlinux/pyproject.toml @@ -9,8 +9,8 @@ readme = "README.md" [tool.poetry.dependencies] python = "~3.12" -ocab-core = { extras=["webhook"], path = "../ocab_core", develop = true } -ocab-modules = { path = "../ocab_modules", develop = true } +karkas-core = { extras=["webhook"], path = "../karkas_core", develop = true } +karkas-blocks = { path = "../karkas_blocks", develop = true } [build-system] requires = ["poetry-core"] diff --git a/src/ocab_core/README.md b/src/ocab_core/README.md index 4589c5d..0737215 100644 --- a/src/ocab_core/README.md +++ b/src/ocab_core/README.md @@ -1,6 +1,6 @@ -# OCAB Core +# Karkas Core -Это ядро OCAB, содержащее базовые компоненты: +Это ядро Karkas, содержащее базовые компоненты: - Система управления модулями. - Логирование. diff --git a/src/ocab_core/ocab_core/__init__.py b/src/ocab_core/ocab_core/__init__.py index de586f8..3940848 100644 --- a/src/ocab_core/ocab_core/__init__.py +++ b/src/ocab_core/ocab_core/__init__.py @@ -1 +1 @@ -from .main import OCAB +from .main import Karkas diff --git a/src/ocab_core/ocab_core/logger.py b/src/ocab_core/ocab_core/logger.py index 3a56ff6..620de07 100644 --- a/src/ocab_core/ocab_core/logger.py +++ b/src/ocab_core/ocab_core/logger.py @@ -1,7 +1,7 @@ import logging import traceback -app_logger = logging.getLogger("ocab") +app_logger = logging.getLogger("karkas") log_level = logging.INFO diff --git a/src/ocab_core/ocab_core/main.py b/src/ocab_core/ocab_core/main.py index fb91365..95a8764 100644 --- a/src/ocab_core/ocab_core/main.py +++ b/src/ocab_core/ocab_core/main.py @@ -3,17 +3,17 @@ from typing import TYPE_CHECKING from aiogram import Bot, Dispatcher -from ocab_core.lib import register_bot_webhook -from ocab_core.logger import CustomLogger, log, setup_logger -from ocab_core.modules_system import ModulesManager -from ocab_core.modules_system.public_api import get_module -from ocab_core.singleton import Singleton +from karkas_core.lib import register_bot_webhook +from karkas_core.logger import CustomLogger, log, setup_logger +from karkas_core.modules_system import ModulesManager +from karkas_core.modules_system.public_api import get_module +from karkas_core.singleton import Singleton if TYPE_CHECKING: - from ocab_modules.standard.config import IConfig + from karkas_blocks.standard.config import IConfig -class OCAB: +class Karkas: def __init__(self) -> None: pass @@ -26,10 +26,10 @@ class OCAB: try: singleton.modules_manager = ModulesManager() - for module_loader in bot_modules: - info = module_loader.info() + for block_loader in bot_modules: + info = block_loader.info() log(f"Loading {info.name} ({info.id}) module") - await singleton.modules_manager.load(module_loader) + await singleton.modules_manager.load(block_loader) register_config() diff --git a/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py b/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py index 3a04dd9..a0030bc 100644 --- a/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py +++ b/src/ocab_core/ocab_core/modules_system/loaders/fs_loader/FSLoader.py @@ -3,9 +3,9 @@ from pathlib import Path from RestrictedPython import compile_restricted_exec -# from ocab_core.logger import log -from ocab_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader -from ocab_core.modules_system.safe.policy import ( +# from karkas_core.logger import log +from karkas_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader +from karkas_core.modules_system.safe.policy import ( ALLOWED_IMPORTS, BUILTINS, RestrictedPythonPolicy, @@ -62,9 +62,9 @@ class FSLoader(UnsafeFSLoader): return file_path def _hook_import(self, name: str, *args, **kwargs): - if name == "ocab_core.modules_system.public_api": + if name == "karkas_core.modules_system.public_api": module = __import__(name, *args, **kwargs) - module.__ocab_module_id__ = self.module_id + module.__karkas_block_id__ = self.module_id return module for key in self.allowed_python_dependencies.keys(): @@ -78,7 +78,7 @@ class FSLoader(UnsafeFSLoader): module = types.ModuleType(name) module.__dict__.update( - {"__builtins__": self.builtins, "__ocab_module_id__": self.module_id} + {"__builtins__": self.builtins, "__karkas_block_id__": self.module_id} ) result = compile_restricted_exec(src, "", policy=RestrictedPythonPolicy) diff --git a/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py b/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py index d2ec974..37f790e 100644 --- a/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py +++ b/src/ocab_core/ocab_core/modules_system/loaders/unsafe_fs_loader/UnsafeFSLoader.py @@ -3,7 +3,7 @@ import os import sys from pathlib import Path -from ocab_core.modules_system.loaders.base import AbstractLoader, ModuleInfo +from karkas_core.modules_system.loaders.base import AbstractLoader, ModuleInfo class UnsafeFSLoader(AbstractLoader): diff --git a/src/ocab_core/ocab_core/modules_system/modules_manager.py b/src/ocab_core/ocab_core/modules_system/modules_manager.py index 390e826..e0ec9e6 100644 --- a/src/ocab_core/ocab_core/modules_system/modules_manager.py +++ b/src/ocab_core/ocab_core/modules_system/modules_manager.py @@ -4,7 +4,7 @@ import inspect import pkg_resources import semver -from ocab_core.modules_system.loaders.base import ( +from karkas_core.modules_system.loaders.base import ( AbstractLoader, DependencyInfo, ModuleInfo, diff --git a/src/ocab_core/ocab_core/modules_system/public_api/__init__.py b/src/ocab_core/ocab_core/modules_system/public_api/__init__.py index 866f4d6..8ead156 100644 --- a/src/ocab_core/ocab_core/modules_system/public_api/__init__.py +++ b/src/ocab_core/ocab_core/modules_system/public_api/__init__.py @@ -1,4 +1,4 @@ -from ocab_core.logger import log +from karkas_core.logger import log from .public_api import ( Storage, diff --git a/src/ocab_core/ocab_core/modules_system/public_api/public_api.py b/src/ocab_core/ocab_core/modules_system/public_api/public_api.py index e9ce931..53e6185 100644 --- a/src/ocab_core/ocab_core/modules_system/public_api/public_api.py +++ b/src/ocab_core/ocab_core/modules_system/public_api/public_api.py @@ -6,9 +6,9 @@ from aiogram import BaseMiddleware, Router from aiogram.fsm.context import FSMContext from aiogram.fsm.storage.base import StorageKey -# from ocab_core.logger import log -from ocab_core.modules_system.loaders.base import DependencyInfo -from ocab_core.singleton import Singleton +# from karkas_core.logger import log +from karkas_core.modules_system.loaders.base import DependencyInfo +from karkas_core.singleton import Singleton async def set_chat_menu_button(menu_button): @@ -64,8 +64,8 @@ def get_module( allowed_uses = None - if "__ocab_module_id__" in caller_globals: - caller_module_id = caller_globals["__ocab_module_id__"] + if "__karkas_block_id__" in caller_globals: + caller_module_id = caller_globals["__karkas_block_id__"] caller_module_info = app.modules_manager.get_info_by_id(caller_module_id) if caller_module_info and caller_module_info.dependencies: diff --git a/src/ocab_core/ocab_core/modules_system/safe/policy.py b/src/ocab_core/ocab_core/modules_system/safe/policy.py index d74fe6f..8dfc14b 100644 --- a/src/ocab_core/ocab_core/modules_system/safe/policy.py +++ b/src/ocab_core/ocab_core/modules_system/safe/policy.py @@ -17,8 +17,8 @@ from RestrictedPython.Guards import ( # guarded_setattr,; full_write_guard, safer_getattr, ) -from ocab_core.logger import log -from ocab_core.modules_system.safe.zope_guards import extra_safe_builtins +from karkas_core.logger import log +from karkas_core.modules_system.safe.zope_guards import extra_safe_builtins class RestrictedPythonPolicy(RestrictingNodeTransformer): diff --git a/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py b/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py index e5e6436..c6fcde6 100644 --- a/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py +++ b/src/ocab_core/ocab_core/modules_system/safe/zope_guards.py @@ -1,6 +1,6 @@ ############################################################################# # -# Copyright (c) 2024 OCAB Team +# Copyright (c) 2024 Karkas Team # Copyright (c) 2002 Zope Foundation and Contributors. # # This software includes a function derived from the software subject to the diff --git a/src/ocab_core/ocab_core/singleton.py b/src/ocab_core/ocab_core/singleton.py index 228092c..d0db542 100644 --- a/src/ocab_core/ocab_core/singleton.py +++ b/src/ocab_core/ocab_core/singleton.py @@ -1,7 +1,7 @@ from aiogram import Bot, Dispatcher from aiogram.fsm.storage.memory import MemoryStorage -from ocab_core.modules_system import ModulesManager +from karkas_core.modules_system import ModulesManager class SingletonMeta(type): diff --git a/src/ocab_core/poetry.lock b/src/ocab_core/poetry.lock index 97e7f4e..41bc5aa 100644 --- a/src/ocab_core/poetry.lock +++ b/src/ocab_core/poetry.lock @@ -1210,7 +1210,7 @@ files = [ ] [[package]] -name = "ocab-modules" +name = "karkas-blocks" version = "0.1.0" description = "" optional = false @@ -1222,13 +1222,13 @@ develop = true dash = "^2.17.1" dash-bootstrap-components = "^1.6.0" dash-extensions = "^1.0.18" -ocab-core = {path = "../ocab_core", develop = true} +karkas-core = {path = "../karkas_core", develop = true} peewee = "^3.17.6" pyyaml = "^6.0.1" [package.source] type = "directory" -url = "../ocab_modules" +url = "../karkas_blocks" [[package]] name = "packaging" diff --git a/src/ocab_core/pyproject.toml b/src/ocab_core/pyproject.toml index ea1e87d..26a6621 100644 --- a/src/ocab_core/pyproject.toml +++ b/src/ocab_core/pyproject.toml @@ -1,5 +1,5 @@ [tool.poetry] -name = "ocab-core" +name = "karkas-core" version = "0.1.0" description = "" authors = ["Максим Слипенко "] @@ -16,7 +16,7 @@ fastapi = { version = "^0.111.1", optional = true } hypercorn = { version = "^0.17.3", optional = true } [tool.poetry.group.dev.dependencies] -ocab-modules = { path = "../ocab_modules", develop = true } +karkas-blocks = { path = "../karkas_blocks", develop = true } [tool.poetry.extras] webhook = ["fastapi", "hypercorn"] diff --git a/src/ocab_modules/README.md b/src/ocab_modules/README.md index e3e2d50..a9de353 100644 --- a/src/ocab_modules/README.md +++ b/src/ocab_modules/README.md @@ -1,12 +1,12 @@ -# OCAB Modules +# Karkas Blocks -OCAB Modules содержит набор модулей для платформы Open Chat AI Bot (OCAB). +Karkas Blocks содержит набор модулей для платформы Open Chat AI Bot (Karkas). ## Описание -OCAB - это платформа для создания чат-ботов Telegram. Модули - это расширения, которые добавляют функциональность ботам OCAB. +Karkas - это платформа для создания чат-ботов Telegram. Модули - это расширения, которые добавляют функциональность ботам Karkas. ## Типы модулей * **Стандартные модули (standard.*):** Предоставляют основные функции, такие как управление пользователями, ролями и настройками. -* **Дополнительные официальные модули (external.*):** Разработаны командой OCAB и предоставляют расширенные возможности, такие как интеграция с нейросетями, внешними сервисами и API. +* **Дополнительные официальные модули (external.*):** Разработаны командой Karkas и предоставляют расширенные возможности, такие как интеграция с нейросетями, внешними сервисами и API. diff --git a/src/ocab_modules/ocab_modules/__init__.py b/src/ocab_modules/ocab_modules/__init__.py index cf4a902..d143f8a 100644 --- a/src/ocab_modules/ocab_modules/__init__.py +++ b/src/ocab_modules/ocab_modules/__init__.py @@ -1 +1 @@ -from .lib import module_loader +from .lib import block_loader diff --git a/src/ocab_modules/ocab_modules/lib.py b/src/ocab_modules/ocab_modules/lib.py index 7f71cc2..af7bcdb 100644 --- a/src/ocab_modules/ocab_modules/lib.py +++ b/src/ocab_modules/ocab_modules/lib.py @@ -1,8 +1,8 @@ import importlib import os -from ocab_core.modules_system.loaders.fs_loader import FSLoader -from ocab_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader +from karkas_core.modules_system.loaders.fs_loader import FSLoader +from karkas_core.modules_system.loaders.unsafe_fs_loader import UnsafeFSLoader def get_module_directory(module_name): @@ -15,11 +15,11 @@ def get_module_directory(module_name): return os.path.dirname(module_path) -ocab_modules_path = get_module_directory("ocab_modules") +karkas_blocks_path = get_module_directory("karkas_blocks") -def module_loader(namespace: str, module_name: str, safe=True): +def block_loader(namespace: str, module_name: str, safe=True): if not safe: - return UnsafeFSLoader(f"{ocab_modules_path}/{namespace}/{module_name}") + return UnsafeFSLoader(f"{karkas_blocks_path}/{namespace}/{module_name}") else: - return FSLoader(f"{ocab_modules_path}/{namespace}/{module_name}") + return FSLoader(f"{karkas_blocks_path}/{namespace}/{module_name}") diff --git a/src/ocab_modules/ocab_modules/standard/admin/handlers.py b/src/ocab_modules/ocab_modules/standard/admin/handlers.py index 9440eda..368cb2b 100644 --- a/src/ocab_modules/ocab_modules/standard/admin/handlers.py +++ b/src/ocab_modules/ocab_modules/standard/admin/handlers.py @@ -4,10 +4,10 @@ from typing import TYPE_CHECKING from aiogram import Bot from aiogram.types import Message -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module if TYPE_CHECKING: - from ocab_modules.standard.config import IConfig + from karkas_blocks.standard.config import IConfig config: "IConfig" = get_module("standard.config", "config") diff --git a/src/ocab_modules/ocab_modules/standard/admin/info.json b/src/ocab_modules/ocab_modules/standard/admin/info.json index a3eae7a..fd54142 100644 --- a/src/ocab_modules/ocab_modules/standard/admin/info.json +++ b/src/ocab_modules/ocab_modules/standard/admin/info.json @@ -2,7 +2,7 @@ "id": "standard.admin", "name": "Admin", "description": "Модуль для работы с админкой", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": false, "dependencies": { diff --git a/src/ocab_modules/ocab_modules/standard/admin/main.py b/src/ocab_modules/ocab_modules/standard/admin/main.py index 0dffedb..1f67729 100644 --- a/src/ocab_modules/ocab_modules/standard/admin/main.py +++ b/src/ocab_modules/ocab_modules/standard/admin/main.py @@ -1,4 +1,4 @@ -from ocab_core.modules_system.public_api import register_router +from karkas_core.modules_system.public_api import register_router from .routers import router diff --git a/src/ocab_modules/ocab_modules/standard/admin/routers.py b/src/ocab_modules/ocab_modules/standard/admin/routers.py index b2dc7a5..326de75 100644 --- a/src/ocab_modules/ocab_modules/standard/admin/routers.py +++ b/src/ocab_modules/ocab_modules/standard/admin/routers.py @@ -2,7 +2,7 @@ from aiogram import F, Router from aiogram.filters import Command -from ocab_core.modules_system.public_api import get_module, log +from karkas_core.modules_system.public_api import get_module, log from .handlers import ( chat_not_in_approve_list, diff --git a/src/ocab_modules/ocab_modules/standard/command_helper/README.md b/src/ocab_modules/ocab_modules/standard/command_helper/README.md index afb3deb..97a614f 100644 --- a/src/ocab_modules/ocab_modules/standard/command_helper/README.md +++ b/src/ocab_modules/ocab_modules/standard/command_helper/README.md @@ -16,7 +16,7 @@ ## Пример ```python -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module register_command = get_module("standard.command_helper", "register_command") diff --git a/src/ocab_modules/ocab_modules/standard/command_helper/info.json b/src/ocab_modules/ocab_modules/standard/command_helper/info.json index 00a14dc..8d41e24 100644 --- a/src/ocab_modules/ocab_modules/standard/command_helper/info.json +++ b/src/ocab_modules/ocab_modules/standard/command_helper/info.json @@ -2,7 +2,7 @@ "id": "standard.command_helper", "name": "Command helper", "description": "Модуль для отображения команд при вводе '/'", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": false, "dependencies": {} diff --git a/src/ocab_modules/ocab_modules/standard/command_helper/main.py b/src/ocab_modules/ocab_modules/standard/command_helper/main.py index 9fcb5f9..91d0209 100644 --- a/src/ocab_modules/ocab_modules/standard/command_helper/main.py +++ b/src/ocab_modules/ocab_modules/standard/command_helper/main.py @@ -1,6 +1,6 @@ from aiogram.types import BotCommand -from ocab_core.modules_system.public_api import set_my_commands +from karkas_core.modules_system.public_api import set_my_commands commands = dict() diff --git a/src/ocab_modules/ocab_modules/standard/config/README.md b/src/ocab_modules/ocab_modules/standard/config/README.md index 784757b..9094efe 100644 --- a/src/ocab_modules/ocab_modules/standard/config/README.md +++ b/src/ocab_modules/ocab_modules/standard/config/README.md @@ -18,7 +18,7 @@ ## Пример ```python -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module config = get_module("standard.config", "config") diff --git a/src/ocab_modules/ocab_modules/standard/config/config_manager.py b/src/ocab_modules/ocab_modules/standard/config/config_manager.py index 1c61a39..d8951ab 100644 --- a/src/ocab_modules/ocab_modules/standard/config/config_manager.py +++ b/src/ocab_modules/ocab_modules/standard/config/config_manager.py @@ -66,7 +66,7 @@ class ConfigManager: def _get_module_id(self): caller_frame = inspect.currentframe().f_back.f_back caller_globals = caller_frame.f_globals - module_id = caller_globals.get("__ocab_module_id__") + module_id = caller_globals.get("__karkas_block_id__") return module_id def mass_set(self, updates: Dict[str, Any]): diff --git a/src/ocab_modules/ocab_modules/standard/config/info.json b/src/ocab_modules/ocab_modules/standard/config/info.json index 9d6b7ef..e9e7b2c 100644 --- a/src/ocab_modules/ocab_modules/standard/config/info.json +++ b/src/ocab_modules/ocab_modules/standard/config/info.json @@ -2,7 +2,7 @@ "id": "standard.config", "name": "Config YAML", "description": "Модуль для работы с конфигурационным файлом бота (YAML)", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": true, "dependencies": { diff --git a/src/ocab_modules/ocab_modules/standard/config/main.py b/src/ocab_modules/ocab_modules/standard/config/main.py index 89096a0..8f1b835 100644 --- a/src/ocab_modules/ocab_modules/standard/config/main.py +++ b/src/ocab_modules/ocab_modules/standard/config/main.py @@ -1,4 +1,4 @@ -from ocab_core.modules_system.public_api import get_module, log +from karkas_core.modules_system.public_api import get_module, log from .config import config from .miniapp_ui import get_miniapp_blueprint diff --git a/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py b/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py index cd6fabd..799be60 100644 --- a/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py +++ b/src/ocab_modules/ocab_modules/standard/config/miniapp_ui.py @@ -12,10 +12,10 @@ try: except ImportError: DASH_AVAILABLE = False -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module if TYPE_CHECKING: - from ocab_modules.standard.roles import Roles as IRoles + from karkas_blocks.standard.roles import Roles as IRoles def create_control(key: str, config: ConfigManager): diff --git a/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py b/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py index cf17556..d704201 100644 --- a/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py +++ b/src/ocab_modules/ocab_modules/standard/config/tests/test_config.py @@ -1,6 +1,6 @@ import unittest -from src.ocab_modules.standard.config.config import get_config +from src.karkas_blocks.standard.config.config import get_config yaml_load = get_config(is_test=True) diff --git a/src/ocab_modules/ocab_modules/standard/database/README.md b/src/ocab_modules/ocab_modules/standard/database/README.md index 769e793..6553172 100644 --- a/src/ocab_modules/ocab_modules/standard/database/README.md +++ b/src/ocab_modules/ocab_modules/standard/database/README.md @@ -1,6 +1,6 @@ ## Модуль DataBase -Модуль DataBase предназначен для ведения и работы с базами данных OCAB. +Модуль DataBase предназначен для ведения и работы с базами данных Karkas. Модуль содержит в себе следующие таблицы: diff --git a/src/ocab_modules/ocab_modules/standard/database/db_api.py b/src/ocab_modules/ocab_modules/standard/database/db_api.py index 855a673..fca29b3 100644 --- a/src/ocab_modules/ocab_modules/standard/database/db_api.py +++ b/src/ocab_modules/ocab_modules/standard/database/db_api.py @@ -16,12 +16,12 @@ def connect_database(is_test: bool = False, module: str | None = None): raise NotExpectedModuleName() db_path = "database" - database = pw.SqliteDatabase(f"{db_path}/OCAB.db") + database = pw.SqliteDatabase(f"{db_path}/Karkas.db") database_proxy.initialize(database) database.connect() create_tables(database) - return database, f"{db_path}/OCAB.db" + return database, f"{db_path}/Karkas.db" def create_tables(db: pw.SqliteDatabase): diff --git a/src/ocab_modules/ocab_modules/standard/database/info.json b/src/ocab_modules/ocab_modules/standard/database/info.json index 1a5060e..3534496 100644 --- a/src/ocab_modules/ocab_modules/standard/database/info.json +++ b/src/ocab_modules/ocab_modules/standard/database/info.json @@ -2,7 +2,7 @@ "id": "standard.database", "name": "Database", "description": "Модуль для работы с БД", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": true, "dependencies": {} diff --git a/src/ocab_modules/ocab_modules/standard/filters/README.md b/src/ocab_modules/ocab_modules/standard/filters/README.md index 2166390..1cc0a49 100644 --- a/src/ocab_modules/ocab_modules/standard/filters/README.md +++ b/src/ocab_modules/ocab_modules/standard/filters/README.md @@ -16,7 +16,7 @@ ```python from aiogram import Router -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module ChatModerOrAdminFilter = get_module("standard.filters", "ChatModerOrAdminFilter") diff --git a/src/ocab_modules/ocab_modules/standard/filters/filters.py b/src/ocab_modules/ocab_modules/standard/filters/filters.py index 4370baf..dfe98bd 100644 --- a/src/ocab_modules/ocab_modules/standard/filters/filters.py +++ b/src/ocab_modules/ocab_modules/standard/filters/filters.py @@ -5,11 +5,11 @@ from aiogram.filters import BaseFilter from aiogram.types import Message from typing_extensions import deprecated -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module if TYPE_CHECKING: - from ocab_modules.standard.config import IConfig - from ocab_modules.standard.roles import Roles as IRoles + from karkas_blocks.standard.config import IConfig + from karkas_blocks.standard.roles import Roles as IRoles config: "IConfig" = get_module("standard.config", "config") diff --git a/src/ocab_modules/ocab_modules/standard/filters/info.json b/src/ocab_modules/ocab_modules/standard/filters/info.json index 9554bea..aabb3fe 100644 --- a/src/ocab_modules/ocab_modules/standard/filters/info.json +++ b/src/ocab_modules/ocab_modules/standard/filters/info.json @@ -2,7 +2,7 @@ "id": "standard.filters", "name": "Filters", "description": "Модуль с фильтрами", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": true, "dependencies": { diff --git a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py index 4b71145..1716158 100644 --- a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py +++ b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/fsm.py @@ -4,11 +4,11 @@ from typing import TYPE_CHECKING, Any, Dict, Optional from aiogram.fsm.state import State from aiogram.fsm.storage.base import BaseStorage, StorageKey -from ocab_core.modules_system.public_api import get_module, log -from ocab_core.modules_system.public_api.public_api import set_fsm +from karkas_core.modules_system.public_api import get_module, log +from karkas_core.modules_system.public_api.public_api import set_fsm if TYPE_CHECKING: - from ocab_modules.standard.database.repositories import ( + from karkas_blocks.standard.database.repositories import ( FSMDataRepository as IFSMDataRepository, ) diff --git a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json index 58c05b4..1302a34 100644 --- a/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json +++ b/src/ocab_modules/ocab_modules/standard/fsm_database_storage/info.json @@ -2,7 +2,7 @@ "id": "standard.fsm_database_storage", "name": "FSM Database Storage", "description": "Очень полезный модуль", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": false, "dependencies": { diff --git a/src/ocab_modules/ocab_modules/standard/help/info.json b/src/ocab_modules/ocab_modules/standard/help/info.json index 30cbbe6..75df4ed 100644 --- a/src/ocab_modules/ocab_modules/standard/help/info.json +++ b/src/ocab_modules/ocab_modules/standard/help/info.json @@ -1,21 +1,21 @@ { - "id": "standard.help", - "name": "Help", - "description": "Модуль для вывода /help сообщения", - "author": "OCAB Team", - "version": "1.0.0", - "privileged": false, - "dependencies": { - "required": { - "standard.config": "^1.0.0" - }, - "optional": { - "standard.command_helper": "^1.0.0" - } + "id": "standard.help", + "name": "Help", + "description": "Модуль для вывода /help сообщения", + "author": "Karkas Team", + "version": "1.0.0", + "privileged": false, + "dependencies": { + "required": { + "standard.config": "^1.0.0" }, - "pythonDependencies": { - "required": { - "string": "*" - } + "optional": { + "standard.command_helper": "^1.0.0" } + }, + "pythonDependencies": { + "required": { + "string": "*" + } + } } diff --git a/src/ocab_modules/ocab_modules/standard/help/main.py b/src/ocab_modules/ocab_modules/standard/help/main.py index 6dedb83..a5e1de0 100644 --- a/src/ocab_modules/ocab_modules/standard/help/main.py +++ b/src/ocab_modules/ocab_modules/standard/help/main.py @@ -5,14 +5,14 @@ from aiogram import Router from aiogram.filters import Command from aiogram.types import Message -from ocab_core.modules_system.public_api import ( +from karkas_core.modules_system.public_api import ( get_metainfo, get_module, register_router, ) if TYPE_CHECKING: - from ocab_modules.standard.config import IConfig + from karkas_blocks.standard.config import IConfig config: "IConfig" = get_module("standard.config", "config") diff --git a/src/ocab_modules/ocab_modules/standard/info/handlers.py b/src/ocab_modules/ocab_modules/standard/info/handlers.py index eb369c9..8c18816 100644 --- a/src/ocab_modules/ocab_modules/standard/info/handlers.py +++ b/src/ocab_modules/ocab_modules/standard/info/handlers.py @@ -5,11 +5,11 @@ from typing import TYPE_CHECKING from aiogram import Bot from aiogram.types import Message -from ocab_core.modules_system.public_api import get_module, log +from karkas_core.modules_system.public_api import get_module, log if TYPE_CHECKING: - from ocab_modules.standard.database import db_api as IDbApi - from ocab_modules.standard.roles import Roles as IRoles + from karkas_blocks.standard.database import db_api as IDbApi + from karkas_blocks.standard.roles import Roles as IRoles db_api: "IDbApi" = get_module( "standard.database", diff --git a/src/ocab_modules/ocab_modules/standard/info/info.json b/src/ocab_modules/ocab_modules/standard/info/info.json index 3a37f73..454f1c7 100644 --- a/src/ocab_modules/ocab_modules/standard/info/info.json +++ b/src/ocab_modules/ocab_modules/standard/info/info.json @@ -2,7 +2,7 @@ "id": "standard.info", "name": "Info", "description": "Модуль с информацией", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": false, "dependencies": { diff --git a/src/ocab_modules/ocab_modules/standard/info/main.py b/src/ocab_modules/ocab_modules/standard/info/main.py index 8893a44..4756851 100644 --- a/src/ocab_modules/ocab_modules/standard/info/main.py +++ b/src/ocab_modules/ocab_modules/standard/info/main.py @@ -1,7 +1,7 @@ from aiogram import Router from aiogram.filters import Command -from ocab_core.modules_system.public_api import get_module, register_router +from karkas_core.modules_system.public_api import get_module, register_router from .handlers import get_chat_info, get_user_info diff --git a/src/ocab_modules/ocab_modules/standard/message_processing/info.json b/src/ocab_modules/ocab_modules/standard/message_processing/info.json index 8fbeb1a..6c72bed 100644 --- a/src/ocab_modules/ocab_modules/standard/message_processing/info.json +++ b/src/ocab_modules/ocab_modules/standard/message_processing/info.json @@ -2,7 +2,7 @@ "id": "standard.message_processing", "name": "Info", "description": "Модуль с информацией", - "author": "OCAB Team", + "author": "Karkas Team", "version": "1.0.0", "privileged": false, "dependencies": { diff --git a/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py b/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py index 834bbc5..496f454 100644 --- a/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py +++ b/src/ocab_modules/ocab_modules/standard/message_processing/message_api.py @@ -4,10 +4,10 @@ from typing import TYPE_CHECKING from aiogram import Bot, F, Router, types -from ocab_core.modules_system.public_api import get_module, log, register_router +from karkas_core.modules_system.public_api import get_module, log, register_router if TYPE_CHECKING: - from ocab_modules.standard.config import IConfig + from karkas_blocks.standard.config import IConfig config: "IConfig" = get_module("standard.config", "config") diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/README.md b/src/ocab_modules/ocab_modules/standard/miniapp/README.md index 5d47f17..0fd1008 100644 --- a/src/ocab_modules/ocab_modules/standard/miniapp/README.md +++ b/src/ocab_modules/ocab_modules/standard/miniapp/README.md @@ -15,7 +15,7 @@ ## Пример ```python -from ocab_core.modules_system.public_api import get_module +from karkas_core.modules_system.public_api import get_module register_page = get_module("standard.miniapp", "register_page") diff --git a/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py b/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py index 5137770..2d5a928 100644 --- a/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py +++ b/src/ocab_modules/ocab_modules/standard/miniapp/dash_telegram_auth.py @@ -12,7 +12,7 @@ WEBAPP_LOADER_TEMPLATE = """ - OCAB + Karkas