Source code for tecplot.data.aux_data

from ..tecutil import _tecutil, log_setattr
from .. import layout
from ..tecutil import util

@log_setattr
[docs]class AuxData(object): def __init__(self, frame): self.frame = frame with frame.activated(): self.handle = _tecutil.AuxDataFrameGetRef()
[docs] def item(self, i): """item by number""" return util.AuxDataGetItemByNumber(self.handle, i+1)
def __getitem__(self, key): return util.AuxDataGetItemByName(self.handle, key) def __len__(self): return _tecutil.AuxDataGetNumItems(self.handle)
@property def aux_data(frame): """Returns the auxiliary data object. :type: `data.AuxData` This is a generic container for arbitrary data attached to this `Frame`. See `AuxData` for more details. """ return AuxData(frame) layout.Frame.aux_data = aux_data def AuxDataGetItemByNumber(self, auxdata, number): _ctype = {AuxDataType.String: c_char_p} name = c_char_p() val = c_void_p() valtype = c_int() retain = c_bool() _tecutil.handle.tecUtilAuxDataGetItemByIndex(auxdata, number, byref(name), byref(val), byref(valtype), byref(retain)) name = name.value.decode() result = ctypes.cast(val, _ctype[AuxDataType(valtype.value)]) if isinstance(result, c_char_p): result = result.value.decode() else: result = result.value return name, result def AuxDataGetItemByName(self, auxdata, name): _ctype = {AuxDataType.String : c_char_p} val = c_void_p() valtype = c_int() retain = c_bool() success = _tecutil.handle.tecUtilAuxDataGetItemByName(auxdata, name.encode(), byref(val), byref(valtype), byref(retain)) if not success: raise KeyError result = ctypes.cast(val, _ctype[AuxDataType(valtype.value)]) if isinstance(result, c_char_p): result = result.value.decode() return result