<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Tempita</title>
	<atom:link href="http://blog.ianbicking.org/2007/08/06/tempita/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ianbicking.org/2007/08/06/tempita/</link>
	<description></description>
	<lastBuildDate>Fri, 06 May 2011 07:16:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: John Lee</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-951</link>
		<dc:creator>John Lee</dc:creator>
		<pubDate>Sun, 16 Sep 2007 12:59:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-951</guid>
		<description>Not sure what you mean about &quot;better error messages&quot;.  preppy (the current version) gives ordinary Python tracebacks with correct preppy source lines and preppy source line numbers.

It also has a feature where you can declare template signatures in the template {{def a, b, spam=&#039;eggs&#039;}} (I forget the precise syntax that was chosen, but very similar to that), and call templates like ordinary Python functions (I don&#039;t think this feature is documented...).  Otherwise the ordinary usage is import preppy; print preppy.getModule(&#039;mytemplate&#039;).getOutput(dict(foo=&#039;bar&#039;)).

It was *going* to have a feature similar to PTL&#039;s automatic escaping (using a different Python type for markup), but sadly I think that never got implemented (I think something went in in its place, but not sure exactly what).

One possible problem is the use of pycodegen and pyassem, which I think are strictly not public APIs of the stdlib.  But I guess as long as ReportLab continues to maintain it (certainly preppy is used a lot inside ReportLab), that&#039;s not a problem.</description>
		<content:encoded><![CDATA[<p>Not sure what you mean about &#8220;better error messages&#8221;.  preppy (the current version) gives ordinary Python tracebacks with correct preppy source lines and preppy source line numbers.</p>

<p>It also has a feature where you can declare template signatures in the template {{def a, b, spam=&#8217;eggs&#8217;}} (I forget the precise syntax that was chosen, but very similar to that), and call templates like ordinary Python functions (I don&#8217;t think this feature is documented&#8230;).  Otherwise the ordinary usage is import preppy; print preppy.getModule(&#8216;mytemplate&#8217;).getOutput(dict(foo=&#8217;bar&#8217;)).</p>

<p>It was <em>going</em> to have a feature similar to PTL&#8217;s automatic escaping (using a different Python type for markup), but sadly I think that never got implemented (I think something went in in its place, but not sure exactly what).</p>

<p>One possible problem is the use of pycodegen and pyassem, which I think are strictly not public APIs of the stdlib.  But I guess as long as ReportLab continues to maintain it (certainly preppy is used a lot inside ReportLab), that&#8217;s not a problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-943</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Sun, 16 Sep 2007 02:18:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-943</guid>
		<description>You are right, that does look extremely similar.  Mine doesn&#039;t compile to Python (I far prefer better error messages to the speed), and Python blocks are just slightly different syntactically.  But otherwise, quite the same.</description>
		<content:encoded><![CDATA[<p>You are right, that does look extremely similar.  Mine doesn&#8217;t compile to Python (I far prefer better error messages to the speed), and Python blocks are just slightly different syntactically.  But otherwise, quite the same.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Lee</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-939</link>
		<dc:creator>John Lee</dc:creator>
		<pubDate>Sat, 15 Sep 2007 20:51:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-939</guid>
		<description>You just reinvented preppy:

http://www.reportlab.org/preppy.html

http://www.reportlab.org/downloads.html


There are some oddities about it, but essentially the language appears the same.  The docs are likely out of date.</description>
		<content:encoded><![CDATA[<p>You just reinvented preppy:</p>

<p><a href="http://www.reportlab.org/preppy.html" rel="nofollow">http://www.reportlab.org/preppy.html</a></p>

<p><a href="http://www.reportlab.org/downloads.html" rel="nofollow">http://www.reportlab.org/downloads.html</a></p>

<p>There are some oddities about it, but essentially the language appears the same.  The docs are likely out of date.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-90</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Wed, 08 Aug 2007 15:45:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-90</guid>
		<description>Generating code is a lot of what PasteScript does.  But really it&#039;s not that bad.</description>
		<content:encoded><![CDATA[<p>Generating code is a lot of what PasteScript does.  But really it&#8217;s not that bad.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Withers</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-89</link>
		<dc:creator>Chris Withers</dc:creator>
		<pubDate>Wed, 08 Aug 2007 12:18:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-89</guid>
		<description>Correct, I don&#039;t believe in mixing template source with code that manipulates, ironically, for the same reason you give: I find it very confusing to have to try and determine what&#039;s &quot;template&quot; and what&#039;s &quot;code&quot;, especially when generating plain-text things like email where layout of the source is important.

I find the idea of the template being used to generate python source code too scary to contemplate ;-)</description>
		<content:encoded><![CDATA[<p>Correct, I don&#8217;t believe in mixing template source with code that manipulates, ironically, for the same reason you give: I find it very confusing to have to try and determine what&#8217;s &#8220;template&#8221; and what&#8217;s &#8220;code&#8221;, especially when generating plain-text things like email where layout of the source is important.</p>

<p>I find the idea of the template being used to generate python source code too scary to contemplate ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Bicking</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-87</link>
		<dc:creator>Ian Bicking</dc:creator>
		<pubDate>Tue, 07 Aug 2007 15:01:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-87</guid>
		<description>It looks like Twiddler is a template driven by external code?  That&#039;s definitely not what I&#039;d be looking for -- I want self-describing templates, that would usually be edited by a programmer anyway.  Designers don&#039;t edit templates for generating Python source code ;)

I&#039;ve also found template languages of this style hard to follow, because key information is spread between two separate files.</description>
		<content:encoded><![CDATA[<p>It looks like Twiddler is a template driven by external code?  That&#8217;s definitely not what I&#8217;d be looking for &#8212; I want self-describing templates, that would usually be edited by a programmer anyway.  Designers don&#8217;t edit templates for generating Python source code ;)</p>

<p>I&#8217;ve also found template languages of this style hard to follow, because key information is spread between two separate files.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Withers</title>
		<link>http://blog.ianbicking.org/2007/08/06/tempita/comment-page-1/#comment-82</link>
		<dc:creator>Chris Withers</dc:creator>
		<pubDate>Tue, 07 Aug 2007 13:06:19 +0000</pubDate>
		<guid isPermaLink="false">http://blog.ianbicking.org/2007/08/06/tempita/#comment-82</guid>
		<description>I&#039;d be interested to know what you thought of Twiddler:

http://www.simplistix.co.uk/software/python/twiddler

Using the plain text input would likely give you what you&#039;re after in terms of simplicity, and then all your python goes in whatver python file you choose...</description>
		<content:encoded><![CDATA[<p>I&#8217;d be interested to know what you thought of Twiddler:</p>

<p><a href="http://www.simplistix.co.uk/software/python/twiddler" rel="nofollow">http://www.simplistix.co.uk/software/python/twiddler</a></p>

<p>Using the plain text input would likely give you what you&#8217;re after in terms of simplicity, and then all your python goes in whatver python file you choose&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.989 seconds -->

