diff --git a/aesop/ovvpfile.py b/aesop/ovvpfile.py index 72150fae..a9d67c43 100644 --- a/aesop/ovvpfile.py +++ b/aesop/ovvpfile.py @@ -1,13 +1,8 @@ -# -*- coding: utf-8 -*- +from django.http import HttpResponse +from django.utils.encoding import force_text -try: - from django.http import HttpResponse - from django.utils.encoding import force_text -except: - force_text = str - -class OvvpFile(object): +class OvvpFile: def __init__(self): # { header: value, ... } self.headers = {} @@ -30,52 +25,6 @@ class OvvpFile(object): def to_string(self): return ''.join(self.to_lines()) + # Pozn: tohle je ta jediná funkce, která se reálně používá… def to_HttpResponse(self): return HttpResponse(self.to_string(), content_type='text/plain; charset=utf-8') - - def parse_from(self, source, with_headers=True): - "Parse data from file, string or line iterator, overwriting self" - if isinstance(source, str) or isinstance(source, unicode): - return self.parse_from(source.split('\n')) - - it = iter(source) - - # header - self.headers = {} - if with_headers: - for r in it: - if isinstance(r, str): - r = r.decode('utf8') - assert isinstance(r, unicode) - r = r.rstrip('\n') - if r == u"": - break - k, v = r.split(u'\t', 1) - self.headers[k] = v - - # columns - r = it.next() - if isinstance(r, str): - r = r.decode('utf8') - self.columns = [cn.strip() for cn in r.split(u'\t') if cn.strip() != ""] - - # rows - self.rows = [] - for r in it: - if isinstance(r, str): - r = r.decode('utf8') - r = r.rstrip('\n') - if not r: - break - rtup = r.split(u'\t') - rdict = {} - for ci in range(len(self.columns)): - rdict[self.columns[ci]] = rtup[ci] - self.rows.append(rdict) - - - -def parse(source, with_headers=True): - o = OvvpFile() - o.parse_from(source, with_headers=with_headers) - return o