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