def _to_frame_inner(cellsiter, args): from modelx.io.pandas import cellsiter_to_dataframe if len(args) == 1: if isinstance(args[0], Sequence) and len(args[0]) == 0: pass # Empty sequence else: args = args[0] if len(args) and shareable_parameters(cellsiter) is None: raise RuntimeError("Parameters not shared") argkeys = [] for arg in args: for cells in cellsiter.values(): newarg = tuplize_key(cells, arg, remove_extra=True) cells.get_value(newarg) arg = tuplize_key(cells, arg, remove_extra=False) if arg not in argkeys: argkeys.append(arg) return cellsiter_to_dataframe(cellsiter, argkeys)
def tuplize_arg_sequence(self, argseq): if len(argseq) == 1: if isinstance(argseq[0], Sequence) and len(argseq[0]) == 0: pass # Empty sequence else: argseq = argseq[0] for arg in argseq: self.get_value(tuplize_key(self, arg, remove_extra=True)) return tuple(tuplize_key(self, arg) for arg in argseq)
def _new_cells_from_series(self, series, name, param, source): if is_valid_name(name): pass else: if is_valid_name(series.name): name = series.name cells = self.new_cells(name=name, formula=get_param_func( _get_param_names(series, param)), source=source) for i, v in series.items(): cells.set_value(tuplize_key(cells, i), v.item() if isinstance(v, np.generic) else v) return cells
def __setitem__(self, key, value): """Set value of a particular cell""" self._impl.set_value(tuplize_key(self, key), value)
def __getitem__(self, key): return self._impl.get_value(tuplize_key(self, key))
def __contains__(self, key): return self._impl.has_cell(tuplize_key(self, key))
def __getitem__(self, key): return self._impl.get_dynspace(tuplize_key(self, key)).interface