gerer des plugins avec python.

gerer des plugins avec python. - Python - Programmation

Marsh Posté le 16-03-2004 à 10:21:47    

Salut.
 
je doit faire un moteur de plugins sous python, mais j'ai du mal a voir comment je peux faire. Un prof m'as dis que cela pouvais ce gerer assez simplement. mais comme je ne peux pas le voir dans l'immedia, je m'adresse a vous. En faite j'etais partie sur ce principe:  

Code :
  1. Moteur de plug-in: analyse
  2. Il s'agit de creer une interface qui permet d'ajouter des fonctionnalité au programme
  3. Principe de fonctionnement
  4. Le principe est le suivant. les fichier de plug-in sont tous stockés dans le même dossier. Au démarage du programme, le moteur lit le nom de chaque fichier. Et à partir de ces noms, créer des objets heritant de InterfacePlugIn. ces objets, une fois creer,sont stocker dans une structure de donnée encore à definir. Ainsi stockerils ont deviennes facile à manipuler.
  5. Les problemes pouvant etre rencontré.
  6. Il est possible que ce systeme de recuperation des objets PlugIn: il faudrais alors chercher un autre system de fonctionnement. Il reste a verifier s'il n'y a pas une meilleur methode
  7. Il peut y avoir des problemes aussi au niveau de l'IHM et de son acces. c'est un point qu'il faudra éclairir
  8. Interface Moteur/plug-in
  9. creation d'une classe InterfacePlugIn, implementant les methodes ci dessous:
  10.     * getName():void => cette methode permet de recuperer le nom du plug-in
  11.     * getABCList(AllABCFile abcfile):void =>cette methode permet d'acceder à la liste de ABCFile
  12.     * setABCList():AllABCFile => cette methode permet de modifier cette liste
  13.     * getPlugInIHM(IHM ihm):void => il y a un emplacement attibué au plug-in ds l'IHM, cette methode permet d'y acceder
  14.     * setPlugInIHM():IHM => permet de modifier cette IHM
  15.     * start():void => methode qui permet de demarrer le plug-in: on peux la comparer à un main
  16.     * stop():void => methode qui arret ele plug-in (reste a verifier si c'est vraiment utile)
  17. IMPORTANT: il en peut y avoir qu'un plug-in par fichier, le nom du fichier etant l'identifiant du plug-in. ce nom de fichier doit ce retrouvé ds une des classe contenu ds le fichier. cette classe etant la classe heitant de InterfacePlugIn
  18. Classe MoteurPlugIn
  19. La classe Moteur qui va traiter les plug-in. Il y a plusieur methodes à implementer
  20.     * loadPlugIn(String pluginDirectory):boolean => cette methode permet de charger les plug-in contenu dans un dossier et de les stocker dans une structure de donnée
  21.     * getPlug(String name):void => cette methode permet d'y acceder au plug-in dont le nom est passé en parametre
  22.     * contains(String name):boolean =>cette methode permet de verifier si le plug-in avec le nom passé en parametre existe ou non.
  23.     * getPlugInList():Structure de donnée(non definit) => permet de recuperer la liste des plug-in


 
la ou je bloque en faite c'est pour charger les plugins. car je recupere le nom des fichier.py contenu dans le dossier plugins.
et avace j'aimerais creer de nouveau objet. c peu etre un peu foireux comme technique. et de toute mainere c pas ecore fait. mais enfin bon si quelqu'un a quelque chose d emieux a me proposer je suis preneur.  
 
voila merci d'avance. je ne demande pas qu'on code pour moi, mais j'aimerais avoir quelque piste sur l'algorythme a utiliser. :)

Reply

Marsh Posté le 16-03-2004 à 10:21:47   

Reply

Marsh Posté le 16-03-2004 à 10:52:06    

ben dès que t'as le nom du plugin, il te suffit de l'importer
2 facçons:
 - avec un exec, pour quoi pas dans un bac à sable, c'est mieux
 - le module imp

Reply

Marsh Posté le 16-03-2004 à 11:05:26    

Taz a écrit :

ben dès que t'as le nom du plugin, il te suffit de l'importer
2 facçons:
 - avec un exec, pour quoi pas dans un bac à sable, c'est mieux
 - le module imp


c'est quoi un bac a sable? et l'exec il vien faire quoi ici? :)
je regarde le module imp :)

Reply

Marsh Posté le 16-03-2004 à 11:13:19    

renseigne toi sur exec et tu vas comprendre

Reply

Marsh Posté le 16-03-2004 à 11:20:40    

tu as aussi __import__ je suis con, je l'ai oublié alors que c'est la voie royale

Reply

Marsh Posté le 16-03-2004 à 11:23:53    

Taz a écrit :

tu as aussi __import__ je suis con, je l'ai oublié alors que c'est la voie royale


 
merci beaucoup de m'avoir mis sur la voie. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed