\(\renewcommand\AA{\unicode{x212B}}\)

Basic Properties

To be of any use our algorithm should be able to accept input and give back output. This is achieved through declaring named properties that are set by the user and/or the algorithm itself.

The inputs/outputs for the algorithm are specified in the PyInit section using a method called declareProperty that is defined on the PythonAlgorithm super class.

Basic type properties such as numbers, booleans and strings are declared using declareProperty and a default value, e.g.

def PyInit(self):
    self.declareProperty('InputValue', -1)

This will create an int input property called InputValue with a default value of -1.

A property is an input by default. To change this, use the direction keyword within declareProperty call:

from mantid.kernel import Direction

...

def PyInit(self):
    # input direction specified explicitly
    self.declareProperty('InputValue', -1, direction=Direction.Input)
    # output direction specified explicitly
    self.declareProperty('OutputValue', -1, direction=Direction.Output)

Documentation can be provided using the doc keyword. This sets the text in the tooltip on the GUI:

def PyInit(self):
    self.declareProperty('InputValue', -1, direction=Direction.Input,
                         doc="A input value for this algorithm. Extra details.")

Everything until the first “.” of the docstring will appear in the automated GUI as the mouseover help. The full docstring will appear in the algorithm documentation.