I suppose this has to do with the way PythonScripts are interpreted. As you may have noticed, Zope prepends a function definition line like "def your_id(args...):" to the text of your PythonScript before evaluating it (that is why errors in PythonScripts are reported with the line count off by one). In order to make the whole block syntatically valid, the body of the function must be indented relative to the function definition. So before evaluating your function, Zope must prepend a space in each line. It should be smart enough to treat triple-quotes differently, but it isn't. Now, I think the need to use triple-quoted strings can imply a design problem: it means you are embedding the template in your code, which is often a bad idea. Without knowing what you are doing, I would try and separate the embedded template from the Python logic. Regards, Luciano "Christopher N. Deckard" wrote:
From: "Christopher N. Deckard" <cnd@ecn.purdue.edu>
Clarification, this happens when using triple quotes
print ''' foo bar '''
Actually prints: foo bar
Ah, I knew this would bite somebody someday, but you're the first to mention it. When a Script is compiled, it is actually converted into a function by prefixing it with a "def f(params..." line. If the body isn't indented, it won't compile, so it indents it one space. You can get around this by manually indenting. In other words:
## Script (Python) "indented" print ''' foo bar ''' return printed
Hmm, this was not the answer I was looking for. Are there any thoughts on fixing this in the future? I've fun into it many times now and couldn't figure out what was going on. It is especially bad when printing a textarea for a form. Everything comes out indented a space.
I'll just go line by line for now. Thanks for the answer.
-Chris
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )