Re: NameError when generating Python code
"R. Tyler Ballance" <[email protected]>
| Newsgroups | gmane.comp.python.cheetah |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Apr 16, 2009 at 10:31:53PM +0100, Martin Skøtt wrote: > 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? If you check out the "next" branch, the changes are there. If you'd like to jump onto #cheetah on freenode we can work through it in real-time if you'd like > > 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 Sko/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. -- -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
signature.asc
(application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAknnpIIACgkQFCbH3D9R4W8NSgCeKRRACnZ889jmZ1G5cNeMO7fj XkAAnR6SfUc/NcdabxGll4wu27zMReFY =Yv2/ -----END PGP SIGNATURE-----