Treat columns as ordered throughout code
The set() does not make anything any easier, lists are closer to underlying representation.
This commit is contained in:
parent
89ebd62732
commit
8f4cd59c9a
@ -25,7 +25,7 @@ class Table(object):
|
||||
"""
|
||||
Get a listing of all columns that exist in the table.
|
||||
"""
|
||||
return set(self.table.columns.keys())
|
||||
return list(self.table.columns.keys())
|
||||
|
||||
def drop(self):
|
||||
"""
|
||||
@ -184,7 +184,10 @@ class Table(object):
|
||||
self.database.executable.execute(stmt)
|
||||
|
||||
def _ensure_columns(self, row, types={}):
|
||||
for column in set(row.keys()) - set(self.table.columns.keys()):
|
||||
# Keep order of inserted columns
|
||||
for column in row.keys():
|
||||
if column in self.table.columns.keys():
|
||||
continue
|
||||
if column in types:
|
||||
_type = types[column]
|
||||
else:
|
||||
|
||||
@ -76,8 +76,8 @@ database:
|
||||
|
||||
Now, let's list all columns available in the table ``user``:
|
||||
|
||||
>>> print db['user'].columns
|
||||
set([u'id', u'name', u'email', u'pwd', u'country'])
|
||||
>>> print(db['user'].columns)
|
||||
[u'id', u'name', u'email', u'pwd', u'country']
|
||||
|
||||
Using ``len()`` we can get the total number of rows in a table:
|
||||
|
||||
|
||||
@ -229,8 +229,7 @@ class TableTestCase(unittest.TestCase):
|
||||
|
||||
def test_columns(self):
|
||||
cols = self.tbl.columns
|
||||
assert isinstance(cols, set), 'columns should be a set'
|
||||
assert len(cols) == 4, 'column count mismatch'
|
||||
assert len(list(cols)) == 4, 'column count mismatch'
|
||||
assert 'date' in cols and 'temperature' in cols and 'place' in cols
|
||||
|
||||
def test_iter(self):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user