При разработке некоторых плагинов Errbot я думаю, что плагины для хранения и бэкэнд лучше управляются как пакет (если возможно, должны быть зарегистрированы в PYPI)
Чтобы запустить бот, я звоню Errbot
командование В этой команде загружают плагины в порядке хранения, бэкэнд и бот-плугинов. При начальной загрузке и плагине бэкэнд он не проверяет зависимости.
На самом деле некоторые плагины позволяют установить зависимости по командной строке.
бывший:
- https://github.com/errbotio/errbot-backend-skype
- https://github.com/Vaelor/errbot-mattermost-backend
Если плагины имеют зависимости и должны установить их вручную, я думаю, что лучше определить как модуль и пакет.
Errbot работает как демон в целом. По этой причине плагин для хранения и бэкэнда не будет почти изменен при запуске.
Следовательно, их можно управлять как требования вместе с ядром Errbot. Если это, PIP установка -R TEDS.TXT
В вашем местном репозитории может установить все зависимости.
Пример: (эти плагины не зарегистрированы в PYPI)
errbot errbot-backend-gitter errbot-storage-firebase
Список файлов
Структура проекта одинакова для стандартного пакета Python.
setup.py
setup.cfg
Readme.rst
MANIFEST.in
errbot_backend_demo
__init__.py
demo.py
Demo.plug
Писания
setup.py
Это может написать просто.
#!/usr/bin/env python from setuptools import setup setup()
setup.cfg
В настоящее время все метаданные могут писать в setup.cfg. Пожалуйста, определите Options.package_data
раздел и include_package_data
Ключ, чтобы включить .plug File в качестве установки ресурса.
[metadata] name = errbot-backend-demo version = attr:errbot_backend_demo.__version__ author = Kazuya Takei author_email = attakei@example.com description = Demo backend plugin for Errbot long_description = file:README.rst [options] install_requires = YOUR_DEPENDENCIES packages = find: include_package_data = True [options.package_data] errbot_backend_demo = *.plug
Лицензия
Писать нормально.
MANIFEST.in
Так же, как setup.cfg
, определить .plug как включить файл.
include errbot_backend_demo/*.plug
__init__.py
Определите версию пакета здесь. И определить функцию для возврата пути установки.
from pathlib import Path __version__ = '0.0.1-alpha.1' def get_plugin_dir() -> str: module_dir = Path(__file__).parent return str(module_dir)
Demo.py и Demo.plug
Напишите обычно как плагин.
Если плагин определяет как пакет на них, вы можете написать config.py для использования плагина.
import errbot_backend_demo BOT_EXTRA_BACKEND_DIR = errbot_backend_demo.get_plugin_dir() BACKEND = 'Demo'
Оригинал: “https://dev.to/attakei/create-errbot-backend-storage-plugin-as-pypi-package-cc6”