Yapsy 1.0.0

Et hop la première release de mon petit module Python. Bon ce n’est certainement pas le plus révolutionnaire des modules, mais la plupart des modules qui proposent ainsi un petit framework pour faire des plugins, ont soit des dépendances démoniaque (certains nécessitent d’installer zope…) soient une syntaxe (que je trouve) chelou. Donc voilà yapsy, un petit module tout simple mais qui fait son job :

Python Package Index : Yapsy 1.0.0

  • Salut Thibauld,

    Désolé de poser mes questions ici, j’ai cherché partout mais tu ne sembles pas
    avoir de lien pour t’envoyer un mail, où alors il est bien caché.

    Merci pour Yapsy, l’idée initiale me plaît beaucoup : pas de
    dépendances avec des mastodontes comme Zope ou autres. Je me demande d’
    ailleurs qui peut se servir efficacement de trucs pareils.

    J’ai une petite requête cependant, ou plutôt un truc que je ne comprends pas
    encore assez bien dans l’implémentation.
    Supposons que j’ai une application avec GUI (peu importe le toolkit utilisé),
    disposant par exemple d’un éditeur de texte, d’un menu, etc.

    J’aimerai que mon Plugin fournisse une nouvelle méthode, nommons là par
    exemple ‘metEnMajuscules()’ à l’éditeur de texte.
    Je ne vois pas comment faire pour que mon plugin ait une instance de
    l’éditeur à portée de main.

    Merci de m’éclairer sur ce point, à bientôt :

    Christophe.

  • Pour l’email ca me rappelle que j’ai toujours pas rempli la section about ce serait bien que je le fasse c vrai.

    Merci pour le commentaire sur yapsy: au passage il a changé d’adresse (et je vais bientot releaser une version stable): yapsy.sourceforge.net

    Pour ta question sur l’éditeur de texte: ça correspond assez à ce que j’essaie de faire sur mon autre projet mathbench. Donc en gros:

    – yapsy n’est pas « concerne » par ce genre de fonctionalité (j’avais déjà fait un petit système de plugin qui se chargeait de ce genre de chose, c’est vite devenu l’horeur)

    – l’idée pour faire ça est d’accéder au classes de ton appli par de « simples » import. Par exemple dans le fichier définissant ton plugin tu pourrais avoir:

    import MyEditor

    class MyPlugin(IPlugin):

    # definition du plugin avec une methode metEnMajucule par exemple
    # puis dans le code d’activation du plugins

    def activate(self):
    MyEditor.AddFormattingMethod(metEnMajuscule)

    – Tu peux aussi créer des classes de plugin ou de plugin manager (héritée de yapsy ou d’autre chose) qui gère ce genre de truc par des conventions sur les noms genre toute les méthodes du plugins qui s’appellent textFormatingMachinChose sont ajoutée dans le menu « Format » de l’éditeur avec le nom « MachinChose »

    – Tu peux pour ce genre de chose aller voir comment cela est fait dans les projet comme gedit (http://www.gnome.org/projects/gedit/) en particulier ou peppy (http://www.flipturn.org/peppy/) qui utilise (déjà !) yapsy.