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,
|
'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):
|
class Record(object):
|
||||||
def __init__(self, id=None, **kwargs):
|
def __init__(self, id=None, **kwargs):
|
||||||
@ -444,11 +457,11 @@ class Record(object):
|
|||||||
setattr(self, name, default)
|
setattr(self, name, default)
|
||||||
|
|
||||||
def serialize(self):
|
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):
|
def deserialize(self, s):
|
||||||
unseenRecords = set(self.fields)
|
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))
|
setattr(self, name, self.converters[name](strValue))
|
||||||
unseenRecords.remove(name)
|
unseenRecords.remove(name)
|
||||||
for name in unseenRecords:
|
for name in unseenRecords:
|
||||||
|
@ -31,23 +31,6 @@
|
|||||||
|
|
||||||
from . import minisix
|
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):
|
def force(x):
|
||||||
if callable(x):
|
if callable(x):
|
||||||
return x()
|
return x()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user