Рубрики
Без рубрики

Создать плагин бэкэнд/хранения Errbot в виде пакета PYPI

При разработке некоторых плагинов Errbot я думаю, что плагины для хранения и бэкэнд … Tagged с Python, Errbot.

При разработке некоторых плагинов Errbot я думаю, что плагины для хранения и бэкэнд лучше управляются как пакет (если возможно, должны быть зарегистрированы в PYPI)

Чтобы запустить бот, я звоню Errbot командование В этой команде загружают плагины в порядке хранения, бэкэнд и бот-плугинов. При начальной загрузке и плагине бэкэнд он не проверяет зависимости.

На самом деле некоторые плагины позволяют установить зависимости по командной строке.

бывший:

Если плагины имеют зависимости и должны установить их вручную, я думаю, что лучше определить как модуль и пакет.

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”