• Language: en

Script Nodes

A PoPy script file is in YAML format, which consists of nested dictionaries that form a tree structure.

Each node of the tree is either:-

  • a dictionary (dict) with sub nodes

  • or a leave node

A leave node has to be one of the script node types listed below.

auto

The word “auto”, indicating a preference for default behaviour.

bool

A boolean: “true”/”yes”/”y”/”1” or “False”/”no”/”n”/”0”

dict

A dictionary of unspecified structure - the user chooses the keys.

Many of the elements of a script file are known as dictionaries (also known as mappings or associative arrays). These are key:value pairs that can be written as follows using curly brackets:-

my_dictionary1: { key1: value1, key2: value2 }

or alternatively using spacing:-

my_dictionary2:
    key1: value1
    key2: value2

Whichever you use is a matter of convenience and space.

dict_record

A dictionary with a pre-determined structure (i.e. key names and corresponding types)

float

Any number

input_file

The path to a file that already exists. (An error occurs if it does not.)

input_file_as_glob

A pattern (e.g. *.csv) that has only a single match. (An error occurs if there are multiple matching filenames.)

input_files_as_glob

A pattern (e.g. "*.csv") that has at least one match. (An error occurs only if there are no matching filenames.)

input_folder

The path to a folder that already exists. (An error occurs if it does not.)

int

An integer (whole number)

list

A list of values of unspecified type.

list_of

A list of one or more strings taken from the list of options in brackets.

list_record

A list

none

The word “none”, indicating a file that does not exist.

one_of

A string, limited to one of the options given in brackets.

one_of_record

One from a selection of dict_records

output_file

The path to a file that may not yet exist (in contrast to input_file).

output_folder

The path to a folder that may not yet exist (in contrast to input_folder).

pseudocode

verbatim sections of the script file accept Python code with extra PoPy syntax added. For example special variable names such as f[X], r[X] etc. We refer to this code as ‘pseudocode’. Pseudocode is automatically translated into runnable Python functions that are executed by PoPy to process your script.

repeat_dict_record

One or more of a selection of dict_records

repeat_verb_record

One or more of a selection of verbatim records

star

The “*” character, shorthand for “all possibilities”.

str

A string.

verbatim

Several blocks in the script file (namely MODEL_PARAMS, STATES, DERIVATIVES and PREDICTIONS) are reserved for pseudocode of a relatively unstructured kind. This is translated into executable code.

Back to Top