introduced parsemap
This commit is contained in:
1 parent
4b5993b35b
commit
1af865b748
2 files changed
+21
-2
No files matched your search
@@ -1 +1 @@
|
|||||||
Version 1.99.4 (2012-01-12 14:18:47) stable
|
Version 1.99.4 (2012-01-12 22:51:51) stable
|
||||||
+20
-1
@@ -1461,7 +1461,7 @@ class BaseAdapter(ConnectionPool):
|
|||||||
return value
|
return value
|
||||||
else:
|
else:
|
||||||
key = regex_type.match(field_type).group(0)
|
key = regex_type.match(field_type).group(0)
|
||||||
return getattr(self,'parse_'+key)(value,field_type)
|
return self.parsemap[key](value,field_type)
|
||||||
|
|
||||||
def parse_reference(self, value, field_type):
|
def parse_reference(self, value, field_type):
|
||||||
referee = field_type[10:].strip()
|
referee = field_type[10:].strip()
|
||||||
@@ -1535,7 +1535,25 @@ class BaseAdapter(ConnectionPool):
|
|||||||
def parse_double(self, value, field_type):
|
def parse_double(self, value, field_type):
|
||||||
return float(value)
|
return float(value)
|
||||||
|
|
||||||
|
def build_parsemap(self):
|
||||||
|
self.parsemap = {
|
||||||
|
'id':self.parse_id,
|
||||||
|
'integer':self.parse_integer,
|
||||||
|
'double':self.parse_double,
|
||||||
|
'reference':self.parse_reference,
|
||||||
|
'boolean':self.parse_boolean,
|
||||||
|
'date':self.parse_date,
|
||||||
|
'time':self.parse_time,
|
||||||
|
'datetime':self.parse_datetime,
|
||||||
|
'blob':self.parse_blob,
|
||||||
|
'decimal':self.parse_decimal,
|
||||||
|
'list:integer':self.parse_list_integers,
|
||||||
|
'list:reference':self.parse_list_references,
|
||||||
|
'list:string':self.parse_list_strings,
|
||||||
|
}
|
||||||
|
|
||||||
def parse(self, rows, fields, colnames, blob_decode=True):
|
def parse(self, rows, fields, colnames, blob_decode=True):
|
||||||
|
self.build_parsemap()
|
||||||
db = self.db
|
db = self.db
|
||||||
virtualtables = []
|
virtualtables = []
|
||||||
new_rows = []
|
new_rows = []
|
||||||
@@ -3985,6 +4003,7 @@ class MongoDBAdapter(NoSQLAdapter):
|
|||||||
return self.parse(rows, fields, mongofields_dict.keys(), False, tablename)
|
return self.parse(rows, fields, mongofields_dict.keys(), False, tablename)
|
||||||
|
|
||||||
def parse(self, rows, fields, colnames, blob_decode=True,tablename=None):
|
def parse(self, rows, fields, colnames, blob_decode=True,tablename=None):
|
||||||
|
self.build_parsemap()
|
||||||
import pymongo.objectid
|
import pymongo.objectid
|
||||||
print "in parse"
|
print "in parse"
|
||||||
print "colnames=%s" % colnames
|
print "colnames=%s" % colnames
|
||||||
|
|||||||
Reference in new issue
Block a user