Skip to main content

An implementation of Finite State Automata for event streams

Project description

This is a library for running Finite State Automata (FSA) on bound and unbound streams of event.

It supports

  • non-determininistic FSA’s,

  • noise-tolerant FSA’s (i.e. ignoring some or all non-relevant events),

  • overlapping matched,

  • extensible matching functions for transitions.

TODO: proper documentation

It should describe:

  • how to use the library, through tutorials

    • demonstrating in particular the various ways to build noise-tolerant FSA’s (silent transitions, default transitions, global and state max_noise),

    • explaining the notion of token,

    • explaining the role of finish(), and why a token on a final state may not immediately return a match;

  • the structure of tokens (as returned by feed() and feed_all();

  • the format of the JSON files used to store FSA structures,

    • may be also the format of the JSON files used to save tokens;

  • how to write additional matcher functions,

    • and how they may be used to extend the expressiveness of FSA beyond regular grammars;

  • some of the design choices of the library,

    • especially why an empty sequence is never a match, even if the ‘start’ state is marked as terminal.

Ideas for future extensions

  • export to dot (for graphical presentation)

  • toolkit for handling FSA’s - optimizing - merging

  • more built-in matchers? - prefix - more flexible regexp (i.e. not enforcing ^ and $)

  • converter of regexp to automata

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fsa4streams-0.2.tar.gz (6.3 kB view details)

Uploaded Source

File details

Details for the file fsa4streams-0.2.tar.gz.

File metadata

  • Download URL: fsa4streams-0.2.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for fsa4streams-0.2.tar.gz
Algorithm Hash digest
SHA256 f4fa0935a7b44f790f7b717fe3d74b975b736f9b912f1813fea276217a62db35
MD5 b073ed91112515a62b2891310f442269
BLAKE2b-256 f0977e754a18c56572de9350c1376ff94803054a36cd168df7ced78b5d4ff55b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page