Looking for very light weight template library (not framework)

Erik Max Francis max at alcyone.com
Thu Mar 6 21:43:53 EST 2008


Malcolm Greene wrote:

> New to Python and looking for a template library that allows Python
> expressions embedded in strings to be evaluated in place. In other words
> something more powerful than the basic "%(variable)s" or "$variable"
> (Template) capabilities.
> 
> I know that some of the web frameworks support this type of template
> capability but I don't need a web framework, just a library that
> supports embedded expression evaluation.
	...
> Any suggestions appreciated.

EmPy may work:

	http://www.alcyone.com/software/empy/

Your template would look something like:

myOutput = """\

The total cost is @invoice.total.

This order will be shipped to @invoice.contact at the following
address:

@invoice.address

This order was generated at @time.ctime()
"""

This could be instrumented with something as simple as:

 >>> import em, time
 >>> myOutput = """\
...
... The total cost is @invoice.total.
...
... This order will be shipped to @invoice.contact at the following
... address:
...
... @invoice.address
...
... This order was generated at @time.ctime()
... """
 >>>
 >>> class Invoice: pass
...
 >>> invoice = Invoice()
 >>> invoice.total = "$123.45"
 >>> invoice.contact = "Jack McCoy"
 >>> invoice.address = "1 Police Plaza\nNew York City, NY"
 >>> print em.expand(myOutput, globals())

The total cost is $123.45.

This order will be shipped to Jack McCoy at the following
address:

1 Police Plaza
New York City, NY

This order was generated at Thu Mar  6 18:41:58 2008

-- 
Erik Max Francis && max at alcyone.com && http://www.alcyone.com/max/
  San Jose, CA, USA && 37 18 N 121 57 W && AIM, Y!M erikmaxfrancis
   There's a reason why we / Keep chasing morning
    -- Sandra St. Victor



More information about the Python-list mailing list