def _get_iterated_content(self, fname, spans, loopvars, loopiter, content):
out = []
ieval = []
peval = []
try:
iterobj = iter(self._evaluate(loopiter, fname, spans[0][0]))
except Exception as exc:
msg = "exception occured when evaluating '{0}'"\
.format(loopiter)
raise FyppFatalError(msg, fname, spans[0], exc)
multiline = (spans[0][0] != spans[-1][1])
for var in iterobj:
if len(loopvars) == 1:
self._define(loopvars[0], var)
else:
for varname, value in zip(loopvars, var):
self._define(varname, value)
if self._linenums and not self._diverted and multiline:
out.append(linenumdir(spans[0][1], fname))
outcont, ievalcont, pevalcont = self._render(content)
ieval += _shiftinds(ievalcont, len(out))
peval += pevalcont
out += outcont
if self._linenums and not self._diverted and multiline:
out.append(linenumdir(spans[1][1], fname))
return out, ieval, peval
评论列表
文章目录