Empaque y Publicación¶
Publica tu módulo en PyPI¶
Publicar módulos en PyPI es una de las maneras más sencillas para que los usuarios instalen su paquete. Consulte la documentación relacionada y tutoriales sobre PyPI y pip para publicar paquetes.
For EFB modules, the package is RECOMMENDED to have
a name starts with efb-
, or in the format of
efb-platform-type
, e.g. efb-irc-slave
or
efb-wechat-mp-filter-middleware
. If there is a
collision of name, you MAY adjust the package name
accordingly while keeping the package name starting
with efb-
.
When you are ready, you may also want to add your module to the Modules Repository of EFB.
Descubrimiento de módulo¶
EH Forwarder Bot utiliza la función de punto de entrada`Setuptools` __ para descubrir y administrar canales y middlewares. En su escritura `` setup.py`` o .egg-info / entry_points.txt
, especifique el grupo y el objeto de la siguiente manera:
Grupo para canales maestros: `` ehforwarderbot.master``
Grupo para canales esclavos: `` ehforwarderbot.slave``
Group for middlewares:
ehforwarderbot.middleware
Convention for object names is <author>.<platform>
,
e.g. alice.irc
. This MUST also be your module’s ID.
Object reference MUST point to your module’s class,
which is a subclass of either Channel
or Middleware
.
Ejemplo¶
setup.py
script
setup(
# ...
entry_points={
"ehforwarderbot.slave": ['alice.irc = efb_irc_slave:IRCChannel']
},
# ...
)
.egg-info/entry_points.txt
[ehforwarderbot.slave]
alice.irc = efb_irc_slave:IRCChannel
Módulos privados¶
Si desea extender o hacer cambios en los módulos existentes para su propio uso, puede tener sus módulos en los módulos privados: :doc: directorio <../ directories>.
For such modules, your channel ID MUST be the fully-qualified
name of the class. For example, if your class is located
at <EFB_BASE_PATH>/modules/bob_irc_mod/__init__.py:IRCChannel
,
the channel MUST have ID bob_ric_mod.IRCChannel
for the
framework to recognise it.