PHXScriptWrapperObject
Last update: 22.06.2026@PHXClassDecorator(PHXTException_Decorator)
class PHXScriptWrapperObject
This object is passed to scriptWrapper scripts and provides the "wrapper" global object which provides runtime services for the wrapper.
def __init__(self, varName)
@param varName: the name of the variable already declared in the wrapper to reference@type varName: string@rtype: void
varName = checkIsInstance(varName, str)
self.mcName = varName
def addMethod(self, methodName, fullName='', downloadInputs=False)
Publicizes a method to our clients.
@param methodName: The name of the method to publicize.@type methodName: string@param fullName: A human readable name to show in GUI programs for this method. For example, ModelCenter will show this in the right-click menu of a component.@type fullName: string@param downloadInputs: Hint passed to the client on whether the inputs should be downloaded after the method is run.@type downloadInputs: boolean@rtype: void
methodName = checkIsInstance(methodName, str)
fullName = checkIsInstance(fullName, str)
downloadInputs = checkIsInstance(downloadInputs, bool)
if fullName == '':
fullName = methodName
phxPython.wrapperAddMethod(methodName, fullName, downloadInputs)
def addVariable(self, varName, varType, isInput)
Adds a variable to this component. Returns a reference to the new variable. Valid types are: boolean, double, long, string, file.
All types except file may be made into arrays by adding [] at the end of the type string.
@param varName: The full name of the new variable. May include group specification with '.'.@type varName: string@param varType: The type of variable to create. Use the same type strings as for the variable`: statemensts at the top of the ScriptWrapper.@type varType: string@param isInput: If true, the variable will be an input, if false, it will be an output.@type isInput: boolean@rtype: PHXSimpleType
varName = checkIsInstance(varName, str)
varType = checkIsInstance(varType, str)
isInput = checkIsInstance(isInput, bool)
phxPython.wrapperAddVariable(varName, varType, isInput)
return self.getVariable(varName)
def getDirectory(self)
Returns the directory where this component was loaded from.
@rtype: string
return phxPython.wrapperGetDirectory()
def getRunDirectory(self)
Returns the current "run" directory, which is the same as getDirectory() unless run sharing is being used.
@rtype: string
return phxPython.wrapperGetRunDirectory()
def getRunShare(self)
Returns the PHXRunShareContext object used for process control and monitoring with this component.
@rtype:PHXRunShareContext
return PHXRunShareContext()
def getVariable(self, varName)
Returns a reference to the named variable.
@param varName: The full name of the variable to retrieve. May include group specification with '.'.@type varName: string@rtype:PHXSimpleType
varName = checkIsInstance(varName, str)
varName = str(varName)
className = self.__getVarType(varName)
if className == 'boolean':
return PHXBoolean(varName)
elif className == 'boolean[]':
return PHXBooleanArray(varName)
elif className == 'double':
return PHXDouble(varName)
elif className == 'double[]':
return PHXDoubleArray(varName)
elif className == 'long':
return PHXLong(varName)
elif className == 'long[]':
return PHXLongArray(varName)
elif className == 'file':
return PHXRawFile(varName)
elif className == 'file[]':
return PHXRawFileArray(varName)
elif className == 'string':
return PHXString(varName)
elif className == 'string[]':
return PHXStringArray(varName)
elif className == 'object':
return PHXScriptObject(varName)
return PHXSimpleType(varName)
def removeVariable(self, varName)
Dynamically removes a variable from this component
@param varName: The full name of the variable to remove. May include group specification with '.'.@type varName: string@rtype: void
varName = checkIsInstance(varName, str)
phxPython.wrapperRemoveVariable(varName)
def sleep(self, milliSeconds)
sleeps for a period of time
@param milliSeconds: the amount of time to sleep (in milliseconds).@type milliSeconds: long@rtype: void
milliSeconds = checkIsInstance(milliSeconds, int)
phxPython.wrapperSleep(milliSeconds)
def __getVarType(self, varName)
varName = checkIsInstance(varName, str)
return phxPython.wrapperGetVarType(str(varName))
def getDictionary(self)
dictionary = {}
key = ""
value = ""
numKeys = phxPython.wrapperGetDictNumEntries()
for i in range(numKeys)
key = phxPython.wrapperGetDictKey(i)
value = phxPython.wrapperGetDictValue(i)
dictionary[key] = value
return dictionary