pytomaton

Een handiger en beknopte manier om staatsmachines in Python uit te drukken
Download nu

pytomaton Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • MIT/X Consortium Lic...
  • Prijs:
  • FREE
  • Naam uitgever:
  • Will Haldean Brown
  • Uitgever website:
  • https://github.com/haldean/

pytomaton Tags


pytomaton Beschrijving

Vaak is een staatsmachine een handige manier om een stateful-protocol te implementeren, maar ze hebben vaak veel rommelige boilerplaat om te beheren hoe u van de ene toestand naar de volgende overgang gaat of wat er precies gebeurt wanneer u een staat invoert. Pytomaton is gemaakt om deze boilerplatecode te verkleinen.just zoals in een theoretische automaat, een `pytomaton.statemachine` heeft een lijst met staten, een startstatus. Op elk moment is een staatsmachine in één enkele staat. De programmeur kan `statemachine.transitie (new_state_name) inroepen" om over te gaan naar een nieuwe staat; Wanneer dit gebeurt, controleert de staatsmachine om te zien of er acties zijn die door deze overgang worden geactiveerd. Momenteel kunnen acties worden geactiveerd door een specifieke status in te voeren (`on_enter`), of door te overgaan van een specifieke toestand naar de andere (` on_transition`). Methoden zijn ingericht als wordt ingericht door overgangen, zoals getoond in het onderstaande voorbeeld. Uitbeelding van Pytomaton import Statemachine, on_transition, on_enter class-connectionmachine (statemachine): staten = Start_State = 'Waiting_FOR_Connection 'Def on_connect (Self): self.transition (' Waiting_for_ready ') @on_transition (' Waiting_for_connection ',' Waiting_for_ready ') Def Send_ready_Promp (Self): Self.Broadcast (' Ben je klaar? ') Def Ontvangst! self.all_ready (): self.transition ('all_ready') @on_enter ('all_ready') def send_all_ready (self): self.broadcast ('Iedereen is klaar!') In dit voorbeeld definiëren we een 'connectionmachine' drie staten. Het begint in de staat `Waits_for_Connection`. Wanneer een gebruiker, in overgangen naar de `WAATS_FOR_REATED" staat, die een oproep naar `Send_ready_Promp" triggert. Wanneer een gebruiker bevestigt dat ze klaar zijn, gaan we over naar de `on_ready" -staat, wat een oproep activeert naar `Send_all_ready`.Product's startpagina


pytomaton Gerelateerde software