##// END OF EJS Templates
tests: remove #! from primes.py in test-highlight.t...
Augie Fackler -
r32936:edbd60e3 default
parent child Browse files
Show More
@@ -20,8 +20,6 b''
20 create random Python file to exercise Pygments
20 create random Python file to exercise Pygments
21
21
22 $ cat <<EOF > primes.py
22 $ cat <<EOF > primes.py
23 > #!/usr/bin/env python
24 >
25 > """Fun with generators. Corresponding Haskell implementation:
23 > """Fun with generators. Corresponding Haskell implementation:
26 >
24 >
27 > primes = 2 : sieve [3, 5..]
25 > primes = 2 : sieve [3, 5..]
@@ -76,7 +74,7 b' hgweb filerevision, html'
76 <script type="text/javascript" src="/static/mercurial.js"></script>
74 <script type="text/javascript" src="/static/mercurial.js"></script>
77
75
78 <link rel="stylesheet" href="/highlightcss" type="text/css" />
76 <link rel="stylesheet" href="/highlightcss" type="text/css" />
79 <title>test: 06824edf55d0 primes.py</title>
77 <title>test: 1af356141006 primes.py</title>
80 </head>
78 </head>
81 <body>
79 <body>
82
80
@@ -114,7 +112,7 b' hgweb filerevision, html'
114 <div class="main">
112 <div class="main">
115 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
113 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
116 <h3>
114 <h3>
117 view primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
115 view primes.py @ 0:<a href="/rev/1af356141006">1af356141006</a>
118 <span class="tag">tip</span>
116 <span class="tag">tip</span>
119 </h3>
117 </h3>
120
118
@@ -151,39 +149,37 b' hgweb filerevision, html'
151 <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div>
149 <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="javascript:toggleLinewrap()">on</a></div>
152 <div class="sourcefirst"> line source</div>
150 <div class="sourcefirst"> line source</div>
153 <pre class="sourcelines stripes4 wrap bottomline" data-logurl="/log/tip/primes.py" data-ishead="1">
151 <pre class="sourcelines stripes4 wrap bottomline" data-logurl="/log/tip/primes.py" data-ishead="1">
154 <span id="l1"><span class="c">#!/usr/bin/env python</span></span><a href="#l1"></a>
152 <span id="l1"><span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></span><a href="#l1"></a>
155 <span id="l2"></span><a href="#l2"></a>
153 <span id="l2"></span><a href="#l2"></a>
156 <span id="l3"><span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></span><a href="#l3"></a>
154 <span id="l3"><span class="sd">primes = 2 : sieve [3, 5..]</span></span><a href="#l3"></a>
157 <span id="l4"></span><a href="#l4"></a>
155 <span id="l4"><span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></span><a href="#l4"></a>
158 <span id="l5"><span class="sd">primes = 2 : sieve [3, 5..]</span></span><a href="#l5"></a>
156 <span id="l5"><span class="sd">&quot;&quot;&quot;</span></span><a href="#l5"></a>
159 <span id="l6"><span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></span><a href="#l6"></a>
157 <span id="l6"></span><a href="#l6"></a>
160 <span id="l7"><span class="sd">&quot;&quot;&quot;</span></span><a href="#l7"></a>
158 <span id="l7"><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></span><a href="#l7"></a>
161 <span id="l8"></span><a href="#l8"></a>
159 <span id="l8"></span><a href="#l8"></a>
162 <span id="l9"><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></span><a href="#l9"></a>
160 <span id="l9"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l9"></a>
163 <span id="l10"></span><a href="#l10"></a>
161 <span id="l10"> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></span><a href="#l10"></a>
164 <span id="l11"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l11"></a>
162 <span id="l11"> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l11"></a>
165 <span id="l12"> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></span><a href="#l12"></a>
163 <span id="l12"> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></span><a href="#l12"></a>
166 <span id="l13"> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l13"></a>
164 <span id="l13"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l13"></a>
167 <span id="l14"> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></span><a href="#l14"></a>
165 <span id="l14"> <span class="c"># infinite recursion.</span></span><a href="#l14"></a>
168 <span id="l15"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l15"></a>
166 <span id="l15"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l15"></a>
169 <span id="l16"> <span class="c"># infinite recursion.</span></span><a href="#l16"></a>
167 <span id="l16"> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l16"></a>
170 <span id="l17"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l17"></a>
168 <span id="l17"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l17"></a>
171 <span id="l18"> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l18"></a>
169 <span id="l18"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l18"></a>
172 <span id="l19"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l19"></a>
170 <span id="l19"></span><a href="#l19"></a>
173 <span id="l20"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l20"></a>
171 <span id="l20"> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></span><a href="#l20"></a>
174 <span id="l21"></span><a href="#l21"></a>
172 <span id="l21"> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l21"></a>
175 <span id="l22"> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></span><a href="#l22"></a>
173 <span id="l22"></span><a href="#l22"></a>
176 <span id="l23"> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l23"></a>
174 <span id="l23"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l23"></a>
177 <span id="l24"></span><a href="#l24"></a>
175 <span id="l24"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l24"></a>
178 <span id="l25"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l25"></a>
176 <span id="l25"> <span class="kn">try</span><span class="p">:</span></span><a href="#l25"></a>
179 <span id="l26"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l26"></a>
177 <span id="l26"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l26"></a>
180 <span id="l27"> <span class="kn">try</span><span class="p">:</span></span><a href="#l27"></a>
178 <span id="l27"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l27"></a>
181 <span id="l28"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l28"></a>
179 <span id="l28"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l28"></a>
182 <span id="l29"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l29"></a>
180 <span id="l29"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l29"></a>
183 <span id="l30"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l30"></a>
181 <span id="l30"> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></span><a href="#l30"></a>
184 <span id="l31"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l31"></a>
182 <span id="l31"></span><a href="#l31"></a></pre>
185 <span id="l32"> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></span><a href="#l32"></a>
186 <span id="l33"></span><a href="#l33"></a></pre>
187 </div>
183 </div>
188
184
189 <script type="text/javascript" src="/static/followlines.js"></script>
185 <script type="text/javascript" src="/static/followlines.js"></script>
@@ -250,7 +246,7 b' hgweb fileannotate, html'
250 <div class="main">
246 <div class="main">
251 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
247 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
252 <h3>
248 <h3>
253 annotate primes.py @ 0:<a href="/rev/06824edf55d0">06824edf55d0</a>
249 annotate primes.py @ 0:<a href="/rev/1af356141006">1af356141006</a>
254 <span class="tag">tip</span>
250 <span class="tag">tip</span>
255 </h3>
251 </h3>
256
252
@@ -295,36 +291,36 b' hgweb fileannotate, html'
295
291
296 <tr id="l1" class="thisrev">
292 <tr id="l1" class="thisrev">
297 <td class="annotate parity0">
293 <td class="annotate parity0">
298 <a href="/annotate/06824edf55d0/primes.py#l1">
294 <a href="/annotate/1af356141006/primes.py#l1">
299 0
295 0
300 </a>
296 </a>
301 <div class="annotate-info">
297 <div class="annotate-info">
302 <div>
298 <div>
303 <a href="/annotate/06824edf55d0/primes.py#l1">
299 <a href="/annotate/1af356141006/primes.py#l1">
304 06824edf55d0</a>
300 1af356141006</a>
305 a
301 a
306 </div>
302 </div>
307 <div><em>&#116;&#101;&#115;&#116;</em></div>
303 <div><em>&#116;&#101;&#115;&#116;</em></div>
308 <div>parents: </div>
304 <div>parents: </div>
309 <a href="/diff/06824edf55d0/primes.py">diff</a>
305 <a href="/diff/1af356141006/primes.py">diff</a>
310 <a href="/rev/06824edf55d0">changeset</a>
306 <a href="/rev/1af356141006">changeset</a>
311 </div>
307 </div>
312 </td>
308 </td>
313 <td class="source"><a href="#l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td>
309 <td class="source"><a href="#l1"> 1</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
314 </tr>
310 </tr>
315 <tr id="l2" class="thisrev">
311 <tr id="l2" class="thisrev">
316 <td class="annotate parity0">
312 <td class="annotate parity0">
317
313
318 <div class="annotate-info">
314 <div class="annotate-info">
319 <div>
315 <div>
320 <a href="/annotate/06824edf55d0/primes.py#l2">
316 <a href="/annotate/1af356141006/primes.py#l2">
321 06824edf55d0</a>
317 1af356141006</a>
322 a
318 a
323 </div>
319 </div>
324 <div><em>&#116;&#101;&#115;&#116;</em></div>
320 <div><em>&#116;&#101;&#115;&#116;</em></div>
325 <div>parents: </div>
321 <div>parents: </div>
326 <a href="/diff/06824edf55d0/primes.py">diff</a>
322 <a href="/diff/1af356141006/primes.py">diff</a>
327 <a href="/rev/06824edf55d0">changeset</a>
323 <a href="/rev/1af356141006">changeset</a>
328 </div>
324 </div>
329 </td>
325 </td>
330 <td class="source"><a href="#l2"> 2</a> </td>
326 <td class="source"><a href="#l2"> 2</a> </td>
@@ -334,99 +330,99 b' hgweb fileannotate, html'
334
330
335 <div class="annotate-info">
331 <div class="annotate-info">
336 <div>
332 <div>
337 <a href="/annotate/06824edf55d0/primes.py#l3">
333 <a href="/annotate/1af356141006/primes.py#l3">
338 06824edf55d0</a>
334 1af356141006</a>
339 a
335 a
340 </div>
336 </div>
341 <div><em>&#116;&#101;&#115;&#116;</em></div>
337 <div><em>&#116;&#101;&#115;&#116;</em></div>
342 <div>parents: </div>
338 <div>parents: </div>
343 <a href="/diff/06824edf55d0/primes.py">diff</a>
339 <a href="/diff/1af356141006/primes.py">diff</a>
344 <a href="/rev/06824edf55d0">changeset</a>
340 <a href="/rev/1af356141006">changeset</a>
345 </div>
341 </div>
346 </td>
342 </td>
347 <td class="source"><a href="#l3"> 3</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
343 <td class="source"><a href="#l3"> 3</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
348 </tr>
344 </tr>
349 <tr id="l4" class="thisrev">
345 <tr id="l4" class="thisrev">
350 <td class="annotate parity0">
346 <td class="annotate parity0">
351
347
352 <div class="annotate-info">
348 <div class="annotate-info">
353 <div>
349 <div>
354 <a href="/annotate/06824edf55d0/primes.py#l4">
350 <a href="/annotate/1af356141006/primes.py#l4">
355 06824edf55d0</a>
351 1af356141006</a>
356 a
352 a
357 </div>
353 </div>
358 <div><em>&#116;&#101;&#115;&#116;</em></div>
354 <div><em>&#116;&#101;&#115;&#116;</em></div>
359 <div>parents: </div>
355 <div>parents: </div>
360 <a href="/diff/06824edf55d0/primes.py">diff</a>
356 <a href="/diff/1af356141006/primes.py">diff</a>
361 <a href="/rev/06824edf55d0">changeset</a>
357 <a href="/rev/1af356141006">changeset</a>
362 </div>
358 </div>
363 </td>
359 </td>
364 <td class="source"><a href="#l4"> 4</a> </td>
360 <td class="source"><a href="#l4"> 4</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
365 </tr>
361 </tr>
366 <tr id="l5" class="thisrev">
362 <tr id="l5" class="thisrev">
367 <td class="annotate parity0">
363 <td class="annotate parity0">
368
364
369 <div class="annotate-info">
365 <div class="annotate-info">
370 <div>
366 <div>
371 <a href="/annotate/06824edf55d0/primes.py#l5">
367 <a href="/annotate/1af356141006/primes.py#l5">
372 06824edf55d0</a>
368 1af356141006</a>
373 a
369 a
374 </div>
370 </div>
375 <div><em>&#116;&#101;&#115;&#116;</em></div>
371 <div><em>&#116;&#101;&#115;&#116;</em></div>
376 <div>parents: </div>
372 <div>parents: </div>
377 <a href="/diff/06824edf55d0/primes.py">diff</a>
373 <a href="/diff/1af356141006/primes.py">diff</a>
378 <a href="/rev/06824edf55d0">changeset</a>
374 <a href="/rev/1af356141006">changeset</a>
379 </div>
375 </div>
380 </td>
376 </td>
381 <td class="source"><a href="#l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
377 <td class="source"><a href="#l5"> 5</a> <span class="sd">&quot;&quot;&quot;</span></td>
382 </tr>
378 </tr>
383 <tr id="l6" class="thisrev">
379 <tr id="l6" class="thisrev">
384 <td class="annotate parity0">
380 <td class="annotate parity0">
385
381
386 <div class="annotate-info">
382 <div class="annotate-info">
387 <div>
383 <div>
388 <a href="/annotate/06824edf55d0/primes.py#l6">
384 <a href="/annotate/1af356141006/primes.py#l6">
389 06824edf55d0</a>
385 1af356141006</a>
390 a
386 a
391 </div>
387 </div>
392 <div><em>&#116;&#101;&#115;&#116;</em></div>
388 <div><em>&#116;&#101;&#115;&#116;</em></div>
393 <div>parents: </div>
389 <div>parents: </div>
394 <a href="/diff/06824edf55d0/primes.py">diff</a>
390 <a href="/diff/1af356141006/primes.py">diff</a>
395 <a href="/rev/06824edf55d0">changeset</a>
391 <a href="/rev/1af356141006">changeset</a>
396 </div>
392 </div>
397 </td>
393 </td>
398 <td class="source"><a href="#l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
394 <td class="source"><a href="#l6"> 6</a> </td>
399 </tr>
395 </tr>
400 <tr id="l7" class="thisrev">
396 <tr id="l7" class="thisrev">
401 <td class="annotate parity0">
397 <td class="annotate parity0">
402
398
403 <div class="annotate-info">
399 <div class="annotate-info">
404 <div>
400 <div>
405 <a href="/annotate/06824edf55d0/primes.py#l7">
401 <a href="/annotate/1af356141006/primes.py#l7">
406 06824edf55d0</a>
402 1af356141006</a>
407 a
403 a
408 </div>
404 </div>
409 <div><em>&#116;&#101;&#115;&#116;</em></div>
405 <div><em>&#116;&#101;&#115;&#116;</em></div>
410 <div>parents: </div>
406 <div>parents: </div>
411 <a href="/diff/06824edf55d0/primes.py">diff</a>
407 <a href="/diff/1af356141006/primes.py">diff</a>
412 <a href="/rev/06824edf55d0">changeset</a>
408 <a href="/rev/1af356141006">changeset</a>
413 </div>
409 </div>
414 </td>
410 </td>
415 <td class="source"><a href="#l7"> 7</a> <span class="sd">&quot;&quot;&quot;</span></td>
411 <td class="source"><a href="#l7"> 7</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
416 </tr>
412 </tr>
417 <tr id="l8" class="thisrev">
413 <tr id="l8" class="thisrev">
418 <td class="annotate parity0">
414 <td class="annotate parity0">
419
415
420 <div class="annotate-info">
416 <div class="annotate-info">
421 <div>
417 <div>
422 <a href="/annotate/06824edf55d0/primes.py#l8">
418 <a href="/annotate/1af356141006/primes.py#l8">
423 06824edf55d0</a>
419 1af356141006</a>
424 a
420 a
425 </div>
421 </div>
426 <div><em>&#116;&#101;&#115;&#116;</em></div>
422 <div><em>&#116;&#101;&#115;&#116;</em></div>
427 <div>parents: </div>
423 <div>parents: </div>
428 <a href="/diff/06824edf55d0/primes.py">diff</a>
424 <a href="/diff/1af356141006/primes.py">diff</a>
429 <a href="/rev/06824edf55d0">changeset</a>
425 <a href="/rev/1af356141006">changeset</a>
430 </div>
426 </div>
431 </td>
427 </td>
432 <td class="source"><a href="#l8"> 8</a> </td>
428 <td class="source"><a href="#l8"> 8</a> </td>
@@ -436,425 +432,391 b' hgweb fileannotate, html'
436
432
437 <div class="annotate-info">
433 <div class="annotate-info">
438 <div>
434 <div>
439 <a href="/annotate/06824edf55d0/primes.py#l9">
435 <a href="/annotate/1af356141006/primes.py#l9">
440 06824edf55d0</a>
436 1af356141006</a>
441 a
437 a
442 </div>
438 </div>
443 <div><em>&#116;&#101;&#115;&#116;</em></div>
439 <div><em>&#116;&#101;&#115;&#116;</em></div>
444 <div>parents: </div>
440 <div>parents: </div>
445 <a href="/diff/06824edf55d0/primes.py">diff</a>
441 <a href="/diff/1af356141006/primes.py">diff</a>
446 <a href="/rev/06824edf55d0">changeset</a>
442 <a href="/rev/1af356141006">changeset</a>
447 </div>
443 </div>
448 </td>
444 </td>
449 <td class="source"><a href="#l9"> 9</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
445 <td class="source"><a href="#l9"> 9</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
450 </tr>
446 </tr>
451 <tr id="l10" class="thisrev">
447 <tr id="l10" class="thisrev">
452 <td class="annotate parity0">
448 <td class="annotate parity0">
453
449
454 <div class="annotate-info">
450 <div class="annotate-info">
455 <div>
451 <div>
456 <a href="/annotate/06824edf55d0/primes.py#l10">
452 <a href="/annotate/1af356141006/primes.py#l10">
457 06824edf55d0</a>
453 1af356141006</a>
458 a
454 a
459 </div>
455 </div>
460 <div><em>&#116;&#101;&#115;&#116;</em></div>
456 <div><em>&#116;&#101;&#115;&#116;</em></div>
461 <div>parents: </div>
457 <div>parents: </div>
462 <a href="/diff/06824edf55d0/primes.py">diff</a>
458 <a href="/diff/1af356141006/primes.py">diff</a>
463 <a href="/rev/06824edf55d0">changeset</a>
459 <a href="/rev/1af356141006">changeset</a>
464 </div>
460 </div>
465 </td>
461 </td>
466 <td class="source"><a href="#l10"> 10</a> </td>
462 <td class="source"><a href="#l10"> 10</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
467 </tr>
463 </tr>
468 <tr id="l11" class="thisrev">
464 <tr id="l11" class="thisrev">
469 <td class="annotate parity0">
465 <td class="annotate parity0">
470
466
471 <div class="annotate-info">
467 <div class="annotate-info">
472 <div>
468 <div>
473 <a href="/annotate/06824edf55d0/primes.py#l11">
469 <a href="/annotate/1af356141006/primes.py#l11">
474 06824edf55d0</a>
470 1af356141006</a>
475 a
471 a
476 </div>
472 </div>
477 <div><em>&#116;&#101;&#115;&#116;</em></div>
473 <div><em>&#116;&#101;&#115;&#116;</em></div>
478 <div>parents: </div>
474 <div>parents: </div>
479 <a href="/diff/06824edf55d0/primes.py">diff</a>
475 <a href="/diff/1af356141006/primes.py">diff</a>
480 <a href="/rev/06824edf55d0">changeset</a>
476 <a href="/rev/1af356141006">changeset</a>
481 </div>
477 </div>
482 </td>
478 </td>
483 <td class="source"><a href="#l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
479 <td class="source"><a href="#l11"> 11</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
484 </tr>
480 </tr>
485 <tr id="l12" class="thisrev">
481 <tr id="l12" class="thisrev">
486 <td class="annotate parity0">
482 <td class="annotate parity0">
487
483
488 <div class="annotate-info">
484 <div class="annotate-info">
489 <div>
485 <div>
490 <a href="/annotate/06824edf55d0/primes.py#l12">
486 <a href="/annotate/1af356141006/primes.py#l12">
491 06824edf55d0</a>
487 1af356141006</a>
492 a
488 a
493 </div>
489 </div>
494 <div><em>&#116;&#101;&#115;&#116;</em></div>
490 <div><em>&#116;&#101;&#115;&#116;</em></div>
495 <div>parents: </div>
491 <div>parents: </div>
496 <a href="/diff/06824edf55d0/primes.py">diff</a>
492 <a href="/diff/1af356141006/primes.py">diff</a>
497 <a href="/rev/06824edf55d0">changeset</a>
493 <a href="/rev/1af356141006">changeset</a>
498 </div>
494 </div>
499 </td>
495 </td>
500 <td class="source"><a href="#l12"> 12</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
496 <td class="source"><a href="#l12"> 12</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
501 </tr>
497 </tr>
502 <tr id="l13" class="thisrev">
498 <tr id="l13" class="thisrev">
503 <td class="annotate parity0">
499 <td class="annotate parity0">
504
500
505 <div class="annotate-info">
501 <div class="annotate-info">
506 <div>
502 <div>
507 <a href="/annotate/06824edf55d0/primes.py#l13">
503 <a href="/annotate/1af356141006/primes.py#l13">
508 06824edf55d0</a>
504 1af356141006</a>
509 a
505 a
510 </div>
506 </div>
511 <div><em>&#116;&#101;&#115;&#116;</em></div>
507 <div><em>&#116;&#101;&#115;&#116;</em></div>
512 <div>parents: </div>
508 <div>parents: </div>
513 <a href="/diff/06824edf55d0/primes.py">diff</a>
509 <a href="/diff/1af356141006/primes.py">diff</a>
514 <a href="/rev/06824edf55d0">changeset</a>
510 <a href="/rev/1af356141006">changeset</a>
515 </div>
511 </div>
516 </td>
512 </td>
517 <td class="source"><a href="#l13"> 13</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
513 <td class="source"><a href="#l13"> 13</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
518 </tr>
514 </tr>
519 <tr id="l14" class="thisrev">
515 <tr id="l14" class="thisrev">
520 <td class="annotate parity0">
516 <td class="annotate parity0">
521
517
522 <div class="annotate-info">
518 <div class="annotate-info">
523 <div>
519 <div>
524 <a href="/annotate/06824edf55d0/primes.py#l14">
520 <a href="/annotate/1af356141006/primes.py#l14">
525 06824edf55d0</a>
521 1af356141006</a>
526 a
522 a
527 </div>
523 </div>
528 <div><em>&#116;&#101;&#115;&#116;</em></div>
524 <div><em>&#116;&#101;&#115;&#116;</em></div>
529 <div>parents: </div>
525 <div>parents: </div>
530 <a href="/diff/06824edf55d0/primes.py">diff</a>
526 <a href="/diff/1af356141006/primes.py">diff</a>
531 <a href="/rev/06824edf55d0">changeset</a>
527 <a href="/rev/1af356141006">changeset</a>
532 </div>
528 </div>
533 </td>
529 </td>
534 <td class="source"><a href="#l14"> 14</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
530 <td class="source"><a href="#l14"> 14</a> <span class="c"># infinite recursion.</span></td>
535 </tr>
531 </tr>
536 <tr id="l15" class="thisrev">
532 <tr id="l15" class="thisrev">
537 <td class="annotate parity0">
533 <td class="annotate parity0">
538
534
539 <div class="annotate-info">
535 <div class="annotate-info">
540 <div>
536 <div>
541 <a href="/annotate/06824edf55d0/primes.py#l15">
537 <a href="/annotate/1af356141006/primes.py#l15">
542 06824edf55d0</a>
538 1af356141006</a>
543 a
539 a
544 </div>
540 </div>
545 <div><em>&#116;&#101;&#115;&#116;</em></div>
541 <div><em>&#116;&#101;&#115;&#116;</em></div>
546 <div>parents: </div>
542 <div>parents: </div>
547 <a href="/diff/06824edf55d0/primes.py">diff</a>
543 <a href="/diff/1af356141006/primes.py">diff</a>
548 <a href="/rev/06824edf55d0">changeset</a>
544 <a href="/rev/1af356141006">changeset</a>
549 </div>
545 </div>
550 </td>
546 </td>
551 <td class="source"><a href="#l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
547 <td class="source"><a href="#l15"> 15</a> <span class="kn">yield</span> <span class="n">p</span></td>
552 </tr>
548 </tr>
553 <tr id="l16" class="thisrev">
549 <tr id="l16" class="thisrev">
554 <td class="annotate parity0">
550 <td class="annotate parity0">
555
551
556 <div class="annotate-info">
552 <div class="annotate-info">
557 <div>
553 <div>
558 <a href="/annotate/06824edf55d0/primes.py#l16">
554 <a href="/annotate/1af356141006/primes.py#l16">
559 06824edf55d0</a>
555 1af356141006</a>
560 a
556 a
561 </div>
557 </div>
562 <div><em>&#116;&#101;&#115;&#116;</em></div>
558 <div><em>&#116;&#101;&#115;&#116;</em></div>
563 <div>parents: </div>
559 <div>parents: </div>
564 <a href="/diff/06824edf55d0/primes.py">diff</a>
560 <a href="/diff/1af356141006/primes.py">diff</a>
565 <a href="/rev/06824edf55d0">changeset</a>
561 <a href="/rev/1af356141006">changeset</a>
566 </div>
562 </div>
567 </td>
563 </td>
568 <td class="source"><a href="#l16"> 16</a> <span class="c"># infinite recursion.</span></td>
564 <td class="source"><a href="#l16"> 16</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
569 </tr>
565 </tr>
570 <tr id="l17" class="thisrev">
566 <tr id="l17" class="thisrev">
571 <td class="annotate parity0">
567 <td class="annotate parity0">
572
568
573 <div class="annotate-info">
569 <div class="annotate-info">
574 <div>
570 <div>
575 <a href="/annotate/06824edf55d0/primes.py#l17">
571 <a href="/annotate/1af356141006/primes.py#l17">
576 06824edf55d0</a>
572 1af356141006</a>
577 a
573 a
578 </div>
574 </div>
579 <div><em>&#116;&#101;&#115;&#116;</em></div>
575 <div><em>&#116;&#101;&#115;&#116;</em></div>
580 <div>parents: </div>
576 <div>parents: </div>
581 <a href="/diff/06824edf55d0/primes.py">diff</a>
577 <a href="/diff/1af356141006/primes.py">diff</a>
582 <a href="/rev/06824edf55d0">changeset</a>
578 <a href="/rev/1af356141006">changeset</a>
583 </div>
579 </div>
584 </td>
580 </td>
585 <td class="source"><a href="#l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td>
581 <td class="source"><a href="#l17"> 17</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
586 </tr>
582 </tr>
587 <tr id="l18" class="thisrev">
583 <tr id="l18" class="thisrev">
588 <td class="annotate parity0">
584 <td class="annotate parity0">
589
585
590 <div class="annotate-info">
586 <div class="annotate-info">
591 <div>
587 <div>
592 <a href="/annotate/06824edf55d0/primes.py#l18">
588 <a href="/annotate/1af356141006/primes.py#l18">
593 06824edf55d0</a>
589 1af356141006</a>
594 a
590 a
595 </div>
591 </div>
596 <div><em>&#116;&#101;&#115;&#116;</em></div>
592 <div><em>&#116;&#101;&#115;&#116;</em></div>
597 <div>parents: </div>
593 <div>parents: </div>
598 <a href="/diff/06824edf55d0/primes.py">diff</a>
594 <a href="/diff/1af356141006/primes.py">diff</a>
599 <a href="/rev/06824edf55d0">changeset</a>
595 <a href="/rev/1af356141006">changeset</a>
600 </div>
596 </div>
601 </td>
597 </td>
602 <td class="source"><a href="#l18"> 18</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
598 <td class="source"><a href="#l18"> 18</a> <span class="kn">yield</span> <span class="n">n</span></td>
603 </tr>
599 </tr>
604 <tr id="l19" class="thisrev">
600 <tr id="l19" class="thisrev">
605 <td class="annotate parity0">
601 <td class="annotate parity0">
606
602
607 <div class="annotate-info">
603 <div class="annotate-info">
608 <div>
604 <div>
609 <a href="/annotate/06824edf55d0/primes.py#l19">
605 <a href="/annotate/1af356141006/primes.py#l19">
610 06824edf55d0</a>
606 1af356141006</a>
611 a
607 a
612 </div>
608 </div>
613 <div><em>&#116;&#101;&#115;&#116;</em></div>
609 <div><em>&#116;&#101;&#115;&#116;</em></div>
614 <div>parents: </div>
610 <div>parents: </div>
615 <a href="/diff/06824edf55d0/primes.py">diff</a>
611 <a href="/diff/1af356141006/primes.py">diff</a>
616 <a href="/rev/06824edf55d0">changeset</a>
612 <a href="/rev/1af356141006">changeset</a>
617 </div>
613 </div>
618 </td>
614 </td>
619 <td class="source"><a href="#l19"> 19</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
615 <td class="source"><a href="#l19"> 19</a> </td>
620 </tr>
616 </tr>
621 <tr id="l20" class="thisrev">
617 <tr id="l20" class="thisrev">
622 <td class="annotate parity0">
618 <td class="annotate parity0">
623
619
624 <div class="annotate-info">
620 <div class="annotate-info">
625 <div>
621 <div>
626 <a href="/annotate/06824edf55d0/primes.py#l20">
622 <a href="/annotate/1af356141006/primes.py#l20">
627 06824edf55d0</a>
623 1af356141006</a>
628 a
624 a
629 </div>
625 </div>
630 <div><em>&#116;&#101;&#115;&#116;</em></div>
626 <div><em>&#116;&#101;&#115;&#116;</em></div>
631 <div>parents: </div>
627 <div>parents: </div>
632 <a href="/diff/06824edf55d0/primes.py">diff</a>
628 <a href="/diff/1af356141006/primes.py">diff</a>
633 <a href="/rev/06824edf55d0">changeset</a>
629 <a href="/rev/1af356141006">changeset</a>
634 </div>
630 </div>
635 </td>
631 </td>
636 <td class="source"><a href="#l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td>
632 <td class="source"><a href="#l20"> 20</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
637 </tr>
633 </tr>
638 <tr id="l21" class="thisrev">
634 <tr id="l21" class="thisrev">
639 <td class="annotate parity0">
635 <td class="annotate parity0">
640
636
641 <div class="annotate-info">
637 <div class="annotate-info">
642 <div>
638 <div>
643 <a href="/annotate/06824edf55d0/primes.py#l21">
639 <a href="/annotate/1af356141006/primes.py#l21">
644 06824edf55d0</a>
640 1af356141006</a>
645 a
641 a
646 </div>
642 </div>
647 <div><em>&#116;&#101;&#115;&#116;</em></div>
643 <div><em>&#116;&#101;&#115;&#116;</em></div>
648 <div>parents: </div>
644 <div>parents: </div>
649 <a href="/diff/06824edf55d0/primes.py">diff</a>
645 <a href="/diff/1af356141006/primes.py">diff</a>
650 <a href="/rev/06824edf55d0">changeset</a>
646 <a href="/rev/1af356141006">changeset</a>
651 </div>
647 </div>
652 </td>
648 </td>
653 <td class="source"><a href="#l21"> 21</a> </td>
649 <td class="source"><a href="#l21"> 21</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
654 </tr>
650 </tr>
655 <tr id="l22" class="thisrev">
651 <tr id="l22" class="thisrev">
656 <td class="annotate parity0">
652 <td class="annotate parity0">
657
653
658 <div class="annotate-info">
654 <div class="annotate-info">
659 <div>
655 <div>
660 <a href="/annotate/06824edf55d0/primes.py#l22">
656 <a href="/annotate/1af356141006/primes.py#l22">
661 06824edf55d0</a>
657 1af356141006</a>
662 a
658 a
663 </div>
659 </div>
664 <div><em>&#116;&#101;&#115;&#116;</em></div>
660 <div><em>&#116;&#101;&#115;&#116;</em></div>
665 <div>parents: </div>
661 <div>parents: </div>
666 <a href="/diff/06824edf55d0/primes.py">diff</a>
662 <a href="/diff/1af356141006/primes.py">diff</a>
667 <a href="/rev/06824edf55d0">changeset</a>
663 <a href="/rev/1af356141006">changeset</a>
668 </div>
664 </div>
669 </td>
665 </td>
670 <td class="source"><a href="#l22"> 22</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
666 <td class="source"><a href="#l22"> 22</a> </td>
671 </tr>
667 </tr>
672 <tr id="l23" class="thisrev">
668 <tr id="l23" class="thisrev">
673 <td class="annotate parity0">
669 <td class="annotate parity0">
674
670
675 <div class="annotate-info">
671 <div class="annotate-info">
676 <div>
672 <div>
677 <a href="/annotate/06824edf55d0/primes.py#l23">
673 <a href="/annotate/1af356141006/primes.py#l23">
678 06824edf55d0</a>
674 1af356141006</a>
679 a
675 a
680 </div>
676 </div>
681 <div><em>&#116;&#101;&#115;&#116;</em></div>
677 <div><em>&#116;&#101;&#115;&#116;</em></div>
682 <div>parents: </div>
678 <div>parents: </div>
683 <a href="/diff/06824edf55d0/primes.py">diff</a>
679 <a href="/diff/1af356141006/primes.py">diff</a>
684 <a href="/rev/06824edf55d0">changeset</a>
680 <a href="/rev/1af356141006">changeset</a>
685 </div>
681 </div>
686 </td>
682 </td>
687 <td class="source"><a href="#l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
683 <td class="source"><a href="#l23"> 23</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
688 </tr>
684 </tr>
689 <tr id="l24" class="thisrev">
685 <tr id="l24" class="thisrev">
690 <td class="annotate parity0">
686 <td class="annotate parity0">
691
687
692 <div class="annotate-info">
688 <div class="annotate-info">
693 <div>
689 <div>
694 <a href="/annotate/06824edf55d0/primes.py#l24">
690 <a href="/annotate/1af356141006/primes.py#l24">
695 06824edf55d0</a>
691 1af356141006</a>
696 a
692 a
697 </div>
693 </div>
698 <div><em>&#116;&#101;&#115;&#116;</em></div>
694 <div><em>&#116;&#101;&#115;&#116;</em></div>
699 <div>parents: </div>
695 <div>parents: </div>
700 <a href="/diff/06824edf55d0/primes.py">diff</a>
696 <a href="/diff/1af356141006/primes.py">diff</a>
701 <a href="/rev/06824edf55d0">changeset</a>
697 <a href="/rev/1af356141006">changeset</a>
702 </div>
698 </div>
703 </td>
699 </td>
704 <td class="source"><a href="#l24"> 24</a> </td>
700 <td class="source"><a href="#l24"> 24</a> <span class="kn">import</span> <span class="nn">sys</span></td>
705 </tr>
701 </tr>
706 <tr id="l25" class="thisrev">
702 <tr id="l25" class="thisrev">
707 <td class="annotate parity0">
703 <td class="annotate parity0">
708
704
709 <div class="annotate-info">
705 <div class="annotate-info">
710 <div>
706 <div>
711 <a href="/annotate/06824edf55d0/primes.py#l25">
707 <a href="/annotate/1af356141006/primes.py#l25">
712 06824edf55d0</a>
708 1af356141006</a>
713 a
709 a
714 </div>
710 </div>
715 <div><em>&#116;&#101;&#115;&#116;</em></div>
711 <div><em>&#116;&#101;&#115;&#116;</em></div>
716 <div>parents: </div>
712 <div>parents: </div>
717 <a href="/diff/06824edf55d0/primes.py">diff</a>
713 <a href="/diff/1af356141006/primes.py">diff</a>
718 <a href="/rev/06824edf55d0">changeset</a>
714 <a href="/rev/1af356141006">changeset</a>
719 </div>
715 </div>
720 </td>
716 </td>
721 <td class="source"><a href="#l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
717 <td class="source"><a href="#l25"> 25</a> <span class="kn">try</span><span class="p">:</span></td>
722 </tr>
718 </tr>
723 <tr id="l26" class="thisrev">
719 <tr id="l26" class="thisrev">
724 <td class="annotate parity0">
720 <td class="annotate parity0">
725
721
726 <div class="annotate-info">
722 <div class="annotate-info">
727 <div>
723 <div>
728 <a href="/annotate/06824edf55d0/primes.py#l26">
724 <a href="/annotate/1af356141006/primes.py#l26">
729 06824edf55d0</a>
725 1af356141006</a>
730 a
726 a
731 </div>
727 </div>
732 <div><em>&#116;&#101;&#115;&#116;</em></div>
728 <div><em>&#116;&#101;&#115;&#116;</em></div>
733 <div>parents: </div>
729 <div>parents: </div>
734 <a href="/diff/06824edf55d0/primes.py">diff</a>
730 <a href="/diff/1af356141006/primes.py">diff</a>
735 <a href="/rev/06824edf55d0">changeset</a>
731 <a href="/rev/1af356141006">changeset</a>
736 </div>
732 </div>
737 </td>
733 </td>
738 <td class="source"><a href="#l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td>
734 <td class="source"><a href="#l26"> 26</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
739 </tr>
735 </tr>
740 <tr id="l27" class="thisrev">
736 <tr id="l27" class="thisrev">
741 <td class="annotate parity0">
737 <td class="annotate parity0">
742
738
743 <div class="annotate-info">
739 <div class="annotate-info">
744 <div>
740 <div>
745 <a href="/annotate/06824edf55d0/primes.py#l27">
741 <a href="/annotate/1af356141006/primes.py#l27">
746 06824edf55d0</a>
742 1af356141006</a>
747 a
743 a
748 </div>
744 </div>
749 <div><em>&#116;&#101;&#115;&#116;</em></div>
745 <div><em>&#116;&#101;&#115;&#116;</em></div>
750 <div>parents: </div>
746 <div>parents: </div>
751 <a href="/diff/06824edf55d0/primes.py">diff</a>
747 <a href="/diff/1af356141006/primes.py">diff</a>
752 <a href="/rev/06824edf55d0">changeset</a>
748 <a href="/rev/1af356141006">changeset</a>
753 </div>
749 </div>
754 </td>
750 </td>
755 <td class="source"><a href="#l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td>
751 <td class="source"><a href="#l27"> 27</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
756 </tr>
752 </tr>
757 <tr id="l28" class="thisrev">
753 <tr id="l28" class="thisrev">
758 <td class="annotate parity0">
754 <td class="annotate parity0">
759
755
760 <div class="annotate-info">
756 <div class="annotate-info">
761 <div>
757 <div>
762 <a href="/annotate/06824edf55d0/primes.py#l28">
758 <a href="/annotate/1af356141006/primes.py#l28">
763 06824edf55d0</a>
759 1af356141006</a>
764 a
760 a
765 </div>
761 </div>
766 <div><em>&#116;&#101;&#115;&#116;</em></div>
762 <div><em>&#116;&#101;&#115;&#116;</em></div>
767 <div>parents: </div>
763 <div>parents: </div>
768 <a href="/diff/06824edf55d0/primes.py">diff</a>
764 <a href="/diff/1af356141006/primes.py">diff</a>
769 <a href="/rev/06824edf55d0">changeset</a>
765 <a href="/rev/1af356141006">changeset</a>
770 </div>
766 </div>
771 </td>
767 </td>
772 <td class="source"><a href="#l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
768 <td class="source"><a href="#l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
773 </tr>
769 </tr>
774 <tr id="l29" class="thisrev">
770 <tr id="l29" class="thisrev">
775 <td class="annotate parity0">
771 <td class="annotate parity0">
776
772
777 <div class="annotate-info">
773 <div class="annotate-info">
778 <div>
774 <div>
779 <a href="/annotate/06824edf55d0/primes.py#l29">
775 <a href="/annotate/1af356141006/primes.py#l29">
780 06824edf55d0</a>
776 1af356141006</a>
781 a
777 a
782 </div>
778 </div>
783 <div><em>&#116;&#101;&#115;&#116;</em></div>
779 <div><em>&#116;&#101;&#115;&#116;</em></div>
784 <div>parents: </div>
780 <div>parents: </div>
785 <a href="/diff/06824edf55d0/primes.py">diff</a>
781 <a href="/diff/1af356141006/primes.py">diff</a>
786 <a href="/rev/06824edf55d0">changeset</a>
782 <a href="/rev/1af356141006">changeset</a>
787 </div>
783 </div>
788 </td>
784 </td>
789 <td class="source"><a href="#l29"> 29</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
785 <td class="source"><a href="#l29"> 29</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
790 </tr>
786 </tr>
791 <tr id="l30" class="thisrev">
787 <tr id="l30" class="thisrev">
792 <td class="annotate parity0">
788 <td class="annotate parity0">
793
789
794 <div class="annotate-info">
790 <div class="annotate-info">
795 <div>
791 <div>
796 <a href="/annotate/06824edf55d0/primes.py#l30">
792 <a href="/annotate/1af356141006/primes.py#l30">
797 06824edf55d0</a>
793 1af356141006</a>
798 a
794 a
799 </div>
795 </div>
800 <div><em>&#116;&#101;&#115;&#116;</em></div>
796 <div><em>&#116;&#101;&#115;&#116;</em></div>
801 <div>parents: </div>
797 <div>parents: </div>
802 <a href="/diff/06824edf55d0/primes.py">diff</a>
798 <a href="/diff/1af356141006/primes.py">diff</a>
803 <a href="/rev/06824edf55d0">changeset</a>
799 <a href="/rev/1af356141006">changeset</a>
804 </div>
800 </div>
805 </td>
801 </td>
806 <td class="source"><a href="#l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
802 <td class="source"><a href="#l30"> 30</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
807 </tr>
803 </tr>
808 <tr id="l31" class="thisrev">
804 <tr id="l31" class="thisrev">
809 <td class="annotate parity0">
805 <td class="annotate parity0">
810
806
811 <div class="annotate-info">
807 <div class="annotate-info">
812 <div>
808 <div>
813 <a href="/annotate/06824edf55d0/primes.py#l31">
809 <a href="/annotate/1af356141006/primes.py#l31">
814 06824edf55d0</a>
810 1af356141006</a>
815 a
816 </div>
817 <div><em>&#116;&#101;&#115;&#116;</em></div>
818 <div>parents: </div>
819 <a href="/diff/06824edf55d0/primes.py">diff</a>
820 <a href="/rev/06824edf55d0">changeset</a>
821 </div>
822 </td>
823 <td class="source"><a href="#l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
824 </tr>
825 <tr id="l32" class="thisrev">
826 <td class="annotate parity0">
827
828 <div class="annotate-info">
829 <div>
830 <a href="/annotate/06824edf55d0/primes.py#l32">
831 06824edf55d0</a>
832 a
811 a
833 </div>
812 </div>
834 <div><em>&#116;&#101;&#115;&#116;</em></div>
813 <div><em>&#116;&#101;&#115;&#116;</em></div>
835 <div>parents: </div>
814 <div>parents: </div>
836 <a href="/diff/06824edf55d0/primes.py">diff</a>
815 <a href="/diff/1af356141006/primes.py">diff</a>
837 <a href="/rev/06824edf55d0">changeset</a>
816 <a href="/rev/1af356141006">changeset</a>
838 </div>
817 </div>
839 </td>
818 </td>
840 <td class="source"><a href="#l32"> 32</a> <span class="kn">print</span> <span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">)))</span></td>
819 <td class="source"><a href="#l31"> 31</a> </td>
841 </tr>
842 <tr id="l33" class="thisrev">
843 <td class="annotate parity0">
844
845 <div class="annotate-info">
846 <div>
847 <a href="/annotate/06824edf55d0/primes.py#l33">
848 06824edf55d0</a>
849 a
850 </div>
851 <div><em>&#116;&#101;&#115;&#116;</em></div>
852 <div>parents: </div>
853 <a href="/diff/06824edf55d0/primes.py">diff</a>
854 <a href="/rev/06824edf55d0">changeset</a>
855 </div>
856 </td>
857 <td class="source"><a href="#l33"> 33</a> </td>
858 </tr>
820 </tr>
859 </tbody>
821 </tbody>
860 </table>
822 </table>
@@ -948,7 +910,7 b' hg serve again'
948 test that fileset in highlightfiles works and primes.py is not highlighted
910 test that fileset in highlightfiles works and primes.py is not highlighted
949
911
950 $ get-with-headers.py localhost:$HGPORT 'file/tip/primes.py' | grep 'id="l11"'
912 $ get-with-headers.py localhost:$HGPORT 'file/tip/primes.py' | grep 'id="l11"'
951 <span id="l11">def primes():</span><a href="#l11"></a>
913 <span id="l11"> def sieve(ns):</span><a href="#l11"></a>
952
914
953 errors encountered
915 errors encountered
954
916
General Comments 0
You need to be logged in to leave comments. Login now