Difference between revisions of "EXECPYTHON()"
Barrymavin (Talk | contribs) (→Description) |
Barrymavin (Talk | contribs) (→Description) |
||
Line 10: | Line 10: | ||
==Description== | ==Description== | ||
The EXECPYTHON() function runs Python code. The lines of code are contained in <expC>, which can be a text constant, a filename, a character variable, or a character or memo field. The EXECPYTHON() function can handle blocks of code. Individual lines of code must be separated by a CHR(13) carriage return character. If a filename.py is specified it is loaded and executed. Inside the .py file, to return a value assign a result to '''returnvalue | The EXECPYTHON() function runs Python code. The lines of code are contained in <expC>, which can be a text constant, a filename, a character variable, or a character or memo field. The EXECPYTHON() function can handle blocks of code. Individual lines of code must be separated by a CHR(13) carriage return character. If a filename.py is specified it is loaded and executed. Inside the .py file, to return a value assign a result to '''returnvalue | ||
+ | |||
+ | To preload custom python libraries at startup place your python library in the thirdpartylibs directory e.g. | ||
+ | |||
+ | thirdpartylibs\yourpylib\yourpylib.py | ||
+ | |||
+ | Once your python libraries are loaded you can then call functions directory. | ||
+ | |||
+ | <code lang="recital"> | ||
+ | result = execPython("myPyFunc('arg1','arg2','arg3')") | ||
+ | </code> | ||
Note that if a filename.py is specified and a list of arguments are specified as <expr>... sys.argv in python is an array of arguments. This provides a consistent way to incorporate python functions in your LianjaScript code. | Note that if a filename.py is specified and a list of arguments are specified as <expr>... sys.argv in python is an array of arguments. This provides a consistent way to incorporate python functions in your LianjaScript code. |
Revision as of 22:32, 22 April 2023
Contents
Purpose
Function to run Python code
Syntax
EXECPYTHON(<expC> [,<expr>...])
See Also
COMPILE, EXEC(), EXECJAVASCRIPT(), EXECPHP(), EXECSCRIPT(), Python Server Pages
Description
The EXECPYTHON() function runs Python code. The lines of code are contained in <expC>, which can be a text constant, a filename, a character variable, or a character or memo field. The EXECPYTHON() function can handle blocks of code. Individual lines of code must be separated by a CHR(13) carriage return character. If a filename.py is specified it is loaded and executed. Inside the .py file, to return a value assign a result to returnvalue
To preload custom python libraries at startup place your python library in the thirdpartylibs directory e.g.
thirdpartylibs\yourpylib\yourpylib.py
Once your python libraries are loaded you can then call functions directory.
result = execPython("myPyFunc('arg1','arg2','arg3')")
Note that if a filename.py is specified and a list of arguments are specified as <expr>... sys.argv in python is an array of arguments. This provides a consistent way to incorporate python functions in your LianjaScript code.
e.g.
#filename.py import neededmodules # extract arguments specified on execPython() arg1 = sys.argv[0] arg2 = sys.argv[1] # execute your code # now return a value returnvalue = "Ok"
Arguments can also be specified together with the filename e.g.
result = execPython("filename.py?'arg1','arg2','arg3'")
Example
// Character field create table if not exists scripts (script char(200)) if not used("scripts") use scripts endif select scripts append blank replace script with 'for i in range(9):' + CHR(13)+ '# process commands' + CHR(13) execpython(script) // Text constant execpython('for i in range(9):' + CHR(13) + '# process commands' + CHR(13)) // Memory variable m_script = 'for i in range(9):' + CHR(13) + '# process commands' + CHR(13) execpython(m_script)