# Wrapper ## Modules The Python Wrapper contains of 5 modules: `EcWrapperPython.py` : ### *class* CEcWrapperPython
EC-Wrapper base class
### *class* CEcMasterPython
EC-Master
### *class* CEcMasterRasServerPython
RAS Server for EC-Master
### *class* CEcMasterMbxGatewayClientPython
Mailbox Gateway Client for EC-Master
### *class* CEcMasterMbxGatewayServerPython
Mailbox Gateway Server for EC-Master
### *class* CEcSimulatorPython
EC-Simulator
### *class* CEcSimulatorRasServerPython
RAS Server for EC-Simulator
### *class* CEcRasClientPython
RAS Client for EC-Master / EC-Simulator `EcMotionPython.py` : ### *class* CEcMotionPython
EC-Motion interface `EcWrapperPythonTypes.py` : Python types `EcWrapper.py` : CPython interface (internal) `EcWrapperTypes.py` : CPython types (internal) ## Return code vs. exception handling The most of all API functions returns a return code for error handling. This behaviour can be changed to throw an exception in error case by simply setting: ```python CEcWrapperPython.EnableExceptionHandling = True # default is False ``` ## API with “out” or “ref” parameters The Python Wrapper API is based on C# code. C# supports `out` and `ref` keywords for parameters. This is not supported in Python and is solved by simply submitting `CEcWrapperPythonOutParam` or `CEcWrapperPythonRefParam` to those functions: ```python # This function has an "out" parameter "out_oSbStatus" def GetScanBusStatus(self, out_oSbStatus): # ... return # Create "out" parameter out_oStatus = CEcWrapperPythonOutParam() # Call function pythonWrapper.GetScanBusStatus(out_oStatus) # Get the "out" parameter value oStatus = out_oStatus.value # Now, the "oStatus" object can be used print(oStatus.dwResultCode) ```