ANN: pyTenjin 0.8.0 - much faster template engine than Django

K

kwatch

I have released pyTenjin 0.8.0
http://www.kuwata-lab.com/tenjin/

pyTenjin is the fastest template engine for Python.

* Very fast (about 10 times faster than Django template engine)
* Easy to learn (no need to learn template-original language)
* Full-featured (layout template, partial template,
preprocessing, ...)
* Very small (only 1,200 lines, one file)
* Goole AppEngine supported.
http://www.kuwata-lab.com/tenjin/pytenjin-faq.html#faq-google-appengine



Changes from 0.7.0
------------------

* !!IMPORTANT!!
HTML helper function 'tagattr()' is renamed to 'tagattrs()'.
(Notice that new 'tagattr()' is added. See below.)

* 'tagattrs()' is changed to add ' ' (space) at the first character.
ex.
(0.7.0) tagattr(klass='error') #=> 'class="error"'
(0.7.1) tagattrs(klass='error') #=> ' class="error"'

* 'tagattrs()' is changed to handle 'checked', 'selected', and
'disabled' attributes.
ex. ''


Bugfix
------

* !!IMPORTANT!!
Template caching is changed to keep template file's timestamp
instead of create time of cached object. See
http://groups.google.com/group/kuwa.../thread/a0d447c282fb383d#msg_de39557405c9b656
for details. (Thanks Steve)


Enhancements
------------

* Add new HTML helper function 'tagattr()'.
(Notice that 'tagattr()' in 0.7.0 is renamed into 'tagattrs()'.)
ex. ' size="large"'

* Add new HTML helper function 'new_cycle()'.
ex. 'even'

* (experimental) Template converter is changed to add dummy if-
statement
when first Python statement is indented. (Thanks Steve)
ex.
$ cat ex.pyhtml
<html>
<body>
<ul>
<?py for item in items: ?>
<li>${item}</li>
<?py #end ?>
</ul>
</body>
</html>
$ pytenjin -sb ex.pyhtml
_buf.extend(('''<html>
<body>
<ul>\n''', ));
if True: ## dummy
for item in items:
_buf.extend((''' <li>''', escape(to_str(item)),
'''</li>\n''', ));
#end
_buf.extend((''' </ul>
</body>
</html>\n''', ));

* Update User's Guide and FAQ.


Have fun!
 
I

Igor Katson

kwatch said:
I have released pyTenjin 0.8.0
Thanks for your project. I have used it a little, and there is a
question to you.

import tenjin
from tenjin.helpers import *
shared_cache = tenjin.GaeMemcacheCacheStorage()
engine = tenjin.Engine(cache=shared_cache)

1. Why should I import tenjin.helpers if I don't use the helpers in my code?
2. Why does the code not work if I don't import the helpers?

I think you should manage this issue inside the library.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,982
Messages
2,570,190
Members
46,736
Latest member
zacharyharris

Latest Threads

Top