Moteur de script en Python
Récemment, j’ai dû réfléchir à une solution de moteur de script dans le cadre d’un projet au boulot. Le but est d’enregistrer l’exécution d’un code python à la volée et de générer le script équivalent, pouvant se rejouer seul.
J’ai pour cela utilisé Spring Python qui est la version Python du fameux Spring pour Java, ainsi que l’introspection fournie par Python.
J’ai pris un exemple simpliste dont le sens des classes a peu d’intérêt, l’important étant d’avoir plusieurs classes pour générer des noms d’instances uniques par type. Le code source est disponible ici.
On crée deux classes de base qui encapsule des entiers (Chiffre et Nombre) et une classe qui possède des méthodes statiques afin d’instancier et d’additionner un Chiffre et un Nombre.
|
|
|
Il faut ensuite définir un intercepteur qui sera appelé lorsque qu’une méthode de la classe LibCalcul sera appelée. Le point d’entrée de cette classe est la méthode “invoke”.
|
On met en place le système dans un script.
|
Voilà le résulat.
|