Bonjour et merci d'avance pour vos réponses,
Je suis en train d'utiliser Fysom (https://github.com/oxplot/fysom) pour réaliser une machine d'états.

Le module est relativement simple d'utilisation. Voici un example:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
TABLE = {
'initial': 'OFF',
'events': [{'name': 'load', 'src': 'OFF', 'dst': 'LOADED'},],
'callbacks': {'onload': myfunction,}}
 
fsm = Fysom(TABLE)
Il est possible d'utiliser un mécanisme de callbacks avec ce module. Ici la function appelé est myfunction lorsque la transition onload est lancé ou encore lors du passage de l'état OFF à LOADED.
Ce que je voudrai serait d'avoir un mécanisme inverse. C'est-à-dire lors de l'appel de la fonction myfunction le changement d'état de OFF à LOADED s'opère (l'appel de onload s'opère).

J'ai jeté un oeil au module et j'ai vu la partie qui se charge du callback:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
def _enter_state(self, e):
    '''
        Executes the callback for onenter_state_ or on_state_.
    '''
    for fnname in ['onenter' + e.dst, 'on' + e.dst]:
        if hasattr(self, fnname):
            return getattr(self, fnname)(e)
Cette fonction est lancée lors du changement d'état dans la boucle principal du programme Fysom.
Je ne vois donc pas comment effectuer l'opération inverse sachant que la fonction myfunction est externe au module et n'a aucun lien avec celui-ci.