]> git.jsancho.org Git - datasette-connectors.git/blob - datasette_connectors/row.py
Explanation about Row class
[datasette-connectors.git] / datasette_connectors / row.py
1 class Row(list):
2     def __init__(self, values=None):
3         self.labels = []
4         self.values = []
5         if values:
6             for idx in values:
7                 self.__setitem__(idx, values[idx])
8
9     def __setitem__(self, idx, value):
10         if type(idx) is str:
11             if idx in self.labels:
12                 self.values[self.labels.index(idx)] = value
13             else:
14                 self.labels.append(idx)
15                 self.values.append(value)
16         else:
17             self.values[idx] = value
18
19     def __getitem__(self, idx):
20         if type(idx) is str:
21             return self.values[self.labels.index(idx)]
22         else:
23             return self.values[idx]
24
25     def __iter__(self):
26         return self.values.__iter__()