Data Exchange

Data exchange is done using exported optiSLang built-in types, lists, and dictionaries.

The following types are essential for implementing the data exchange between optiSLang and the node:

  • HidSpecificInputData: An aggregate of various input data which may differ for each Hierarchical ID (HID).

  • HidSpecificOutputDataMop: An aggregate of various output data which may differ for each HID.

  • RunStatus: An object for documenting success and logging.

The following tables describe the standardized data structures of important objects transferred to several of the plugin functions where they are received in a structure of arguments.

Table 15: Common Incoming Key Word Arguments (KWARGs)

NameTypeDescription
project_working_directoryStringPath of the project's working directory.
modifying_settingPython object

User interface editable settings that require a node reset if changed.

non_modifying_settingsPython object

User interface editable settings that do not require a node reset if changed.

propertiesDictionaryProperties of the node (for example, read_mode).
node_nameStringThe current node's name.
osl_variablesDictionaryDictionary of optiSLang variables. Does not vary per HID.
reference_fileString

Optional: Path to the reference file.

Only available if FileBased is not set to false in the configuration file.

reference_file_is_relative_to_working_directory

Bool

Optional: Whether or not the path to reference file is relative to the working directory.

Only available if FileBased is not set to false in the configuration file.


Table 16: Additional Incoming KWARGs for the Execute Function

NameTypeDescription
input_containerList of HidSpecificInputDataAggregate of arguments per HID.
awaited_mdb_filenameStringThe expected filename of the generated MOP mdb file.

Table 17: optiSLang Variables That Do Not Vary Per HID

NameTypeDescription
OSL_PROJECT_DIRStringAbsolute path of the current project (*opd).
OSL_NODE_NAMEStringName of the current node.
OSL_RLS_VERStringThe version number of optiSLang.
OSL_RLS_REVStringThe revision number of optiSLang.
OSL_RLS_FLGStringA version suffix which is normally empty unless a specific build is set.

Table 18: optiSLang Variables that Vary Per HID in Execute Function

NameTypeDescription
OSL_DESIGN_NOStringDesign number.
OSL_DESIGN_NAMEStringDesign directory name (for example, Design_0001).
OSL_DESIGN_DIRStringAbsolute path of the current design directory.

Table 19: HidSpecificInputData Attributes

NameTypeDescription
hidHIDHierarchical ID of a design variation, for example, [0.99.4].
hierarchyDictionaryThe node's position within the surrounding systems.
input_slot_valuesDictionaryThe values of the input slots.
osl_variablesDictionaryDictionary of optiSLang variables that vary per HID.
working_directoryStringThe nodes working directory.
reference_fileString

Optional: Path to the reference file.

Only available if FileBased is not set to false in the configuration file.

reference_file_is_relative_to_working_directoryBool

Optional: Whether or not the path to reference file is relative to the working directory.

Only available if FileBased is not set to falsein the configuration file.


Table 20: HidSpecificOutputDataMop Attributes

NameTypeDescription
hidHIDHierarchical ID of a design variation, for example, [0.99.4].
output_slot_valuesDictionaryA dictionary of name-value pairs that should be written to the output slots specified in the configuration file.
statusRunStatusAn object for documenting success and logging.
resulting_parameter_managerPyParameterManagerAn object for storing and handling parameters.