打包与发布

将您的组件发布在 PyPI 上

在 PyPI 上发布组件是让用户最快使用您的组件的方法之一。有关如何发布组件,请参阅 PyPI 及 pip 的相关文档。

我们建议(RECOMMEND)将 EFB 组件名以 efb- 为前缀,或是按 efb-平台-类型 的格式来命名您的组件(例如 efb-irc-slave 或 efb-wechat-mp-filter-middleware)。如果名称发生冲突,您可以(MAY)更改您的包名并保留 efb- 作为前缀。

准备就绪后,您还可以将您的组件添加到 EFB 的组件仓库

组件发现机制

EH Forwarder Bot 使用 Setuptools 的 Entry Point 特性 来寻找及管理信道和中间件。在您的 setup.py 脚本或是 .egg-info/entry_points.txt 中,可通过如下方法来指定组和对象:

  • 主端组:ehforwarderbot.master

  • 从端组: ehforwarderbot.slave

  • 中间件组:ehforwarderbot.middleware

对象名称的格式推荐(RECOMMEND)使用 <author>.<platform>,如 alice.irc。该名称必须(MUST)与组件 ID 相同。

对象引用必须指向你的组件的类,该类应是 Channel 或 Middleware 的子类。

示例

setup.py 脚本

setup(
    # ...
    entry_points={
        "ehforwarderbot.slave": ['alice.irc = efb_irc_slave:IRCChannel']
    },
    # ...
)

.egg-info/entry_points.txt`

[ehforwarderbot.slave]
alice.irc = efb_irc_slave:IRCChannel

私有组件

如果您想要对现有组件做出更改或是扩展以满足个人使用,您可以将其放入私有组件目录中。

对于这些组件,您的通道 ID 必须(MUST)是类的完全限定名称。例如,如果类位于 <EFB_BASE_PATH>/modules/bob_irc_mod/__init__.py:IRCChannel。这个通道的 ID 必须(MUST)为 bob_ric_mod.IRCChannel,以供框架识别。