class Cursor (object):
def __init__(me, rel):
me._rel = rel
- me._i = 0
- me._row = rel[0]
+ me.reset()
def step(me):
me._i += 1
if me._i >= len(me._rel):
def addrow(me, row):
if len(row) != len(me._head):
die("mismatch: row `%s' doesn't match heading `%s'" %
- (', '.join(row), ', '.join(head)))
+ (', '.join(row), ', '.join(me._head)))
me._rows.append(row)
def __len__(me):
return len(me._rows)
def read_file(spec):
file, head = spec.split(':', 1)
rel = Relation([c.strip() for c in head.split(',')])
- cols = [c.strip() for c in head.split(',')]
with open(file) as f:
for line in f:
line = line.strip()
if len(seq) == 1:
return seq[0]
else:
- me = super(SequenceTemplate, cls).__new__(cls, seq = seq, **kw)
- tt = []
- cls = type(me)
- for t in seq:
- if isinstance(t, cls): tt += t._seq
- else: tt.append(t)
- me._seq = tt
- return me
+ return super(SequenceTemplate, cls).__new__(cls, seq = seq, **kw)
+
def __init__(me, seq, **kw):
super(SequenceTemplate, me).__init__(**kw)
+ tt = []
+ cls = type(me)
+ for t in seq:
+ if isinstance(t, cls): tt += t._seq
+ else: tt.append(t)
+ me._seq = tt
+
def relations(me):
rr = set()
for t in me._seq: rr.update(t.relations())
col = m.group(1)
try: rel, i = COLMAP[col]
except KeyError: ps.error("unknown column `%s'" % col)
- wholeop = None
ops = m.lastindex >= 2 and m.group(2)
+ wholeop = None
if ops:
for opname in ops[1:].split(':'):
try: op = OPMAP[opname]