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

RunPythonScript v1

Summary

Executes a snippet of Python code

Properties

Name

Direction

Type

Default

Description

InputWorkspace

Input

Workspace

An input workspace that the python code will modify.The workspace will be in the python variable named ‘input’.

Code

Input

string

Python code (can be on multiple lines).

Filename

Input

string

A File containing a python script. Allowed values: [‘py’]

OutputWorkspace

Output

Workspace

An output workspace to be produced by the python code.The workspace will be in the python variable named ‘output’.

Description

Algorithm that will run a snippet of python code. This is meant to be used by LoadLiveData v1 to perform some processing.

The input & output workspaces can be accessed from the Python code using the variable names input and output respectively.

Within your code input is an actual reference to the input workspace, while output is a string of the output workspace name. You are expected to create the output workspace yourself.

Because of boilerplate code added to the python script being run, stack-traces for errors will be five (5) lines greater than where the error occurred in the supplied python code.

Usage

Example - Summing all the counts in a workspace

ws = CreateSampleWorkspace("Histogram","Multiple Peaks")

script = """
from mantid.simpleapi import Integration, SumSpectra, logger
logger.notice('Logging from within the python script!')
wsOut = Integration(input,OutputWorkspace=output)
wsOut = SumSpectra(wsOut)
"""

RunPythonScript(InputWorkspace=ws,Code=script,OutputWorkspace="wsOut")

wsOut = mtd["wsOut"]
print("The workspace contained a total of {:d} counts".format(int(wsOut.readY(0)[0])))

Output:

The workspace contained a total of 9599 counts

The same script could be saved to a file and specified using the Filename property instead of the Code property.

Categories: AlgorithmIndex | DataHandling\LiveData\Support

Source

C++ header: RunPythonScript.h

C++ source: RunPythonScript.cpp