Skip to content

Commit ce8aba8

Browse files
committed
Add CSV repr for SgTable
1 parent 69a5f43 commit ce8aba8

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

components/table.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
print(table[0:2:2])
2020
"""
2121

22+
import itertools
23+
2224

2325
class SgTable:
2426
"""A class to store tables."""
@@ -55,6 +57,24 @@ def __str__(self):
5557
ret += "\n" + str(row)
5658
return ret
5759

60+
def _GetCsvRepr(self, val):
61+
if isinstance(val, list):
62+
return u",".join(itertools.imap(self._GetCsvRepr, val))
63+
else:
64+
if isinstance(val, unicode):
65+
if u"," in val:
66+
return u"\"" + val + u"\""
67+
else:
68+
return val
69+
else:
70+
return unicode(str(val), "utf-8")
71+
72+
def InCsv(self):
73+
ret = u",".join(self._fields)
74+
for row in self._table:
75+
ret += u"\n" + self._GetCsvRepr(row)
76+
return ret
77+
5878
def GetVals(self, field):
5979
idx = [i for i, f in enumerate(self._fields) if f == field][0]
6080
return [row[idx] for row in self._table]

0 commit comments

Comments
 (0)