Aide mémoire à l'utilisation des 'entry points' de setuptools
- Créer un module dans un répertoire dédié.
mkdir tarte $EDITOR tarte/*__init__.py* Y écrire votre morceau de code préféré.
def aux(): print "Pommes !"
- Créer un fichier setup.py contenant des informations à propos de votre paquetage et les points d'entrée:
from setuptools import setup setup ( name='TarteAuxPommes', version="1.0", description="De saison.", author="Jean Schurger", packages=['tarte'], entry_points=""" [Tarte] un_nom = tarte:aux """, )
- Tester dans un environnement
virtualenv sudo python setup.py install (ou 'develop' si vous voulez pouvoir modifier le code en place tout en mimant un version installée)
In [1]: from pkg_resources import load_entry_point In [2]: f = load_entry_point('TarteAuxPommes', 'Tarte', 'aux') Out[2]: f() Pommes !
- Vous pouvez aussi découvrir des points d'entrée.
In a more complex application, you may have more plugins ! and you may want to discover them and maybe load them too !
In [1]: from pkg_resources import iter_entry_points In [2]: for object in iter_entry_points(group='Baz.plugin'): ...: print object ...: ...: Foooo = super_plugin:Foo In [3]: object.load() Out[3]: In [4]: _().super_function() Foo plugin loaded ! Bar!