ANN: Generating Python FSM/REST applications for Quixote

Dave Kuhlman dkuhlman at rexx.com
Wed Mar 26 16:46:49 EST 2003


I'm continuing my work with FSM (finite state machines) and REST. 
I'm now doing a more complete job of generating an FSM/REST
applications that runs on top of the Quixote Web application
framework.

I've implemented a harness (fsmGenerate.py) that reads an XML FSM
document and, from it, generates the following:

  - State definition modules -- These are Python modules that
    implement a Quixote application.  One module is generated for
    each state in the FSM.  Each generated module contains a class
    that implements the state.

  - An __init__.py file -- This file implements the dispatcher for
    the application.  It takes the current state name and calls the
    implementation of that state.

  - A states.py file -- This file contains a super class for the
    classes that implement the states in the FSM.

  - XML Schema files -- One file is generated for each state in the
    FSM.  And, these XML Schema files are used to generate a python
    parser for each XML interchange document and Python classes
    that represent the XML elements in each document.

  - A GUI definition file -- An XML definition file for a graphical
    user interface.  The interface definition can be edited with
    wxGlade graphical GUI editor.  wxGlade can also generate Python
    code that implements the user interface.  This code can be used
    in the implementation of client applications.  wxGlade
    generates Python code for wxPython.

I've picked FSM to work with because I feel that we need a
systematic way to work with and implement complex processes in a
REST-ful way.

This is not finished code or a shrink-wrap,
use-it-right-out-of-the-box product.  I view it more as code to
build upon.  And, the code that it generates requires editing: for
example, you will want to add application specific functionality. 
However, my tests show that it generates a reasonable skeleton of
an application.

A document describing this is available at:

    http://www.rexx.com/~dkuhlman/fsmGenerate_howto.html

And, a file containing support code and examples is at:

    http://www.rexx.com/~dkuhlman/fsmGenerate_examples.zip.

As usual, I am interested in comments and suggestions.  And, if you
would like help using this, please let me know.

  - Dave

-- 
Dave Kuhlman
dkuhlman at rexx.com
http://www.rexx.com/~dkuhlman




More information about the Python-list mailing list