projects
/
zzz-pokedex.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
1c7cf91
)
Fixed CSV import's handling of Boolean columns.
author
Eevee
<git@veekun.com>
Thu, 26 Mar 2009 00:43:09 +0000
(20:43 -0400)
committer
Eevee
<git@veekun.com>
Thu, 26 Mar 2009 00:43:09 +0000
(20:43 -0400)
pokedex/__init__.py
patch
|
blob
|
history
diff --git
a/pokedex/__init__.py
b/pokedex/__init__.py
index
2932504
..
d60224e
100644
(file)
--- a/
pokedex/__init__.py
+++ b/
pokedex/__init__.py
@@
-1,6
+1,8
@@
# encoding: utf8
import sys
# encoding: utf8
import sys
+import sqlalchemy.types
+
from .db import connect, metadata
def main():
from .db import connect, metadata
def main():
@@
-49,9
+51,17
@@
def csvimport(engine_uri, dir='.'):
row = table()
for column_name, value in zip(column_names, csvs):
row = table()
for column_name, value in zip(column_names, csvs):
- if table.__table__.c[column_name].nullable and value == '':
+ column = table.__table__.c[column_name]
+ if column.nullable and value == '':
# Empty string in a nullable column really means NULL
value = None
# Empty string in a nullable column really means NULL
value = None
+ elif isinstance(column.type, sqlalchemy.types.Boolean):
+ # Boolean values are stored as string values 0/1, but both
+ # of those evaluate as true; SQLA wants True/False
+ if value == '0':
+ value = False
+ else:
+ value = True
else:
# Otherwise, unflatten from bytes
value = value.decode('utf-8')
else:
# Otherwise, unflatten from bytes
value = value.decode('utf-8')