def _get_domain(self, symno): """Get domain for symbol""" ret, domain = gdxcc.gdxSymbolGetDomainX(self._h, symno) if ret: return domain else: return []
def __init__(self,name,data_type,dims=0,file=None,index=None, description='',variable_type=None,equation_type=None): self._name = name self.description = description self._loaded = False self._data_type = GamsDataType(data_type) self._variable_type = None; self.variable_type = variable_type self._equation_type = None; self.equation_type = equation_type self._dataframe = None self._dims = []; self.dims = dims assert self._dataframe is not None self._file = file self._index = index if self.file is not None: # reading from file # get additional meta-data ret, records, userinfo, description = gdxcc.gdxSymbolInfoX(self.file.H,self.index) if ret != 1: raise GdxError(self.file.H,"Unable to get extended symbol information for {}".format(self.name)) self._num_records = records if self.data_type == GamsDataType.Variable: self.variable_type = GamsVariableType(userinfo) elif self.data_type == GamsDataType.Equation: self.equation_type = GamsEquationType(userinfo) self.description = description if self.index > 0: ret, gdx_domain = gdxcc.gdxSymbolGetDomainX(self.file.H,self.index) if ret == 0: raise GdxError(self.file.H,"Unable to get domain information for {}".format(self.name)) assert len(gdx_domain) == len(self.dims), "Dimensional information read in from GDX should be consistent." self.dims = gdx_domain else: # universal set assert self.index == 0 self._loaded = True return # writing new symbol self._loaded = True return