Appform

Abstraction layer for questions. Each classe represents different question types, and QuestionBase

class jobbergate.appform.BooleanList(variablename, message, default=None, whentrue=None, whenfalse=None)

Bases: jobbergate.appform.QuestionBase

Gives the use a boolean question, and depending on answer it shows whentrue or whenfalse questions. whentrue and whenfalse are lists with questions. Could contain multiple levels of BooleanLists.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Default value
  • whentrue – List of questions to show if user answers yes/true on this question
  • whentrue – List of questions to show if user answers no/false on this question
class jobbergate.appform.Checkbox(variablename, message, choices, default=None)

Bases: jobbergate.appform.QuestionBase

Gives the user a list to choose multiple entries from.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • choices – List with choices
  • default – Default value(s)
class jobbergate.appform.Confirm(variablename, message, default=None)

Bases: jobbergate.appform.QuestionBase

Asks a question with an boolean answer (true/false).

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Default value
class jobbergate.appform.Const(variablename, default)

Bases: jobbergate.appform.QuestionBase

Sets the variable to the default value. Doesn’t show anything.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Value that variable is set to
class jobbergate.appform.Directory(variablename, message, default=None, exists=None)

Bases: jobbergate.appform.QuestionBase

Asks for a directory name. If exists is True it checks if path exists and is a directory.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Default value
  • exists – Checks if given directory exists
class jobbergate.appform.File(variablename, message, default=None, exists=None)

Bases: jobbergate.appform.QuestionBase

Asks for a file name. If exists is True it checks if path exists and is a directory.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Default value
  • exists – Checks if given file exists
class jobbergate.appform.Integer(variablename, message, minval=None, maxval=None, default=None)

Bases: jobbergate.appform.QuestionBase

Asks for an integer value. Could have min and/or max constrains.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • minval – Minumum value
  • maxval – Maximum value
  • default – Default value
class jobbergate.appform.List(variablename, message, choices, default=None)

Bases: jobbergate.appform.QuestionBase

Gives the user a list to choose one from.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • choices – List with choices
  • default – Default value
class jobbergate.appform.QuestionBase(variablename, message, default)

Bases: object

Baseclass for questions. All questions have variablename, message and an optional default.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Default value
class jobbergate.appform.Text(variablename, message, default=None)

Bases: jobbergate.appform.QuestionBase

Asks for a text value.

Parameters:
  • variablename – The variable name to set
  • message – Message to show
  • default – Default value
jobbergate.appform.workflow(func=None, *, name=None)

A decorator for workflows. Adds an workflow question and all questions added in the decorated question is asked after selecting workflow.

Parameters:name – (optional) Descriptional name that is shown when choosing workflow

Add a workflow named debug:

@workflow
def debug(data):
    return [appform.File("debugfile", "Name of debug file")]

Add a workflow with longer name:

@workflow(name="Secondary Eigen step")
def 2ndstep(data):
    return [appform.Text("eigendata", "Definition of eigendata")]