Difference between revisions of "EXECPYTHON()"

From Lianjapedia
Jump to: navigation, search
(Syntax)
(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
 +
 +
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"
  
 
==Example==
 
==Example==

Revision as of 22:10, 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

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.

  1. filename.py

import neededmodules

  1. extract arguments specified on execPython()

arg1 = sys.argv[0] arg2 = sys.argv[1]

  1. execute your code
  1. now return a value

returnvalue = "Ok"

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)