* Check paths and executables for existence and executor status

        if cmd is None or \
            not os.path.exists(cmd) or \
            not os.access(cmd,os.X_OK):
            raise ApplicationError, "The 'glpsol' application cannot be found"



MISCELLANEOUS

- Add version options

- Explore the use of filtering coverage information
        Regex to define packages that are covered
        Regex to define packages that are ignored

- Figure out how to distinguish between unit/coverage and other tests
        How can I turn on coverage for only a subset of the tests discovered?

- Figure out a convenient way to find holes in the coverage test
    What's the difference between an expected hole and an unexpected hole...?

- Set installdir option in configuration:

[defaults]
installpath=<installer will update this line>
.
. Followed by other .INI configuration parameters
.

Then I put a lines in my Inno Installer script that are
something like:

[INI]
;
; Set the paths in progfile.INI to point to where the
; program was installed
;
Filename: "{app}\progfile.ini"; Section: "defaults";
    Key: "installpath";  String: "{app}" (all on 1 line)


COOPR.OPT

- Enable plugins for post-processing

- Fix GLPK error: cannot handle problems without constraints.

- GLPK does not report infeasible (ewm)

- Solution state where you have the best value, but you don't have the
    solution parameters.


COOPR.PYOMO

- Rework Pyomo to use config() for global data management

- Setup tutorial for initialization, validation rules.  We need to verify and
    document the consistency in these functions.

- Get solver results working with Pyomo
    Load solution
    Get solution
    Load results object

- Document the logic in coopr/opt/base/sol.py

- Extend Pyomo script to use a user-defined instance

- Document difference between models and instances: abstract vs. concrete data

- Add a new 'results' value, which defines the command-line used to execute the solver.

- Define and validate the semantics of adding a sequence of tables and data files.  I _think_ that these should augment the definitions in the previous tables.  But does that mean that sets would be extended???

- Support disable/enable constraint semantics
    Is this supported in an instance?

- Add support for adding constraints
    Does this require the generation of a new instance...?

- When printing equality constraints, don't print the dummy upper bound.

- Unsupported division expression

- Enable specification of an empty table 


COOPR.PYSOS

- We need to be able to specify PySoS global parameters/variables in a Pyomo-
like syntax.  This allows for an abstract specification that can be mapped to
concrete data types in the subsystems

- On a related note, we need to specify auxilliary parameter/set info that is
passed into subsystems.  These aren't variables of the global system, but used
to coordinate the indexing of data.

- We need to be able to specify the sheets used in an Excel model.

- The Pysos excel functionality needs to migrate to the use of Coopr's Excel
spreadsheet class to consolidate the Excel functionality used here.

- On a related not, the Excel interface needs to be adapted to accept/return
data formats that are more natural for users: singletons, arrays, 2D arrays.
The format of these will depend on the characteristics of the cell or range
being accessed.

- Extend the Pyomo top-level execution model to enable more direct modification
of the ModelData object passed into Pyomo.

- Make it easy for SoS submodels to share resources (e.g. Excel spreadsheets)

- Need to augment the output to print the information for all variables of
interest in the application.
    What are 'variables of interest' called that aren't directly invovled
    in the optimization?  These aren't state variables...


COOPR.SUCASA

- Setup the SUCASA parser to use the temporary directory for the table 

- The following example is a bug:

    set I within Integers := 1..n;
    param value {I};
    # SUCASA SYMBOL: n capacity value weight

This generates the following output:

  . Processing model information
      WARNING: creating set 'set0' for set string 'I'
      WARNING: superset type unknown for the following symbols, so
        they are interpreted as symbolic literals:
          set0

- Add the following test files to the SUCASA QA suite

http://netlib.sandia.gov/ampl/looping/index.html
http://netlib.sandia.gov/ampl/models/compl/index.html
http://netlib.sandia.gov/ampl/models/index.html
http://netlib.sandia.gov/ampl/tables/index.html
http://www.ampl.com/BOOK/examples.html
http://www.ampl.com/CASES/index.html
http://www.ampl.com/NEW/LOOP1/index.html
http://www.ampl.com/NEW/LOOP2/index.html
http://www.ampl.com/NEW/tables.html

- Extend parser to identify the dimension of a set
