Commands#

Console command-line interface#

The package provides the ifi command for console usage (the mnemonic is IDAES Flowsheet Inspector). Use ifi --help to see the top-level command list.

Global options:

--json/-J   Where appropriate, show JSON output instead 
            of plain text output. Useful for interfacing
            with scripts and other automated processes.

Subcommands#

  • ifi db migrate: usage: IDAES Flowsheet Inspector db migrate [-h] [–file FILE]

    Migrate to latest database version
    --file, -f FILE  Database file (instead of default)
    
  • ifi db info: usage: IDAES Flowsheet Inspector db info [-h] [–file FILE]

    Show current database information
    --file, -f FILE  Database file (instead of default)
    
  • ifi flowsheet run: usage: IDAES Flowsheet Inspector flowsheet run [-h] [–file FILE]

    Run flowsheet
    --file, -f FILE       Flowsheet Python file
    --module, -m MODULE   Flowsheet Python module name
    --name, -n NAME       Flowsheet variable name
    --last-step, -l LAST_STEP
    Flowsheet step at which to stop the run
    --no-db               Do not use the report database
    
  • ifi flowsheet steps: usage: IDAES Flowsheet Inspector flowsheet steps [-h] [–file FILE]

    Get defined steps for flowsheet(s)
    --file, -f FILE      Flowsheet Python file
    --module, -m MODULE  Flowsheet Python module name
    

Programmatic usage#

Each sub-command available through the ifi command can also be found in the idaes_fi.commands module, where the name of the function is simply the subcommand and sub-subcommand name separated by an underscore. For example: ifi db migrate → idaes_fi.commands.db_migrate().

Python interpreter usage#

Finally, to run the commands using the Python interpreter’s -c option, which avoids having to invoke the ifi command through the shell, you can import the module and use the functions directly.

Note that formatting of the output is done by the CLI wrapper, so this may need to be recreated. For example, to print out DB info as JSON you can run: python -c "import json; from idaes_fi.commands import *; print(json.dumps(db_info(), cls=PathJSONEncoder))". The PathJSONEncoder class is defined in the commands module in order to handle Python’s pathlib.Path objects.