打包与发布¶
将您的组件发布在 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,以供框架识别。