mirror of
https://github.com/progval/Limnoria.git
synced 2025-04-25 12:31:04 -05:00
Move csv.join / split definitions to src/dbi.py
Monkey patching a built-in library is just plain confusing.
This commit is contained in:
parent
a399a54a2b
commit
5eb8e310d5
17
src/dbi.py
17
src/dbi.py
@ -408,6 +408,19 @@ Mappings = {
|
||||
'flat': FlatfileMapping,
|
||||
}
|
||||
|
||||
###
|
||||
# csv.{join,split} -- useful functions that should exist.
|
||||
###
|
||||
def csv_join(L):
|
||||
fd = minisix.io.StringIO()
|
||||
writer = csv.writer(fd)
|
||||
writer.writerow(L)
|
||||
return fd.getvalue().rstrip('\r\n')
|
||||
|
||||
def csv_split(s):
|
||||
fd = minisix.io.StringIO(s)
|
||||
reader = csv.reader(fd)
|
||||
return next(reader)
|
||||
|
||||
class Record(object):
|
||||
def __init__(self, id=None, **kwargs):
|
||||
@ -444,11 +457,11 @@ class Record(object):
|
||||
setattr(self, name, default)
|
||||
|
||||
def serialize(self):
|
||||
return csv.join([repr(getattr(self, name)) for name in self.fields])
|
||||
return csv_join([repr(getattr(self, name)) for name in self.fields])
|
||||
|
||||
def deserialize(self, s):
|
||||
unseenRecords = set(self.fields)
|
||||
for (name, strValue) in zip(self.fields, csv.split(s)):
|
||||
for (name, strValue) in zip(self.fields, csv_split(s)):
|
||||
setattr(self, name, self.converters[name](strValue))
|
||||
unseenRecords.remove(name)
|
||||
for name in unseenRecords:
|
||||
|
@ -31,23 +31,6 @@
|
||||
|
||||
from . import minisix
|
||||
|
||||
###
|
||||
# csv.{join,split} -- useful functions that should exist.
|
||||
###
|
||||
import csv
|
||||
def join(L):
|
||||
fd = minisix.io.StringIO()
|
||||
writer = csv.writer(fd)
|
||||
writer.writerow(L)
|
||||
return fd.getvalue().rstrip('\r\n')
|
||||
|
||||
def split(s):
|
||||
fd = minisix.io.StringIO(s)
|
||||
reader = csv.reader(fd)
|
||||
return next(reader)
|
||||
csv.join = join
|
||||
csv.split = split
|
||||
|
||||
def force(x):
|
||||
if callable(x):
|
||||
return x()
|
||||
|
Loading…
x
Reference in New Issue
Block a user