MCPcopy Create free account
hub / github.com/Image-Py/imagepy / TablePlus

Class TablePlus

imagepy/core/wraper/tableplus.py:5–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3from ..manager import TableManager
4
5class TablePlus():
6 def __init__(self, data, title=None):
7 self.set_title(title)
8 self.dirty, self.range = None, None
9 self.default = [3, (0,0,0), (0,0,255), 'Text']
10 self.set_data(data)
11 self.snap = None
12
13 def update(self, value=True): self.dirty=value
14
15 def set_title(self, title):
16 self.title = TableManager.name(title)
17
18 def get_nbytes(self):
19 return self.data.memory_usage().sum()
20
21 def get_str(self, row, col):
22 ser = self.data[self.columns[col]]
23
24 def set_data(self, data):
25 self.data, self.props = data, None
26 self.rowmsk, self.colmsk = [],[]
27 self.count_range()
28
29 def snapshot(self, mskr=None, mskc=None, num=False):
30 if mskr==None:rmsk = slice(None)
31 rowmsk = self.rowmsk if len(self.rowmsk)>0 else self.data.index
32 if mskr==True:rmsk = rowmsk
33 if mskr==False:rmsk = self.data.index.difference(rowmsk)
34
35 if mskc==None:cmsk = slice(None)
36 colmsk = self.colmsk if len(self.colmsk)>0 else self.data.columns
37 if mskc==True:cmsk = colmsk
38 if mskc==False:cmsk = self.data.columns.difference(colmsk)
39
40 self.snap = self.data.loc[rmsk, cmsk].copy()
41 if num: self.snap = self.snap.select_dtypes(
42 include=[np.number])
43
44 def select(self, rs=[], cs=[], byidx=False):
45 if byidx: rs, cs = self.data.index[rs], self.data.columns[cs]
46 self.rowmsk = pd.Index(rs).astype(self.data.index.dtype)
47 self.colmsk = pd.Index(cs).astype(self.data.columns.dtype)
48 print('tps select', rs, cs, self.rowmsk, self.colmsk)
49
50 def get_titles(self):return self.data.columns
51 def get_index(self):return self.data.index
52
53 def get_props(self):
54 props, data = self.props, self.data
55 if self.props is None or len(props.columns)!=len(data.columns)\
56 or (props.columns != data.columns).sum()>0:
57 ndata = [[i]*data.shape[1] for i in self.default]
58 newprop = pd.DataFrame(ndata, ['round', 'tc', 'lc', 'ln'], data.columns)
59 if not self.props is None:
60 inter = self.props.columns.intersection(newprop.columns)
61 newprop[inter] = self.props[inter]
62 self.props = newprop

Callers 2

tablewindow.pyFile · 0.90
showtableFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected