~ubuntu-branches/ubuntu/raring/genshi/raring-proposed

« back to all changes in this revision

Viewing changes to doc/api/genshi.template.eval.Expression-class.html

  • Committer: Bazaar Package Importer
  • Author(s): Arnaud Fontaine
  • Date: 2007-04-16 17:49:03 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20070416174903-x2p3n9g890v18d0m
Tags: 0.4-1
* New upstream release.
* Remove useless python-markup transition package.
* Add Provides against python-markup.
* Add doc-base.
* Add depends against python-xml.
* Add suggests to python-setuptools.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="ascii"?>
 
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
3
          "DTD/xhtml1-transitional.dtd">
 
4
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 
5
<head>
 
6
  <title>genshi.template.eval.Expression</title>
 
7
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
 
8
  <script type="text/javascript" src="epydoc.js"></script>
 
9
</head>
 
10
 
 
11
<body bgcolor="white" text="black" link="blue" vlink="#204080"
 
12
      alink="#204080">
 
13
<!-- ==================== NAVIGATION BAR ==================== -->
 
14
<table class="navbar" border="0" width="100%" cellpadding="0"
 
15
       bgcolor="#a0c0ff" cellspacing="0">
 
16
  <tr valign="middle">
 
17
  <!-- Home link -->
 
18
      <th>&nbsp;&nbsp;&nbsp;<a
 
19
        href="genshi-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
 
20
 
 
21
  <!-- Tree link -->
 
22
      <th>&nbsp;&nbsp;&nbsp;<a
 
23
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
 
24
 
 
25
  <!-- Index link -->
 
26
      <th>&nbsp;&nbsp;&nbsp;<a
 
27
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
 
28
 
 
29
  <!-- Help link -->
 
30
      <th>&nbsp;&nbsp;&nbsp;<a
 
31
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
 
32
 
 
33
  <!-- Project homepage -->
 
34
      <th class="navbar" align="right" width="100%">
 
35
        <table border="0" cellpadding="0" cellspacing="0">
 
36
          <tr><th class="navbar" align="center"
 
37
            ><a class="navbar" target="_top" href="../index.html">Documentation Index</a></th>
 
38
          </tr></table></th>
 
39
  </tr>
 
40
</table>
 
41
<table width="100%" cellpadding="0" cellspacing="0">
 
42
  <tr valign="top">
 
43
    <td width="100%">
 
44
      <span class="breadcrumbs">
 
45
        <a href="genshi-module.html">Package&nbsp;genshi</a> ::
 
46
        <a href="genshi.template-module.html">Package&nbsp;template</a> ::
 
47
        <a href="genshi.template.eval-module.html">Module&nbsp;eval</a> ::
 
48
        Class&nbsp;Expression
 
49
      </span>
 
50
    </td>
 
51
    <td>
 
52
      <table cellpadding="0" cellspacing="0">
 
53
        <!-- hide/show private -->
 
54
      </table>
 
55
    </td>
 
56
  </tr>
 
57
</table>
 
58
<!-- ==================== CLASS DESCRIPTION ==================== -->
 
59
<h1 class="epydoc">Class Expression</h1><br /><br />
 
60
<pre class="base-tree">
 
61
object --+    
 
62
         |    
 
63
      <a href="genshi.template.eval.Code-class.html">Code</a> --+
 
64
             |
 
65
            <strong class="uidshort">Expression</strong>
 
66
</pre>
 
67
 
 
68
<hr />
 
69
<p>Evaluates Python expressions used in templates.</p>
 
70
<pre class="py-doctest">
 
71
<span class="py-prompt">&gt;&gt;&gt; </span>data = dict(test=<span class="py-string">'Foo'</span>, <span class="py-builtin">items</span>=[1, 2, 3], dict={<span class="py-string">'some'</span>: <span class="py-string">'thing'</span>})
 
72
<span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'test'</span>).evaluate(data)
 
73
<span class="py-output">'Foo'</span></pre>
 
74
<pre class="py-doctest">
 
75
<span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'items[0]'</span>).evaluate(data)
 
76
<span class="py-output">1</span>
 
77
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'items[-1]'</span>).evaluate(data)
 
78
<span class="py-output">3</span>
 
79
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'dict[&quot;some&quot;]'</span>).evaluate(data)
 
80
<span class="py-output">'thing'</span></pre>
 
81
<p>Similar to e.g. Javascript, expressions in templates can use the dot
 
82
notation for attribute access to access items in mappings:</p>
 
83
<pre class="py-doctest">
 
84
<span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'dict.some'</span>).evaluate(data)
 
85
<span class="py-output">'thing'</span></pre>
 
86
<p>This also works the other way around: item access can be used to access
 
87
any object attribute:</p>
 
88
<pre class="py-doctest">
 
89
<span class="py-prompt">&gt;&gt;&gt; </span><span class="py-keyword">class</span> <span class="py-defname">MyClass</span>(object):
 
90
<span class="py-more">... </span>    myattr = <span class="py-string">'Bar'</span>
 
91
<span class="py-prompt">&gt;&gt;&gt; </span>data = dict(mine=MyClass(), key=<span class="py-string">'myattr'</span>)
 
92
<span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'mine.myattr'</span>).evaluate(data)
 
93
<span class="py-output">'Bar'</span>
 
94
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'mine[&quot;myattr&quot;]'</span>).evaluate(data)
 
95
<span class="py-output">'Bar'</span>
 
96
<span class="py-output"></span><span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'mine[key]'</span>).evaluate(data)
 
97
<span class="py-output">'Bar'</span></pre>
 
98
<p>All of the standard Python operators are available to template expressions.
 
99
Built-in functions such as <tt class="rst-docutils literal"><span class="pre">len()</span></tt> are also available in template
 
100
expressions:</p>
 
101
<pre class="py-doctest">
 
102
<span class="py-prompt">&gt;&gt;&gt; </span>data = dict(<span class="py-builtin">items</span>=[1, 2, 3])
 
103
<span class="py-prompt">&gt;&gt;&gt; </span>Expression(<span class="py-string">'len(items)'</span>).evaluate(data)
 
104
<span class="py-output">3</span></pre><br /><br />
 
105
 
 
106
<!-- ==================== INSTANCE METHODS ==================== -->
 
107
<a name="section-InstanceMethods"></a>
 
108
<table class="summary" border="1" cellpadding="3"
 
109
       cellspacing="0" width="100%" bgcolor="white">
 
110
<tr bgcolor="#70b0f0" class="table-header">
 
111
  <td align="left" colspan="2" class="table-header">
 
112
    <span class="table-header">Instance Methods</span></td>
 
113
</tr>
 
114
<tr>
 
115
    <td width="15%" align="right" valign="top" class="summary">
 
116
      <span class="summary-type">&nbsp;</span>
 
117
    </td><td class="summary">
 
118
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
 
119
        <tr>
 
120
          <td><span class="summary-sig"><a href="genshi.template.eval.Expression-class.html#evaluate" class="summary-sig-name">evaluate</a>(<span class="summary-sig-arg">self</span>,
 
121
        <span class="summary-sig-arg">data</span>)</span><br />
 
122
      Evaluate the expression against the given data dictionary.</td>
 
123
          <td align="right" valign="top">
 
124
            
 
125
            
 
126
          </td>
 
127
        </tr>
 
128
      </table>
 
129
      
 
130
    </td>
 
131
  </tr>
 
132
  <tr>
 
133
    <td colspan="2" class="summary">
 
134
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="genshi.template.eval.Code-class.html">Code</a></code></b>:
 
135
      <code><a href="genshi.template.eval.Code-class.html#__eq__">__eq__</a></code>,
 
136
      <code><a href="genshi.template.eval.Code-class.html#__hash__">__hash__</a></code>,
 
137
      <code><a href="genshi.template.eval.Code-class.html#__init__">__init__</a></code>,
 
138
      <code><a href="genshi.template.eval.Code-class.html#__ne__">__ne__</a></code>,
 
139
      <code><a href="genshi.template.eval.Code-class.html#__repr__">__repr__</a></code>
 
140
      </p>
 
141
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
 
142
      <code>__delattr__</code>,
 
143
      <code>__getattribute__</code>,
 
144
      <code>__new__</code>,
 
145
      <code>__reduce__</code>,
 
146
      <code>__reduce_ex__</code>,
 
147
      <code>__setattr__</code>,
 
148
      <code>__str__</code>
 
149
      </p>
 
150
    </td>
 
151
  </tr>
 
152
</table>
 
153
<!-- ==================== CLASS VARIABLES ==================== -->
 
154
<a name="section-ClassVariables"></a>
 
155
<table class="summary" border="1" cellpadding="3"
 
156
       cellspacing="0" width="100%" bgcolor="white">
 
157
<tr bgcolor="#70b0f0" class="table-header">
 
158
  <td align="left" colspan="2" class="table-header">
 
159
    <span class="table-header">Class Variables</span></td>
 
160
</tr>
 
161
<tr>
 
162
    <td width="15%" align="right" valign="top" class="summary">
 
163
      <span class="summary-type">&nbsp;</span>
 
164
    </td><td class="summary">
 
165
        <a name="mode"></a><span class="summary-name">mode</span> = <code title="'eval'"><code class="variable-quote">'</code><code class="variable-string">eval</code><code class="variable-quote">'</code></code>
 
166
    </td>
 
