====Python (Method)==== The **python** method is a [[style|function method]] that launches a Python script in response to an API request and returns any information that the script writes to the console. ===Additional Info.json Parameters=== This method requires a **path** parameter - this is the path to the Python script. This path can include [[substitutions|substitutions]]. ===Captured Output=== To allow for diagnostic and debugging messages, the output returned to the user is split by separators. By default, this is a set of four minus-signs ('----'). If these separators are present in the output of your program, only the text after the **last separator** will be sent. So in the following output... Hello World Sending Query.... Running Analytics... ---- Time, Value 10:00:00,10 10:00:10,11 10:00:20,12 ...only the lower half (from 'Time,Value') would actually be sent to the user. If there are no separators found, the system returns the full output of your script. ===How It Works=== For this method, the user-provided parameters are converted into a JSON file. The full path of this file is then sent as the first parameter of your script. For example, the following info.json file... { "name": "Testing", "method": "python", "path": "[ROOT]/myscript.py", "parameters": [{ "name": "Message", "type": "string", "tag": "msg", "default": "Hello World" }]. "folder": "Testing" } ...would result in the following steps if it was called with the default parameter values. ===Building the Input File=== The following file would be created and saved to a temporary file at **mytempfile.json** (this is a simplified file name for ease-of-reading). { "msg": "Hello World" } ===Calling the Function=== The python code would then be run with the following command... python c:\ARDI\web\sites\default\functions\testing.py mytempfile.json ===Capturing Output=== The output of the function would then be captured and sent to the user. In more advanced scenarios, some [[style scripts]] might also be run to help translate the output between formats such as JSON to XML.