Re: [Cheetahtemplate-discuss] inverting name search order
Brought to you by:
rtyler,
tavis_rudd
From: Brian B. <Bri...@se...> - 2006-11-29 09:12:43
|
I had a similar problem a while ago. Error Catchers can be used, but I found some bugs in them at the time (I think they were fixed). However, error catchers are relatively slow, and also only meant for debugging (apparently). You can write $!foo in certain cases which is equivalent to $getVar('foo','') which is what I ended up doing. However, this syntax can't be used inside expressions, so I can't write: $myFunction($!foo) which is a shame. It might be nice if this worked because then $getVar would only be needed if you wanted to explicitly specify a default value other than ''. See this thread: http://sourceforge.net/mailarchive/message.php?msg_id=3D15484950 Brian > -----Original Message----- > From: che...@li... > [mailto:che...@li...] On Behalf > Of Alejandro Dubrovsky > Sent: 29 November 2006 05:36 > To: cheetah > Subject: [Cheetahtemplate-discuss] inverting name search order >=20 > Hi, >=20 > Like probably quite a few people, I'm passing a derivative of a > dictionary to Cheetah so that variables not found are deemed as None so > that I can write $foo instead of $getVar('foo',None). >=20 > (ie something like this > def __getitem__(self, key): > if key in self: > return self.get(key) > else: > return None > ) >=20 > The problem is that when I tried to #import some module in the template, > Cheetah can't find anything under the imported module because it > (sensibly IMO) searches the catchall defaulted dictionary that I'm > passing in first, and since that satisfies the search, it never hits the > imported module. > (eg > #from time import asctime > $asctime() > raises an exception saying that None is not callable > ) >=20 > My question then is, can something be configured to override the default > namespace order so that when doing the variable search the dictionary > passed in to Cheetah is searched last? or is the correct way of > handling this not to use the default dictionary and instead use an > ErrorCatcher? >=20 > Thanks, > alejandro >=20 >=20 >=20 > ------------------------------------------------------------------------ - > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=3Djoin.php&p=3Dsourceforge&CID=3D= DEVDE V > _______________________________________________ > Cheetahtemplate-discuss mailing list > Che...@li... > https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss |