Re: NameError when generating Python code
Martin Skøtt <[email protected]>
| Newsgroups | gmane.comp.python.cheetah |
|---|---|
| Message-ID | <[email protected]> |
Hi, Sounds good that I'm not the only one with this problem :) I think I know enough about git to test out the patch. Which branch or tag should I test? Martin On Thu, Apr 16, 2009 at 20:38, R. Tyler Ballance <[email protected]> wrote: > On Thu, Apr 16, 2009 at 06:17:51PM +0100, Martin Skøtt wrote: > > Hi, > > > > I'm trying to use Cheetah 2.1.0.1 to generate some Python stub > classes, > > but I have encountered a problem which to me looks like Cheetah is > > actually evaluating the code I generate. Here is the error I get: > (Python > > 2.6 on Win XP): > > Traceback (most recent call last): > > File "stubGen.py", line 64, in <module> > > print(t) > > File "C:\Python26\Lib\site- > > packages\Cheetah\Template.py", line 982, in __str__ > > def __str__(self): return getattr(self, mainMethName)() > > File "_HOME_Generator_src_templates_class_tmpl.py", line 89, in > respond > > NameError: global name 'BaseClass' is not defined > > > > Here is the template I'm using: > > from BaseClass import BaseClass > > class $module.module(BaseClass): > > pass > > > > If I comment out (##) the two first lines it works fine. Any > suggestions > > on how to solve this? > > I'm impressed! You found the same issue we found tuesday ;) > > Anyways, the cause of the issue is the inline import support, part of > what allows Cheetah to do things like this: > > #set $myName = 'Pirate Jake' > Hello $myName > > ANd turn that into a runnable template is that the Cheetah compiler > considers everything "lying around" not in a defined method as part of > the "writeBody" metho, this kind of default uber-method. > > So with your case, what's happening is that because the imports aren't > at the top of the fiule, the compiler/parser think that you're adding > imports into the writeBody() method instead of the module level itself. > > > The fix I think works is to ignore comments as part of the method's body > and ignore them for the sake of imports. (this should go into the final > v2.1.1 I'll release today) > > Are you familiar with Git enough to where I could convince you to beta > test the patch this afternoon? > > > Cheers > -- > -R. Tyler Ballance > Slide, Inc. > ------------------------------------------------------------------------------ Stay on top of everything new and different, both inside and around Java (TM) technology - register by April 22, and save $200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco. 300 plus technical and hands-on sessions. Register today. Use priority code J9JMT32. http://p.sf.net/sfu/p _______________________________________________ Cheetahtemplate-discuss mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss