<reponame>vcellmike/Biosimulators_VCell<filename>pythonScripts/VCell_VTK/pyvcell/ttypes.py<gh_stars>10-100
#
# Autogenerated by Thrift Compiler (0.10.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py
#

from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
from thrift.protocol.TProtocol import TProtocolException
import sys

from thrift.transport import TTransport


class DomainType(object):
    VOLUME = 0
    MEMBRANE = 1

    _VALUES_TO_NAMES = {
        0: "VOLUME",
        1: "MEMBRANE",
    }

    _NAMES_TO_VALUES = {
        "VOLUME": 0,
        "MEMBRANE": 1,
    }


class DataType(object):
    CELLDATA = 0
    POINTDATA = 1

    _VALUES_TO_NAMES = {
        0: "CELLDATA",
        1: "POINTDATA",
    }

    _NAMES_TO_VALUES = {
        "CELLDATA": 0,
        "POINTDATA": 1,
    }


class VariableInfo(object):
    """
    Attributes:
     - variableVtuName
     - variableDisplayName
     - domainName
     - variableDomainType
     - unitsLabel
     - isMeshVar
     - expressionString
     - dataType
    """

    thrift_spec = (
        None,  # 0
        (1, TType.STRING, 'variableVtuName', 'UTF8', None, ),  # 1
        (2, TType.STRING, 'variableDisplayName', 'UTF8', None, ),  # 2
        (3, TType.STRING, 'domainName', 'UTF8', None, ),  # 3
        (4, TType.I32, 'variableDomainType', None, None, ),  # 4
        (5, TType.STRING, 'unitsLabel', 'UTF8', None, ),  # 5
        (6, TType.BOOL, 'isMeshVar', None, None, ),  # 6
        (7, TType.STRING, 'expressionString', 'UTF8', None, ),  # 7
        (8, TType.I32, 'dataType', None, None, ),  # 8
    )

    def __init__(self, variableVtuName=None, variableDisplayName=None, domainName=None, variableDomainType=None, unitsLabel=None, isMeshVar=None, expressionString=None, dataType=None,):
        self.variableVtuName = variableVtuName
        self.variableDisplayName = variableDisplayName
        self.domainName = domainName
        self.variableDomainType = variableDomainType
        self.unitsLabel = unitsLabel
        self.isMeshVar = isMeshVar
        self.expressionString = expressionString
        self.dataType = dataType

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.STRING:
                    self.variableVtuName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.variableDisplayName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.domainName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.I32:
                    self.variableDomainType = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.STRING:
                    self.unitsLabel = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.BOOL:
                    self.isMeshVar = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.STRING:
                    self.expressionString = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.I32:
                    self.dataType = iprot.readI32()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('VariableInfo')
        if self.variableVtuName is not None:
            oprot.writeFieldBegin('variableVtuName', TType.STRING, 1)
            oprot.writeString(self.variableVtuName.encode('utf-8') if sys.version_info[0] == 2 else self.variableVtuName)
            oprot.writeFieldEnd()
        if self.variableDisplayName is not None:
            oprot.writeFieldBegin('variableDisplayName', TType.STRING, 2)
            oprot.writeString(self.variableDisplayName.encode('utf-8') if sys.version_info[0] == 2 else self.variableDisplayName)
            oprot.writeFieldEnd()
        if self.domainName is not None:
            oprot.writeFieldBegin('domainName', TType.STRING, 3)
            oprot.writeString(self.domainName.encode('utf-8') if sys.version_info[0] == 2 else self.domainName)
            oprot.writeFieldEnd()
        if self.variableDomainType is not None:
            oprot.writeFieldBegin('variableDomainType', TType.I32, 4)
            oprot.writeI32(self.variableDomainType)
            oprot.writeFieldEnd()
        if self.unitsLabel is not None:
            oprot.writeFieldBegin('unitsLabel', TType.STRING, 5)
            oprot.writeString(self.unitsLabel.encode('utf-8') if sys.version_info[0] == 2 else self.unitsLabel)
            oprot.writeFieldEnd()
        if self.isMeshVar is not None:
            oprot.writeFieldBegin('isMeshVar', TType.BOOL, 6)
            oprot.writeBool(self.isMeshVar)
            oprot.writeFieldEnd()
        if self.expressionString is not None:
            oprot.writeFieldBegin('expressionString', TType.STRING, 7)
            oprot.writeString(self.expressionString.encode('utf-8') if sys.version_info[0] == 2 else self.expressionString)
            oprot.writeFieldEnd()
        if self.dataType is not None:
            oprot.writeFieldBegin('dataType', TType.I32, 8)
            oprot.writeI32(self.dataType)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.variableVtuName is None:
            raise TProtocolException(message='Required field variableVtuName is unset!')
        if self.variableDisplayName is None:
            raise TProtocolException(message='Required field variableDisplayName is unset!')
        if self.domainName is None:
            raise TProtocolException(message='Required field domainName is unset!')
        if self.variableDomainType is None:
            raise TProtocolException(message='Required field variableDomainType is unset!')
        if self.unitsLabel is None:
            raise TProtocolException(message='Required field unitsLabel is unset!')
        if self.isMeshVar is None:
            raise TProtocolException(message='Required field isMeshVar is unset!')
        if self.dataType is None:
            raise TProtocolException(message='Required field dataType is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class SimulationDataSetRef(object):
    """
    Attributes:
     - simId
     - simName
     - modelId
     - username
     - userkey
     - jobIndex
     - isMathModel
     - simulationContextName
     - modelName
     - originXYZ
     - extentXYZ
     - isTimeVaryingMesh
     - isLocal
    """

    thrift_spec = (
        None,  # 0
        (1, TType.STRING, 'simId', 'UTF8', None, ),  # 1
        (2, TType.STRING, 'simName', 'UTF8', None, ),  # 2
        (3, TType.STRING, 'modelId', 'UTF8', None, ),  # 3
        (4, TType.STRING, 'username', '<PASSWORD>', None, ),  # 4
        (5, TType.STRING, 'userkey', 'UTF8', None, ),  # 5
        (6, TType.I32, 'jobIndex', None, None, ),  # 6
        (7, TType.BOOL, 'isMathModel', None, None, ),  # 7
        (8, TType.STRING, 'simulationContextName', 'UTF8', None, ),  # 8
        (9, TType.STRING, 'modelName', 'UTF8', None, ),  # 9
        (10, TType.LIST, 'originXYZ', (TType.DOUBLE, None, False), None, ),  # 10
        (11, TType.LIST, 'extentXYZ', (TType.DOUBLE, None, False), None, ),  # 11
        (12, TType.BOOL, 'isTimeVaryingMesh', None, None, ),  # 12
        (13, TType.BOOL, 'isLocal', None, None, ),  # 13
    )

    def __init__(self, simId=None, simName=None, modelId=None, username=None, userkey=None, jobIndex=None, isMathModel=None, simulationContextName=None, modelName=None, originXYZ=None, extentXYZ=None, isTimeVaryingMesh=None, isLocal=None,):
        self.simId = simId
        self.simName = simName
        self.modelId = modelId
        self.username = username
        self.userkey = userkey
        self.jobIndex = jobIndex
        self.isMathModel = isMathModel
        self.simulationContextName = simulationContextName
        self.modelName = modelName
        self.originXYZ = originXYZ
        self.extentXYZ = extentXYZ
        self.isTimeVaryingMesh = isTimeVaryingMesh
        self.isLocal = isLocal

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.STRING:
                    self.simId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.simName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.modelId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.STRING:
                    self.username = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.STRING:
                    self.userkey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.I32:
                    self.jobIndex = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.BOOL:
                    self.isMathModel = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.STRING:
                    self.simulationContextName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 9:
                if ftype == TType.STRING:
                    self.modelName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 10:
                if ftype == TType.LIST:
                    self.originXYZ = []
                    (_etype3, _size0) = iprot.readListBegin()
                    for _i4 in range(_size0):
                        _elem5 = iprot.readDouble()
                        self.originXYZ.append(_elem5)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 11:
                if ftype == TType.LIST:
                    self.extentXYZ = []
                    (_etype9, _size6) = iprot.readListBegin()
                    for _i10 in range(_size6):
                        _elem11 = iprot.readDouble()
                        self.extentXYZ.append(_elem11)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 12:
                if ftype == TType.BOOL:
                    self.isTimeVaryingMesh = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 13:
                if ftype == TType.BOOL:
                    self.isLocal = iprot.readBool()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('SimulationDataSetRef')
        if self.simId is not None:
            oprot.writeFieldBegin('simId', TType.STRING, 1)
            oprot.writeString(self.simId.encode('utf-8') if sys.version_info[0] == 2 else self.simId)
            oprot.writeFieldEnd()
        if self.simName is not None:
            oprot.writeFieldBegin('simName', TType.STRING, 2)
            oprot.writeString(self.simName.encode('utf-8') if sys.version_info[0] == 2 else self.simName)
            oprot.writeFieldEnd()
        if self.modelId is not None:
            oprot.writeFieldBegin('modelId', TType.STRING, 3)
            oprot.writeString(self.modelId.encode('utf-8') if sys.version_info[0] == 2 else self.modelId)
            oprot.writeFieldEnd()
        if self.username is not None:
            oprot.writeFieldBegin('username', TType.STRING, 4)
            oprot.writeString(self.username.encode('utf-8') if sys.version_info[0] == 2 else self.username)
            oprot.writeFieldEnd()
        if self.userkey is not None:
            oprot.writeFieldBegin('userkey', TType.STRING, 5)
            oprot.writeString(self.userkey.encode('utf-8') if sys.version_info[0] == 2 else self.userkey)
            oprot.writeFieldEnd()
        if self.jobIndex is not None:
            oprot.writeFieldBegin('jobIndex', TType.I32, 6)
            oprot.writeI32(self.jobIndex)
            oprot.writeFieldEnd()
        if self.isMathModel is not None:
            oprot.writeFieldBegin('isMathModel', TType.BOOL, 7)
            oprot.writeBool(self.isMathModel)
            oprot.writeFieldEnd()
        if self.simulationContextName is not None:
            oprot.writeFieldBegin('simulationContextName', TType.STRING, 8)
            oprot.writeString(self.simulationContextName.encode('utf-8') if sys.version_info[0] == 2 else self.simulationContextName)
            oprot.writeFieldEnd()
        if self.modelName is not None:
            oprot.writeFieldBegin('modelName', TType.STRING, 9)
            oprot.writeString(self.modelName.encode('utf-8') if sys.version_info[0] == 2 else self.modelName)
            oprot.writeFieldEnd()
        if self.originXYZ is not None:
            oprot.writeFieldBegin('originXYZ', TType.LIST, 10)
            oprot.writeListBegin(TType.DOUBLE, len(self.originXYZ))
            for iter12 in self.originXYZ:
                oprot.writeDouble(iter12)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.extentXYZ is not None:
            oprot.writeFieldBegin('extentXYZ', TType.LIST, 11)
            oprot.writeListBegin(TType.DOUBLE, len(self.extentXYZ))
            for iter13 in self.extentXYZ:
                oprot.writeDouble(iter13)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.isTimeVaryingMesh is not None:
            oprot.writeFieldBegin('isTimeVaryingMesh', TType.BOOL, 12)
            oprot.writeBool(self.isTimeVaryingMesh)
            oprot.writeFieldEnd()
        if self.isLocal is not None:
            oprot.writeFieldBegin('isLocal', TType.BOOL, 13)
            oprot.writeBool(self.isLocal)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.simId is None:
            raise TProtocolException(message='Required field simId is unset!')
        if self.simName is None:
            raise TProtocolException(message='Required field simName is unset!')
        if self.modelId is None:
            raise TProtocolException(message='Required field modelId is unset!')
        if self.username is None:
            raise TProtocolException(message='Required field username is unset!')
        if self.userkey is None:
            raise TProtocolException(message='Required field userkey is unset!')
        if self.jobIndex is None:
            raise TProtocolException(message='Required field jobIndex is unset!')
        if self.isMathModel is None:
            raise TProtocolException(message='Required field isMathModel is unset!')
        if self.modelName is None:
            raise TProtocolException(message='Required field modelName is unset!')
        if self.originXYZ is None:
            raise TProtocolException(message='Required field originXYZ is unset!')
        if self.extentXYZ is None:
            raise TProtocolException(message='Required field extentXYZ is unset!')
        if self.isTimeVaryingMesh is None:
            raise TProtocolException(message='Required field isTimeVaryingMesh is unset!')
        if self.isLocal is None:
            raise TProtocolException(message='Required field isLocal is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class PlotData(object):
    """
    Attributes:
     - timePoints
     - data
    """

    thrift_spec = (
        None,  # 0
        (1, TType.LIST, 'timePoints', (TType.DOUBLE, None, False), None, ),  # 1
        (2, TType.LIST, 'data', (TType.DOUBLE, None, False), None, ),  # 2
    )

    def __init__(self, timePoints=None, data=None,):
        self.timePoints = timePoints
        self.data = data

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.LIST:
                    self.timePoints = []
                    (_etype17, _size14) = iprot.readListBegin()
                    for _i18 in range(_size14):
                        _elem19 = iprot.readDouble()
                        self.timePoints.append(_elem19)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.LIST:
                    self.data = []
                    (_etype23, _size20) = iprot.readListBegin()
                    for _i24 in range(_size20):
                        _elem25 = iprot.readDouble()
                        self.data.append(_elem25)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('PlotData')
        if self.timePoints is not None:
            oprot.writeFieldBegin('timePoints', TType.LIST, 1)
            oprot.writeListBegin(TType.DOUBLE, len(self.timePoints))
            for iter26 in self.timePoints:
                oprot.writeDouble(iter26)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.data is not None:
            oprot.writeFieldBegin('data', TType.LIST, 2)
            oprot.writeListBegin(TType.DOUBLE, len(self.data))
            for iter27 in self.data:
                oprot.writeDouble(iter27)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.timePoints is None:
            raise TProtocolException(message='Required field timePoints is unset!')
        if self.data is None:
            raise TProtocolException(message='Required field data is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class PostProcessingData(object):
    """
    Attributes:
     - variableList
     - plotData
    """

    thrift_spec = (
        None,  # 0
        (1, TType.LIST, 'variableList', (TType.STRUCT, (VariableInfo, VariableInfo.thrift_spec), False), None, ),  # 1
        (2, TType.LIST, 'plotData', (TType.STRUCT, (PlotData, PlotData.thrift_spec), False), None, ),  # 2
    )

    def __init__(self, variableList=None, plotData=None,):
        self.variableList = variableList
        self.plotData = plotData

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.LIST:
                    self.variableList = []
                    (_etype31, _size28) = iprot.readListBegin()
                    for _i32 in range(_size28):
                        _elem33 = VariableInfo()
                        _elem33.read(iprot)
                        self.variableList.append(_elem33)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.LIST:
                    self.plotData = []
                    (_etype37, _size34) = iprot.readListBegin()
                    for _i38 in range(_size34):
                        _elem39 = PlotData()
                        _elem39.read(iprot)
                        self.plotData.append(_elem39)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('PostProcessingData')
        if self.variableList is not None:
            oprot.writeFieldBegin('variableList', TType.LIST, 1)
            oprot.writeListBegin(TType.STRUCT, len(self.variableList))
            for iter40 in self.variableList:
                iter40.write(oprot)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.plotData is not None:
            oprot.writeFieldBegin('plotData', TType.LIST, 2)
            oprot.writeListBegin(TType.STRUCT, len(self.plotData))
            for iter41 in self.plotData:
                iter41.write(oprot)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.variableList is None:
            raise TProtocolException(message='Required field variableList is unset!')
        if self.plotData is None:
            raise TProtocolException(message='Required field plotData is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class ThriftDataAccessException(TException):
    """
    Attributes:
     - message
    """

    thrift_spec = (
        None,  # 0
        (1, TType.STRING, 'message', 'UTF8', None, ),  # 1
    )

    def __init__(self, message=None,):
        self.message = message

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.STRING:
                    self.message = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('ThriftDataAccessException')
        if self.message is not None:
            oprot.writeFieldBegin('message', TType.STRING, 1)
            oprot.writeString(self.message.encode('utf-8') if sys.version_info[0] == 2 else self.message)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.message is None:
            raise TProtocolException(message='Required field message is unset!')
        return

    def __str__(self):
        return repr(self)

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)

#
# Autogenerated by Thrift Compiler (0.10.0)
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
#  options string: py
#

from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException
from thrift.protocol.TProtocol import TProtocolException
import sys

from thrift.transport import TTransport


class DomainType(object):
    VOLUME = 0
    MEMBRANE = 1

    _VALUES_TO_NAMES = {
        0: "VOLUME",
        1: "MEMBRANE",
    }

    _NAMES_TO_VALUES = {
        "VOLUME": 0,
        "MEMBRANE": 1,
    }


class DataType(object):
    CELLDATA = 0
    POINTDATA = 1

    _VALUES_TO_NAMES = {
        0: "CELLDATA",
        1: "POINTDATA",
    }

    _NAMES_TO_VALUES = {
        "CELLDATA": 0,
        "POINTDATA": 1,
    }


class VariableInfo(object):
    """
    Attributes:
     - variableVtuName
     - variableDisplayName
     - domainName
     - variableDomainType
     - unitsLabel
     - isMeshVar
     - expressionString
     - dataType
    """

    thrift_spec = (
        None,  # 0
        (1, TType.STRING, 'variableVtuName', 'UTF8', None, ),  # 1
        (2, TType.STRING, 'variableDisplayName', 'UTF8', None, ),  # 2
        (3, TType.STRING, 'domainName', 'UTF8', None, ),  # 3
        (4, TType.I32, 'variableDomainType', None, None, ),  # 4
        (5, TType.STRING, 'unitsLabel', 'UTF8', None, ),  # 5
        (6, TType.BOOL, 'isMeshVar', None, None, ),  # 6
        (7, TType.STRING, 'expressionString', 'UTF8', None, ),  # 7
        (8, TType.I32, 'dataType', None, None, ),  # 8
    )

    def __init__(self, variableVtuName=None, variableDisplayName=None, domainName=None, variableDomainType=None, unitsLabel=None, isMeshVar=None, expressionString=None, dataType=None,):
        self.variableVtuName = variableVtuName
        self.variableDisplayName = variableDisplayName
        self.domainName = domainName
        self.variableDomainType = variableDomainType
        self.unitsLabel = unitsLabel
        self.isMeshVar = isMeshVar
        self.expressionString = expressionString
        self.dataType = dataType

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.STRING:
                    self.variableVtuName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.variableDisplayName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.domainName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.I32:
                    self.variableDomainType = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.STRING:
                    self.unitsLabel = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.BOOL:
                    self.isMeshVar = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.STRING:
                    self.expressionString = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.I32:
                    self.dataType = iprot.readI32()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('VariableInfo')
        if self.variableVtuName is not None:
            oprot.writeFieldBegin('variableVtuName', TType.STRING, 1)
            oprot.writeString(self.variableVtuName.encode('utf-8') if sys.version_info[0] == 2 else self.variableVtuName)
            oprot.writeFieldEnd()
        if self.variableDisplayName is not None:
            oprot.writeFieldBegin('variableDisplayName', TType.STRING, 2)
            oprot.writeString(self.variableDisplayName.encode('utf-8') if sys.version_info[0] == 2 else self.variableDisplayName)
            oprot.writeFieldEnd()
        if self.domainName is not None:
            oprot.writeFieldBegin('domainName', TType.STRING, 3)
            oprot.writeString(self.domainName.encode('utf-8') if sys.version_info[0] == 2 else self.domainName)
            oprot.writeFieldEnd()
        if self.variableDomainType is not None:
            oprot.writeFieldBegin('variableDomainType', TType.I32, 4)
            oprot.writeI32(self.variableDomainType)
            oprot.writeFieldEnd()
        if self.unitsLabel is not None:
            oprot.writeFieldBegin('unitsLabel', TType.STRING, 5)
            oprot.writeString(self.unitsLabel.encode('utf-8') if sys.version_info[0] == 2 else self.unitsLabel)
            oprot.writeFieldEnd()
        if self.isMeshVar is not None:
            oprot.writeFieldBegin('isMeshVar', TType.BOOL, 6)
            oprot.writeBool(self.isMeshVar)
            oprot.writeFieldEnd()
        if self.expressionString is not None:
            oprot.writeFieldBegin('expressionString', TType.STRING, 7)
            oprot.writeString(self.expressionString.encode('utf-8') if sys.version_info[0] == 2 else self.expressionString)
            oprot.writeFieldEnd()
        if self.dataType is not None:
            oprot.writeFieldBegin('dataType', TType.I32, 8)
            oprot.writeI32(self.dataType)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.variableVtuName is None:
            raise TProtocolException(message='Required field variableVtuName is unset!')
        if self.variableDisplayName is None:
            raise TProtocolException(message='Required field variableDisplayName is unset!')
        if self.domainName is None:
            raise TProtocolException(message='Required field domainName is unset!')
        if self.variableDomainType is None:
            raise TProtocolException(message='Required field variableDomainType is unset!')
        if self.unitsLabel is None:
            raise TProtocolException(message='Required field unitsLabel is unset!')
        if self.isMeshVar is None:
            raise TProtocolException(message='Required field isMeshVar is unset!')
        if self.dataType is None:
            raise TProtocolException(message='Required field dataType is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class SimulationDataSetRef(object):
    """
    Attributes:
     - simId
     - simName
     - modelId
     - username
     - userkey
     - jobIndex
     - isMathModel
     - simulationContextName
     - modelName
     - originXYZ
     - extentXYZ
     - isTimeVaryingMesh
     - isLocal
    """

    thrift_spec = (
        None,  # 0
        (1, TType.STRING, 'simId', 'UTF8', None, ),  # 1
        (2, TType.STRING, 'simName', 'UTF8', None, ),  # 2
        (3, TType.STRING, 'modelId', 'UTF8', None, ),  # 3
        (4, TType.STRING, 'username', '<PASSWORD>', None, ),  # 4
        (5, TType.STRING, 'userkey', 'UTF8', None, ),  # 5
        (6, TType.I32, 'jobIndex', None, None, ),  # 6
        (7, TType.BOOL, 'isMathModel', None, None, ),  # 7
        (8, TType.STRING, 'simulationContextName', 'UTF8', None, ),  # 8
        (9, TType.STRING, 'modelName', 'UTF8', None, ),  # 9
        (10, TType.LIST, 'originXYZ', (TType.DOUBLE, None, False), None, ),  # 10
        (11, TType.LIST, 'extentXYZ', (TType.DOUBLE, None, False), None, ),  # 11
        (12, TType.BOOL, 'isTimeVaryingMesh', None, None, ),  # 12
        (13, TType.BOOL, 'isLocal', None, None, ),  # 13
    )

    def __init__(self, simId=None, simName=None, modelId=None, username=None, userkey=None, jobIndex=None, isMathModel=None, simulationContextName=None, modelName=None, originXYZ=None, extentXYZ=None, isTimeVaryingMesh=None, isLocal=None,):
        self.simId = simId
        self.simName = simName
        self.modelId = modelId
        self.username = username
        self.userkey = userkey
        self.jobIndex = jobIndex
        self.isMathModel = isMathModel
        self.simulationContextName = simulationContextName
        self.modelName = modelName
        self.originXYZ = originXYZ
        self.extentXYZ = extentXYZ
        self.isTimeVaryingMesh = isTimeVaryingMesh
        self.isLocal = isLocal

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.STRING:
                    self.simId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.STRING:
                    self.simName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 3:
                if ftype == TType.STRING:
                    self.modelId = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 4:
                if ftype == TType.STRING:
                    self.username = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 5:
                if ftype == TType.STRING:
                    self.userkey = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 6:
                if ftype == TType.I32:
                    self.jobIndex = iprot.readI32()
                else:
                    iprot.skip(ftype)
            elif fid == 7:
                if ftype == TType.BOOL:
                    self.isMathModel = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 8:
                if ftype == TType.STRING:
                    self.simulationContextName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 9:
                if ftype == TType.STRING:
                    self.modelName = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            elif fid == 10:
                if ftype == TType.LIST:
                    self.originXYZ = []
                    (_etype3, _size0) = iprot.readListBegin()
                    for _i4 in range(_size0):
                        _elem5 = iprot.readDouble()
                        self.originXYZ.append(_elem5)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 11:
                if ftype == TType.LIST:
                    self.extentXYZ = []
                    (_etype9, _size6) = iprot.readListBegin()
                    for _i10 in range(_size6):
                        _elem11 = iprot.readDouble()
                        self.extentXYZ.append(_elem11)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 12:
                if ftype == TType.BOOL:
                    self.isTimeVaryingMesh = iprot.readBool()
                else:
                    iprot.skip(ftype)
            elif fid == 13:
                if ftype == TType.BOOL:
                    self.isLocal = iprot.readBool()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('SimulationDataSetRef')
        if self.simId is not None:
            oprot.writeFieldBegin('simId', TType.STRING, 1)
            oprot.writeString(self.simId.encode('utf-8') if sys.version_info[0] == 2 else self.simId)
            oprot.writeFieldEnd()
        if self.simName is not None:
            oprot.writeFieldBegin('simName', TType.STRING, 2)
            oprot.writeString(self.simName.encode('utf-8') if sys.version_info[0] == 2 else self.simName)
            oprot.writeFieldEnd()
        if self.modelId is not None:
            oprot.writeFieldBegin('modelId', TType.STRING, 3)
            oprot.writeString(self.modelId.encode('utf-8') if sys.version_info[0] == 2 else self.modelId)
            oprot.writeFieldEnd()
        if self.username is not None:
            oprot.writeFieldBegin('username', TType.STRING, 4)
            oprot.writeString(self.username.encode('utf-8') if sys.version_info[0] == 2 else self.username)
            oprot.writeFieldEnd()
        if self.userkey is not None:
            oprot.writeFieldBegin('userkey', TType.STRING, 5)
            oprot.writeString(self.userkey.encode('utf-8') if sys.version_info[0] == 2 else self.userkey)
            oprot.writeFieldEnd()
        if self.jobIndex is not None:
            oprot.writeFieldBegin('jobIndex', TType.I32, 6)
            oprot.writeI32(self.jobIndex)
            oprot.writeFieldEnd()
        if self.isMathModel is not None:
            oprot.writeFieldBegin('isMathModel', TType.BOOL, 7)
            oprot.writeBool(self.isMathModel)
            oprot.writeFieldEnd()
        if self.simulationContextName is not None:
            oprot.writeFieldBegin('simulationContextName', TType.STRING, 8)
            oprot.writeString(self.simulationContextName.encode('utf-8') if sys.version_info[0] == 2 else self.simulationContextName)
            oprot.writeFieldEnd()
        if self.modelName is not None:
            oprot.writeFieldBegin('modelName', TType.STRING, 9)
            oprot.writeString(self.modelName.encode('utf-8') if sys.version_info[0] == 2 else self.modelName)
            oprot.writeFieldEnd()
        if self.originXYZ is not None:
            oprot.writeFieldBegin('originXYZ', TType.LIST, 10)
            oprot.writeListBegin(TType.DOUBLE, len(self.originXYZ))
            for iter12 in self.originXYZ:
                oprot.writeDouble(iter12)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.extentXYZ is not None:
            oprot.writeFieldBegin('extentXYZ', TType.LIST, 11)
            oprot.writeListBegin(TType.DOUBLE, len(self.extentXYZ))
            for iter13 in self.extentXYZ:
                oprot.writeDouble(iter13)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.isTimeVaryingMesh is not None:
            oprot.writeFieldBegin('isTimeVaryingMesh', TType.BOOL, 12)
            oprot.writeBool(self.isTimeVaryingMesh)
            oprot.writeFieldEnd()
        if self.isLocal is not None:
            oprot.writeFieldBegin('isLocal', TType.BOOL, 13)
            oprot.writeBool(self.isLocal)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.simId is None:
            raise TProtocolException(message='Required field simId is unset!')
        if self.simName is None:
            raise TProtocolException(message='Required field simName is unset!')
        if self.modelId is None:
            raise TProtocolException(message='Required field modelId is unset!')
        if self.username is None:
            raise TProtocolException(message='Required field username is unset!')
        if self.userkey is None:
            raise TProtocolException(message='Required field userkey is unset!')
        if self.jobIndex is None:
            raise TProtocolException(message='Required field jobIndex is unset!')
        if self.isMathModel is None:
            raise TProtocolException(message='Required field isMathModel is unset!')
        if self.modelName is None:
            raise TProtocolException(message='Required field modelName is unset!')
        if self.originXYZ is None:
            raise TProtocolException(message='Required field originXYZ is unset!')
        if self.extentXYZ is None:
            raise TProtocolException(message='Required field extentXYZ is unset!')
        if self.isTimeVaryingMesh is None:
            raise TProtocolException(message='Required field isTimeVaryingMesh is unset!')
        if self.isLocal is None:
            raise TProtocolException(message='Required field isLocal is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class PlotData(object):
    """
    Attributes:
     - timePoints
     - data
    """

    thrift_spec = (
        None,  # 0
        (1, TType.LIST, 'timePoints', (TType.DOUBLE, None, False), None, ),  # 1
        (2, TType.LIST, 'data', (TType.DOUBLE, None, False), None, ),  # 2
    )

    def __init__(self, timePoints=None, data=None,):
        self.timePoints = timePoints
        self.data = data

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.LIST:
                    self.timePoints = []
                    (_etype17, _size14) = iprot.readListBegin()
                    for _i18 in range(_size14):
                        _elem19 = iprot.readDouble()
                        self.timePoints.append(_elem19)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.LIST:
                    self.data = []
                    (_etype23, _size20) = iprot.readListBegin()
                    for _i24 in range(_size20):
                        _elem25 = iprot.readDouble()
                        self.data.append(_elem25)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('PlotData')
        if self.timePoints is not None:
            oprot.writeFieldBegin('timePoints', TType.LIST, 1)
            oprot.writeListBegin(TType.DOUBLE, len(self.timePoints))
            for iter26 in self.timePoints:
                oprot.writeDouble(iter26)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.data is not None:
            oprot.writeFieldBegin('data', TType.LIST, 2)
            oprot.writeListBegin(TType.DOUBLE, len(self.data))
            for iter27 in self.data:
                oprot.writeDouble(iter27)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.timePoints is None:
            raise TProtocolException(message='Required field timePoints is unset!')
        if self.data is None:
            raise TProtocolException(message='Required field data is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class PostProcessingData(object):
    """
    Attributes:
     - variableList
     - plotData
    """

    thrift_spec = (
        None,  # 0
        (1, TType.LIST, 'variableList', (TType.STRUCT, (VariableInfo, VariableInfo.thrift_spec), False), None, ),  # 1
        (2, TType.LIST, 'plotData', (TType.STRUCT, (PlotData, PlotData.thrift_spec), False), None, ),  # 2
    )

    def __init__(self, variableList=None, plotData=None,):
        self.variableList = variableList
        self.plotData = plotData

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.LIST:
                    self.variableList = []
                    (_etype31, _size28) = iprot.readListBegin()
                    for _i32 in range(_size28):
                        _elem33 = VariableInfo()
                        _elem33.read(iprot)
                        self.variableList.append(_elem33)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            elif fid == 2:
                if ftype == TType.LIST:
                    self.plotData = []
                    (_etype37, _size34) = iprot.readListBegin()
                    for _i38 in range(_size34):
                        _elem39 = PlotData()
                        _elem39.read(iprot)
                        self.plotData.append(_elem39)
                    iprot.readListEnd()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('PostProcessingData')
        if self.variableList is not None:
            oprot.writeFieldBegin('variableList', TType.LIST, 1)
            oprot.writeListBegin(TType.STRUCT, len(self.variableList))
            for iter40 in self.variableList:
                iter40.write(oprot)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        if self.plotData is not None:
            oprot.writeFieldBegin('plotData', TType.LIST, 2)
            oprot.writeListBegin(TType.STRUCT, len(self.plotData))
            for iter41 in self.plotData:
                iter41.write(oprot)
            oprot.writeListEnd()
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.variableList is None:
            raise TProtocolException(message='Required field variableList is unset!')
        if self.plotData is None:
            raise TProtocolException(message='Required field plotData is unset!')
        return

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)


class ThriftDataAccessException(TException):
    """
    Attributes:
     - message
    """

    thrift_spec = (
        None,  # 0
        (1, TType.STRING, 'message', 'UTF8', None, ),  # 1
    )

    def __init__(self, message=None,):
        self.message = message

    def read(self, iprot):
        if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None:
            iprot._fast_decode(self, iprot, (self.__class__, self.thrift_spec))
            return
        iprot.readStructBegin()
        while True:
            (fname, ftype, fid) = iprot.readFieldBegin()
            if ftype == TType.STOP:
                break
            if fid == 1:
                if ftype == TType.STRING:
                    self.message = iprot.readString().decode('utf-8') if sys.version_info[0] == 2 else iprot.readString()
                else:
                    iprot.skip(ftype)
            else:
                iprot.skip(ftype)
            iprot.readFieldEnd()
        iprot.readStructEnd()

    def write(self, oprot):
        if oprot._fast_encode is not None and self.thrift_spec is not None:
            oprot.trans.write(oprot._fast_encode(self, (self.__class__, self.thrift_spec)))
            return
        oprot.writeStructBegin('ThriftDataAccessException')
        if self.message is not None:
            oprot.writeFieldBegin('message', TType.STRING, 1)
            oprot.writeString(self.message.encode('utf-8') if sys.version_info[0] == 2 else self.message)
            oprot.writeFieldEnd()
        oprot.writeFieldStop()
        oprot.writeStructEnd()

    def validate(self):
        if self.message is None:
            raise TProtocolException(message='Required field message is unset!')
        return

    def __str__(self):
        return repr(self)

    def __repr__(self):
        L = ['%s=%r' % (key, value)
             for key, value in self.__dict__.items()]
        return '%s(%s)' % (self.__class__.__name__, ', '.join(L))

    def __eq__(self, other):
        return isinstance(other, self.__class__) and self.__dict__ == other.__dict__

    def __ne__(self, other):
        return not (self == other)
# # Autogenerated by Thrift Compiler (0.10.0) # # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING # #  options string: py # Attributes:      - variableVtuName      - variableDisplayName      - domainName      - variableDomainType      - unitsLabel      - isMeshVar      - expressionString      - dataType # 0 # 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 Attributes:      - simId      - simName      - modelId      - username      - userkey      - jobIndex      - isMathModel      - simulationContextName      - modelName      - originXYZ      - extentXYZ      - isTimeVaryingMesh      - isLocal # 0 # 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 10 # 11 # 12 # 13 Attributes:      - timePoints      - data # 0 # 1 # 2 Attributes:      - variableList      - plotData # 0 # 1 # 2 Attributes:      - message # 0 # 1