Difference between revisions of "EXECPYTHON()"

From Lianjapedia
Jump to: navigation, search
(Description)
(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

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)