Edgewall Software

Opened 17 years ago

Last modified 16 years ago

#227 reopened defect

syntax error on os.walk

Reported by: mats_a@… Owned by: cmlenz
Priority: major Milestone:
Component: Template processing Version: devel
Keywords: Cc:

Description

<?python

import os

for root,dirs,files in os.walk():

print root

?>


This should work fine, but it throws a template syntax error

...[snip]...

File "build/bdist.linux-i686/egg/genshi/template/loader.py", line 259, in _instantiate

allow_exec=self.allow_exec)

File "build/bdist.linux-i686/egg/genshi/template/base.py", line 373, in init

self.stream = list(self._prepare(self._parse(source, encoding)))

File "build/bdist.linux-i686/egg/genshi/template/markup.py", line 206, in _parse

pos[2] + (err.offset or 0))

TemplateSyntaxError?: invalid syntax (/home/mats/documents/....../myfile.html, line 54)

Change History (2)

comment:1 Changed 16 years ago by cmlenz

  • Component changed from General to Template processing
  • Milestone 0.5 deleted
  • Resolution set to worksforme
  • Status changed from new to closed

An XML document needs a root element. If you just have that PI in a template, that's not well-formed XML.

After adding a root element, this works fine for me, so I'm closing this as worksforme. Please reopen if you actually had a root element, and it didn't work.

comment:2 Changed 16 years ago by mats_a@…

  • Resolution worksforme deleted
  • Status changed from closed to reopened

Reopening. I actually had a root element (otherwise wouldn't Genshi fail to work at all?).

It just seems that a syntax error is being thrown for no reason. It works perfectly fine in a python interpreter.

This <?python ... ?> block was inside of a <head py:match="head"></head> tag using the normal Genshi example.

Further testing:

  • No syntax error results if it is NOT put in the <head> tag, but rather as a child of <html>. This seems to be a workaround for those who are interested.
  • file is not defined inside a Genshi template (another bug?)
  • You might need to do os.walk(somepath) (that is however not the issue)
Note: See TracTickets for help on using tickets.