1.1 --- a/simplex/readers.py Sat Oct 01 16:40:29 2011 +0200
1.2 +++ b/simplex/readers.py Sat Oct 01 17:46:28 2011 +0200
1.3 @@ -30,19 +30,19 @@
1.4 self.f.seek(pos)
1.5
1.6 def get_records(self):
1.7 - return FileIterator(self.f, self.accessor)
1.8 + return FileIterator(self.f.xreadlines(), self.accessor)
1.9
1.10 class FileIterator:
1.11
1.12 "An iterator over records employing record accessors."
1.13
1.14 - def __init__(self, resource, accessor):
1.15 - self.resource = resource
1.16 + def __init__(self, records, accessor):
1.17 + self.records = records
1.18 self.accessor = accessor
1.19 self.iterator = None
1.20
1.21 def __iter__(self):
1.22 - self.iterator = iter(self.resource.xreadlines())
1.23 + self.iterator = iter(self.records)
1.24 return self
1.25
1.26 def next(self):
1.27 @@ -67,6 +67,7 @@
1.28
1.29 self.keys = keys or [0]
1.30 self.delimiter = delimiter
1.31 + self.numeric = numeric
1.32
1.33 # Define a conversion method.
1.34
1.35 @@ -79,4 +80,11 @@
1.36 values = record.split(self.delimiter)
1.37 return self.convert([values[key] for key in self.keys])
1.38
1.39 + def get_sort_command(self):
1.40 + return "sort%s%s%s" % (
1.41 + self.delimiter and (" -t $'%s'" % repr(self.delimiter)[1:-1]) or "",
1.42 + self.numeric and " -n" or "",
1.43 + "".join([(" -k %d,%d" % (key + 1, key + 1)) for key in self.keys])
1.44 + )
1.45 +
1.46 # vim: tabstop=4 expandtab shiftwidth=4