From: Reinout v. R. <re...@va...> - 2005-11-29 08:21:04
|
On Mon, 28 Nov 2005, Giovanni Toffoli wrote: > isn't AGX able to parse a Python statement such as this one? > terms = [result.getObject() for result in results] That shouldn't be a problem and it also *is* probably not the problem: > INFO Generating class 'PSGlossary'. > CRITICAL There's something wrong with the python code we're about to write > to disk. Perhaps a faulty > tagged value or a genuine bug in parsing the previous version of the file. > The filename is 'PloneSaurus\PSGlossary.py'. It used to be that archgenxml generated faulty python files if there was something wrong with a tagged value or so, preventing it from reading in the faulty file in on a subsequent run. To prevent that, archgenxml tries to parse files before writing them out. If there's an error, it aborts. > File "<string>", line 847 > def getAllTerms(self, level, depth): > ^ > IndentationError: expected an indented block Which means, that the problem is not on line 847 in the original file, but on line 847 in the generated file (which doesn't get written). So the "terms = [....]' line isn't the problem. The problem is on the line before the 'def'. Some suggestions: * An if: or else: statement with a missing part. * You've got a "return" at the end of a method that's spread over various lines. Somehow, the parser that archgenxml uses doesn't like that. (There is a unittest that exposes the problem, but I don't know how to fix it). So look for something like: return [item1, item2, item3] and rework it to: return [item1, item2, item3] I hope this gives you some pointers. Otherwise, go to #archetypes on irc and paste.plone.org your class. Reinout -- Reinout van Rees r.v...@ze... http://vanrees.org/weblog/ http://zestsoftware.nl/ "Military engineers build missiles. Civil engineers build targets." |