167
  </tr>
 
168
</table>
 
169
<!-- ==================== PROPERTIES ==================== -->
 
170
<a name="section-Properties"></a>
 
171
<table class="summary" border="1" cellpadding="3"
 
172
       cellspacing="0" width="100%" bgcolor="white">
 
173
<tr bgcolor="#70b0f0" class="table-header">
 
174
  <td align="left" colspan="2" class="table-header">
 
175
    <span class="table-header">Properties</span></td>
 
176
</tr>
 
177
  <tr>
 
178
    <td colspan="2" class="summary">
 
179
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="genshi.template.eval.Code-class.html">Code</a></code></b>:
 
180
      <code><a href="genshi.template.eval.Code-class.html#code">code</a></code>,
 
181
      <code><a href="genshi.template.eval.Code-class.html#source">source</a></code>
 
182
      </p>
 
183
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
 
184
      <code>__class__</code>
 
185
      </p>
 
186
    </td>
 
187
  </tr>
 
188
</table>
 
189
<!-- ==================== METHOD DETAILS ==================== -->
 
190
<a name="section-MethodDetails"></a>
 
191
<table class="details" border="1" cellpadding="3"
 
192
       cellspacing="0" width="100%" bgcolor="white">
 
193
<tr bgcolor="#70b0f0" class="table-header">
 
194
  <td align="left" colspan="2" class="table-header">
 
195
    <span class="table-header">Method Details</span></td>
 
196
</tr>
 
197
</table>
 
198
<a name="evaluate"></a>
 
199
<div>
 
200
<table class="details" border="1" cellpadding="3"
 
201
       cellspacing="0" width="100%" bgcolor="white">
 
202
<tr><td>
 
203
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
 
204
  <tr valign="top"><td>
 
205
  <h3 class="epydoc"><span class="sig"><span class="sig-name">evaluate</span>(<span class="sig-arg">self</span>,
 
206
        <span class="sig-arg">data</span>)</span>
 
207
  </h3>
 
208
  </td><td align="right" valign="top"
 
209
    >&nbsp;
 
210
    </td>
 
211
  </table>
 
212
  
 
213
  Evaluate the expression against the given data dictionary.
 
214
  <dl class="fields">
 
215
    <dt>Parameters:</dt>
 
216
    <dd><ul class="nomargin-top">
 
217
        <li><strong class="pname"><code>data</code></strong> - a mapping containing the data to evaluate against</li>
 
218
    </ul></dd>
 
219
    <dt>Returns:</dt>
 
220
        <dd>the result of the evaluation</dd>
 
221
  </dl>
 
222
</td></tr></table>
 
223
</div>
 
224
<br />
 
225
<!-- ==================== NAVIGATION BAR ==================== -->
 
226
<table class="navbar" border="0" width="100%" cellpadding="0"
 
227
       bgcolor="#a0c0ff" cellspacing="0">
 
228
  <tr valign="middle">
 
229
  <!-- Home link -->
 
230
      <th>&nbsp;&nbsp;&nbsp;<a
 
231
        href="genshi-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
 
232
 
 
233
  <!-- Tree link -->
 
234
      <th>&nbsp;&nbsp;&nbsp;<a
 
235
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
 
236
 
 
237
  <!-- Index link -->
 
238
      <th>&nbsp;&nbsp;&nbsp;<a
 
239
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
 
240
 
 
241
  <!-- Help link -->
 
242
      <th>&nbsp;&nbsp;&nbsp;<a
 
243
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
 
244
 
 
245
  <!-- Project homepage -->
 
246
      <th class="navbar" align="right" width="100%">
 
247
        <table border="0" cellpadding="0" cellspacing="0">
 
248
          <tr><th class="navbar" align="center"
 
249
            ><a class="navbar" target="_top" href="../index.html">Documentation Index</a></th>
 
250
          </tr></table></th>
 
251
  </tr>
 
252
</table>
 
253
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
 
254
  <tr>
 
255
    <td align="left" class="footer">
 
256
    Generated by Epydoc 3.0beta1 on Mon Apr 16 16:02:14 2007
 
257
    </td>
 
258
    <td align="right" class="footer">
 
259
      <a href="http://epydoc.sourceforge.net">http://epydoc.sourceforge.net</a>
 
260
    </td>
 
261
  </tr>
 
262
</table>
 
263
 
 
264
<script type="text/javascript">
 
265
  <!--
 
266
  // Private objects are initially displayed (because if
 
267
  // javascript is turned off then we want them to be
 
268
  // visible); but by default, we want to hide them.  So hide
 
269
  // them unless we have a cookie that says to show them.
 
270
  checkCookie()
 
271
  // -->
 
272
</script>
 
273
  
 
274
</body>
 
275
</html>