Re: Proposed feature: #include inline

paul jobs <[email protected]> Fri, 17 Jul 2009 00:25:44 -0700
Newsgroups gmane.comp.python.cheetah
Message-ID <[email protected]>
Webpy does thisr_include = re_compile(r'(?!\\)#include \"(.*?)\"', re.M)
def __compiletemplate(template, base=None, isString=False):
    if isString:
        text = template
    else:
        text = open('templates/'+template).read()
    # implement #include at compile-time
    def do_include(match):
        text = open('templates/'+match.groups()[0]).read()
        return text
    while r_include.findall(text):
        text = r_include.sub(do_include, text)
    #text = '#encoding UTF-8\n'+text
    execspace = _compiletemplate.bases.copy()
    tmpl_compiler = Compiler(source=text, mainClassName='GenTemplate')
    tmpl_compiler.addImportedVarNames(execspace.keys())
    exec str(tmpl_compiler) in execspace
    if base:
        _compiletemplate.bases[base] = execspace['GenTemplate']

    return execspace['GenTemplate']



On Tue, Jul 14, 2009 at 4:57 PM, Tavis Rudd <[email protected]> wrote:

> I don't like #include in general, but I can't see anything wrong with
> this addition to it.
>
> Anyone else got a good suggestion for an alternate name that makes it very
> clear that this happens at compile time?
>
> Tavis
>
> On Tue, 14 Jul 2009, R. Tyler Ballance wrote:
>
> > I'm not going to write up a CHEP for this just yet, but I came across a
> > usecase for `#include inline` version `#include raw` today.
> >
> > When watching a production server run through a particular template I
> > realized that we were using `#include raw` far too much, resulting in a
> > large amount of open(2) and read(2) calls (to be expected, duh).
> >
> > What we *really* want to do however, is an `#include inline` which would
> > be processed and the contents of the included file inlined at *compile
> > time* instead of raw's inclusion at run time.
> >
> > Thoughts?
> >
> > Tavis, if you've no enormous objections, I think this would be a
> > reasonable addition.
> >
> >
> > Cheers
> >
> > -R. Tyler Ballance
> > Slide, Inc.
> >
>
>
> ------------------------------------------------------------------------------
> Enter the BlackBerry Developer Challenge
> This is your chance to win up to $100,000 in prizes! For a limited time,
> vendors submitting new applications to BlackBerry App World(TM) will have
> the opportunity to enter the BlackBerry Developer Challenge. See full prize
> details at: http://p.sf.net/sfu/Challenge
> _______________________________________________
> Cheetahtemplate-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss
>



-- 
BidEgg - Worlds best low price Auction site
http://bidegg.com

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge

_______________________________________________
Cheetahtemplate-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cheetahtemplate-discuss