Mercurial > hg-stable
comparison tests/test-highlight.out @ 8485:0b93eff3721d
test-highlight: decouple test from get-with-headers.py
The test copied get-with-headers.py from $TESTDIR and committed it to
a test repository. The test output therefore depended unnecessarily on
the exact content of get-with-headers.py. It has now been replaced
with another small Python script.
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Sun, 17 May 2009 21:47:24 +0200 |
parents | d5ebcf8f6855 |
children | 835b1ee111f4 |
comparison
equal
deleted
inserted
replaced
8484:15573b5dc78f | 8485:0b93eff3721d |
---|---|
1 adding get-with-headers.py | |
2 adding isolatin.txt | 1 adding isolatin.txt |
2 adding primes.py | |
3 % hg serve | 3 % hg serve |
4 % hgweb filerevision, html | 4 % hgweb filerevision, html |
5 200 Script output follows | 5 200 Script output follows |
6 | 6 |
7 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | 7 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
10 <link rel="icon" href="/static/hgicon.png" type="image/png" /> | 10 <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
11 <meta name="robots" content="index, nofollow" /> | 11 <meta name="robots" content="index, nofollow" /> |
12 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | 12 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
13 | 13 |
14 <link rel="stylesheet" href="/highlightcss" type="text/css" /> | 14 <link rel="stylesheet" href="/highlightcss" type="text/css" /> |
15 <title>test: 93b701795893 get-with-headers.py</title> | 15 <title>test: 3e1445510fe7 primes.py</title> |
16 </head> | 16 </head> |
17 <body> | 17 <body> |
18 | 18 |
19 <div class="container"> | 19 <div class="container"> |
20 <div class="menu"> | 20 <div class="menu"> |
21 <div class="logo"> | 21 <div class="logo"> |
22 <a href="http://www.selenic.com/mercurial/"> | 22 <a href="http://www.selenic.com/mercurial/"> |
23 <img src="/static/hglogo.png" alt="mercurial" /></a> | 23 <img src="/static/hglogo.png" alt="mercurial" /></a> |
24 </div> | 24 </div> |
25 <ul> | 25 <ul> |
26 <li><a href="/shortlog/93b701795893">log</a></li> | 26 <li><a href="/shortlog/3e1445510fe7">log</a></li> |
27 <li><a href="/graph/93b701795893">graph</a></li> | 27 <li><a href="/graph/3e1445510fe7">graph</a></li> |
28 <li><a href="/tags">tags</a></li> | 28 <li><a href="/tags">tags</a></li> |
29 <li><a href="/branches">branches</a></li> | 29 <li><a href="/branches">branches</a></li> |
30 </ul> | 30 </ul> |
31 <ul> | 31 <ul> |
32 <li><a href="/rev/93b701795893">changeset</a></li> | 32 <li><a href="/rev/3e1445510fe7">changeset</a></li> |
33 <li><a href="/file/93b701795893/">browse</a></li> | 33 <li><a href="/file/3e1445510fe7/">browse</a></li> |
34 </ul> | 34 </ul> |
35 <ul> | 35 <ul> |
36 <li class="active">file</li> | 36 <li class="active">file</li> |
37 <li><a href="/diff/93b701795893/get-with-headers.py">diff</a></li> | 37 <li><a href="/diff/3e1445510fe7/primes.py">diff</a></li> |
38 <li><a href="/annotate/93b701795893/get-with-headers.py">annotate</a></li> | 38 <li><a href="/annotate/3e1445510fe7/primes.py">annotate</a></li> |
39 <li><a href="/log/93b701795893/get-with-headers.py">file log</a></li> | 39 <li><a href="/log/3e1445510fe7/primes.py">file log</a></li> |
40 <li><a href="/raw-file/93b701795893/get-with-headers.py">raw</a></li> | 40 <li><a href="/raw-file/3e1445510fe7/primes.py">raw</a></li> |
41 </ul> | 41 </ul> |
42 </div> | 42 </div> |
43 | 43 |
44 <div class="main"> | 44 <div class="main"> |
45 <h2><a href="/">test</a></h2> | 45 <h2><a href="/">test</a></h2> |
46 <h3>view get-with-headers.py @ 0:93b701795893</h3> | 46 <h3>view primes.py @ 0:3e1445510fe7</h3> |
47 | 47 |
48 <form class="search" action="/log"> | 48 <form class="search" action="/log"> |
49 | 49 |
50 <p><input name="rev" id="search1" type="text" size="30" /></p> | 50 <p><input name="rev" id="search1" type="text" size="30" /></p> |
51 <div id="hint">find changesets by author, revision, | 51 <div id="hint">find changesets by author, revision, |
74 | 74 |
75 </table> | 75 </table> |
76 | 76 |
77 <div class="overflow"> | 77 <div class="overflow"> |
78 <div class="sourcefirst"> line source</div> | 78 <div class="sourcefirst"> line source</div> |
79 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> <span class="c">#!/usr/bin/env python</span></div><div class="parity1 source"><a href="#l2" id="l2"> 2</a> </div><div class="parity0 source"><a href="#l3" id="l3"> 3</a> <span class="sd">"""This does HTTP GET requests given a host:port and path and returns</span></div><div class="parity1 source"><a href="#l4" id="l4"> 4</a> <span class="sd">a subset of the headers plus the body of the result."""</span></div><div class="parity0 source"><a href="#l5" id="l5"> 5</a> </div><div class="parity1 source"><a href="#l6" id="l6"> 6</a> <span class="kn">import</span> <span class="nn">httplib</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">re</span></div><div class="parity0 source"><a href="#l7" id="l7"> 7</a> </div><div class="parity1 source"><a href="#l8" id="l8"> 8</a> <span class="kn">try</span><span class="p">:</span></div><div class="parity0 source"><a href="#l9" id="l9"> 9</a> <span class="kn">import</span> <span class="nn">msvcrt</span><span class="o">,</span> <span class="nn">os</span></div><div class="parity1 source"><a href="#l10" id="l10"> 10</a> <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></div><div class="parity0 source"><a href="#l11" id="l11"> 11</a> <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></div><div class="parity1 source"><a href="#l12" id="l12"> 12</a> <span class="kn">except</span> <span class="ne">ImportError</span><span class="p">:</span></div><div class="parity0 source"><a href="#l13" id="l13"> 13</a> <span class="kn">pass</span></div><div class="parity1 source"><a href="#l14" id="l14"> 14</a> </div><div class="parity0 source"><a href="#l15" id="l15"> 15</a> <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="n">h</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">3</span><span class="p">:]]</span></div><div class="parity1 source"><a href="#l16" id="l16"> 16</a> <span class="n">conn</span> <span class="o">=</span> <span class="n">httplib</span><span class="o">.</span><span class="n">HTTPConnection</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></div><div class="parity0 source"><a href="#l17" id="l17"> 17</a> <span class="n">conn</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">"GET"</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">2</span><span class="p">])</span></div><div class="parity1 source"><a href="#l18" id="l18"> 18</a> <span class="n">response</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span></div><div class="parity0 source"><a href="#l19" id="l19"> 19</a> <span class="kn">print</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">reason</span></div><div class="parity1 source"><a href="#l20" id="l20"> 20</a> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</span></div><div class="parity0 source"><a href="#l21" id="l21"> 21</a> <span class="kn">if</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span></div><div class="parity1 source"><a href="#l22" id="l22"> 22</a> <span class="kn">print</span> <span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">))</span></div><div class="parity0 source"><a href="#l23" id="l23"> 23</a> <span class="kn">print</span></div><div class="parity1 source"><a href="#l24" id="l24"> 24</a> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()</span></div><div class="parity0 source"><a href="#l25" id="l25"> 25</a> <span class="n">data</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">'\d+ years'</span><span class="p">,</span> <span class="s">'many years'</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></div><div class="parity1 source"><a href="#l26" id="l26"> 26</a> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></div><div class="parity0 source"><a href="#l27" id="l27"> 27</a> </div><div class="parity1 source"><a href="#l28" id="l28"> 28</a> <span class="kn">if</span> <span class="mi">200</span> <span class="o"><=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o"><=</span> <span class="mi">299</span><span class="p">:</span></div><div class="parity0 source"><a href="#l29" id="l29"> 29</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span></div><div class="parity1 source"><a href="#l30" id="l30"> 30</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span></div> | 79 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> <span class="c">#!/usr/bin/env python</span></div><div class="parity1 source"><a href="#l2" id="l2"> 2</a> </div><div class="parity0 source"><a href="#l3" id="l3"> 3</a> <span class="sd">"""Fun with generators. Corresponding Haskell implementation:</span></div><div class="parity1 source"><a href="#l4" id="l4"> 4</a> </div><div class="parity0 source"><a href="#l5" id="l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></div><div class="parity1 source"><a href="#l6" id="l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]</span></div><div class="parity0 source"><a href="#l7" id="l7"> 7</a> <span class="sd">"""</span></div><div class="parity1 source"><a href="#l8" id="l8"> 8</a> </div><div class="parity0 source"><a href="#l9" id="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></div><div class="parity1 source"><a href="#l10" id="l10"> 10</a> </div><div class="parity0 source"><a href="#l11" id="l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></div><div class="parity1 source"><a href="#l12" id="l12"> 12</a> <span class="sd">"""Generate all primes."""</span></div><div class="parity0 source"><a href="#l13" id="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></div><div class="parity1 source"><a href="#l14" id="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></div><div class="parity0 source"><a href="#l15" id="l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></div><div class="parity1 source"><a href="#l16" id="l16"> 16</a> <span class="c"># infinite recursion.</span></div><div class="parity0 source"><a href="#l17" id="l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></div><div class="parity1 source"><a href="#l18" id="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></div><div class="parity0 source"><a href="#l19" id="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></div><div class="parity1 source"><a href="#l20" id="l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></div><div class="parity0 source"><a href="#l21" id="l21"> 21</a> </div><div class="parity1 source"><a href="#l22" id="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></div><div class="parity0 source"><a href="#l23" id="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"><</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></div><div class="parity1 source"><a href="#l24" id="l24"> 24</a> </div><div class="parity0 source"><a href="#l25" id="l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span></div><div class="parity1 source"><a href="#l26" id="l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></div><div class="parity0 source"><a href="#l27" id="l27"> 27</a> <span class="kn">try</span><span class="p">:</span></div><div class="parity1 source"><a href="#l28" id="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></div><div class="parity0 source"><a href="#l29" id="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></div><div class="parity1 source"><a href="#l30" id="l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></div><div class="parity0 source"><a href="#l31" id="l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></div><div class="parity1 source"><a href="#l32" id="l32"> 32</a> <span class="kn">print</span> <span class="s">"The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">"</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></div> |
80 <div class="sourcelast"></div> | 80 <div class="sourcelast"></div> |
81 </div> | 81 </div> |
82 </div> | 82 </div> |
83 </div> | 83 </div> |
84 | 84 |
96 <link rel="icon" href="/static/hgicon.png" type="image/png" /> | 96 <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
97 <meta name="robots" content="index, nofollow" /> | 97 <meta name="robots" content="index, nofollow" /> |
98 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | 98 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
99 | 99 |
100 <link rel="stylesheet" href="/highlightcss" type="text/css" /> | 100 <link rel="stylesheet" href="/highlightcss" type="text/css" /> |
101 <title>test: 93b701795893 isolatin.txt</title> | 101 <title>test: 3e1445510fe7 isolatin.txt</title> |
102 </head> | 102 </head> |
103 <body> | 103 <body> |
104 | 104 |
105 <div class="container"> | 105 <div class="container"> |
106 <div class="menu"> | 106 <div class="menu"> |
107 <div class="logo"> | 107 <div class="logo"> |
108 <a href="http://www.selenic.com/mercurial/"> | 108 <a href="http://www.selenic.com/mercurial/"> |
109 <img src="/static/hglogo.png" alt="mercurial" /></a> | 109 <img src="/static/hglogo.png" alt="mercurial" /></a> |
110 </div> | 110 </div> |
111 <ul> | 111 <ul> |
112 <li><a href="/shortlog/93b701795893">log</a></li> | 112 <li><a href="/shortlog/3e1445510fe7">log</a></li> |
113 <li><a href="/graph/93b701795893">graph</a></li> | 113 <li><a href="/graph/3e1445510fe7">graph</a></li> |
114 <li><a href="/tags">tags</a></li> | 114 <li><a href="/tags">tags</a></li> |
115 <li><a href="/branches">branches</a></li> | 115 <li><a href="/branches">branches</a></li> |
116 </ul> | 116 </ul> |
117 <ul> | 117 <ul> |
118 <li><a href="/rev/93b701795893">changeset</a></li> | 118 <li><a href="/rev/3e1445510fe7">changeset</a></li> |
119 <li><a href="/file/93b701795893/">browse</a></li> | 119 <li><a href="/file/3e1445510fe7/">browse</a></li> |
120 </ul> | 120 </ul> |
121 <ul> | 121 <ul> |
122 <li class="active">file</li> | 122 <li class="active">file</li> |
123 <li><a href="/diff/93b701795893/isolatin.txt">diff</a></li> | 123 <li><a href="/diff/3e1445510fe7/isolatin.txt">diff</a></li> |
124 <li><a href="/annotate/93b701795893/isolatin.txt">annotate</a></li> | 124 <li><a href="/annotate/3e1445510fe7/isolatin.txt">annotate</a></li> |
125 <li><a href="/log/93b701795893/isolatin.txt">file log</a></li> | 125 <li><a href="/log/3e1445510fe7/isolatin.txt">file log</a></li> |
126 <li><a href="/raw-file/93b701795893/isolatin.txt">raw</a></li> | 126 <li><a href="/raw-file/3e1445510fe7/isolatin.txt">raw</a></li> |
127 </ul> | 127 </ul> |
128 </div> | 128 </div> |
129 | 129 |
130 <div class="main"> | 130 <div class="main"> |
131 <h2><a href="/">test</a></h2> | 131 <h2><a href="/">test</a></h2> |
132 <h3>view isolatin.txt @ 0:93b701795893</h3> | 132 <h3>view isolatin.txt @ 0:3e1445510fe7</h3> |
133 | 133 |
134 <form class="search" action="/log"> | 134 <form class="search" action="/log"> |
135 | 135 |
136 <p><input name="rev" id="search1" type="text" size="30" /></p> | 136 <p><input name="rev" id="search1" type="text" size="30" /></p> |
137 <div id="hint">find changesets by author, revision, | 137 <div id="hint">find changesets by author, revision, |
182 <link rel="icon" href="/static/hgicon.png" type="image/png" /> | 182 <link rel="icon" href="/static/hgicon.png" type="image/png" /> |
183 <meta name="robots" content="index, nofollow" /> | 183 <meta name="robots" content="index, nofollow" /> |
184 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> | 184 <link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> |
185 | 185 |
186 <link rel="stylesheet" href="/highlightcss" type="text/css" /> | 186 <link rel="stylesheet" href="/highlightcss" type="text/css" /> |
187 <title>test: get-with-headers.py annotate</title> | 187 <title>test: primes.py annotate</title> |
188 </head> | 188 </head> |
189 <body> | 189 <body> |
190 | 190 |
191 <div class="container"> | 191 <div class="container"> |
192 <div class="menu"> | 192 <div class="menu"> |
193 <div class="logo"> | 193 <div class="logo"> |
194 <a href="http://www.selenic.com/mercurial/"> | 194 <a href="http://www.selenic.com/mercurial/"> |
195 <img src="/static/hglogo.png" alt="mercurial" /></a> | 195 <img src="/static/hglogo.png" alt="mercurial" /></a> |
196 </div> | 196 </div> |
197 <ul> | 197 <ul> |
198 <li><a href="/shortlog/93b701795893">log</a></li> | 198 <li><a href="/shortlog/3e1445510fe7">log</a></li> |
199 <li><a href="/graph/93b701795893">graph</a></li> | 199 <li><a href="/graph/3e1445510fe7">graph</a></li> |
200 <li><a href="/tags">tags</a></li> | 200 <li><a href="/tags">tags</a></li> |
201 <li><a href="/branches">branches</a></li> | 201 <li><a href="/branches">branches</a></li> |
202 </ul> | 202 </ul> |
203 | 203 |
204 <ul> | 204 <ul> |
205 <li><a href="/rev/93b701795893">changeset</a></li> | 205 <li><a href="/rev/3e1445510fe7">changeset</a></li> |
206 <li><a href="/file/93b701795893/">browse</a></li> | 206 <li><a href="/file/3e1445510fe7/">browse</a></li> |
207 </ul> | 207 </ul> |
208 <ul> | 208 <ul> |
209 <li><a href="/file/93b701795893/get-with-headers.py">file</a></li> | 209 <li><a href="/file/3e1445510fe7/primes.py">file</a></li> |
210 <li><a href="/diff/93b701795893/get-with-headers.py">diff</a></li> | 210 <li><a href="/diff/3e1445510fe7/primes.py">diff</a></li> |
211 <li class="active">annotate</li> | 211 <li class="active">annotate</li> |
212 <li><a href="/log/93b701795893/get-with-headers.py">file log</a></li> | 212 <li><a href="/log/3e1445510fe7/primes.py">file log</a></li> |
213 <li><a href="/raw-annotate/93b701795893/get-with-headers.py">raw</a></li> | 213 <li><a href="/raw-annotate/3e1445510fe7/primes.py">raw</a></li> |
214 </ul> | 214 </ul> |
215 </div> | 215 </div> |
216 | 216 |
217 <div class="main"> | 217 <div class="main"> |
218 <h2><a href="/">test</a></h2> | 218 <h2><a href="/">test</a></h2> |
219 <h3>annotate get-with-headers.py @ 0:93b701795893</h3> | 219 <h3>annotate primes.py @ 0:3e1445510fe7</h3> |
220 | 220 |
221 <form class="search" action="/log"> | 221 <form class="search" action="/log"> |
222 | 222 |
223 <p><input name="rev" id="search1" type="text" size="30" /></p> | 223 <p><input name="rev" id="search1" type="text" size="30" /></p> |
224 <div id="hint">find changesets by author, revision, | 224 <div id="hint">find changesets by author, revision, |
256 <th class="line"> line source</th> | 256 <th class="line"> line source</th> |
257 </tr> | 257 </tr> |
258 | 258 |
259 <tr class="parity0"> | 259 <tr class="parity0"> |
260 <td class="annotate"> | 260 <td class="annotate"> |
261 <a href="/annotate/93b701795893/get-with-headers.py#1" | 261 <a href="/annotate/3e1445510fe7/primes.py#1" |
262 title="93b701795893: a">test@0</a> | 262 title="3e1445510fe7: a">test@0</a> |
263 </td> | 263 </td> |
264 <td class="source"><a href="#l1" id="l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td> | 264 <td class="source"><a href="#l1" id="l1"> 1</a> <span class="c">#!/usr/bin/env python</span></td> |
265 </tr> | 265 </tr> |
266 <tr class="parity1"> | 266 <tr class="parity1"> |
267 <td class="annotate"> | 267 <td class="annotate"> |
268 <a href="/annotate/93b701795893/get-with-headers.py#2" | 268 <a href="/annotate/3e1445510fe7/primes.py#2" |
269 title="93b701795893: a">test@0</a> | 269 title="3e1445510fe7: a">test@0</a> |
270 </td> | 270 </td> |
271 <td class="source"><a href="#l2" id="l2"> 2</a> </td> | 271 <td class="source"><a href="#l2" id="l2"> 2</a> </td> |
272 </tr> | 272 </tr> |
273 <tr class="parity0"> | 273 <tr class="parity0"> |
274 <td class="annotate"> | 274 <td class="annotate"> |
275 <a href="/annotate/93b701795893/get-with-headers.py#3" | 275 <a href="/annotate/3e1445510fe7/primes.py#3" |
276 title="93b701795893: a">test@0</a> | 276 title="3e1445510fe7: a">test@0</a> |
277 </td> | 277 </td> |
278 <td class="source"><a href="#l3" id="l3"> 3</a> <span class="sd">"""This does HTTP GET requests given a host:port and path and returns</span></td> | 278 <td class="source"><a href="#l3" id="l3"> 3</a> <span class="sd">"""Fun with generators. Corresponding Haskell implementation:</span></td> |
279 </tr> | 279 </tr> |
280 <tr class="parity1"> | 280 <tr class="parity1"> |
281 <td class="annotate"> | 281 <td class="annotate"> |
282 <a href="/annotate/93b701795893/get-with-headers.py#4" | 282 <a href="/annotate/3e1445510fe7/primes.py#4" |
283 title="93b701795893: a">test@0</a> | 283 title="3e1445510fe7: a">test@0</a> |
284 </td> | 284 </td> |
285 <td class="source"><a href="#l4" id="l4"> 4</a> <span class="sd">a subset of the headers plus the body of the result."""</span></td> | 285 <td class="source"><a href="#l4" id="l4"> 4</a> </td> |
286 </tr> | 286 </tr> |
287 <tr class="parity0"> | 287 <tr class="parity0"> |
288 <td class="annotate"> | 288 <td class="annotate"> |
289 <a href="/annotate/93b701795893/get-with-headers.py#5" | 289 <a href="/annotate/3e1445510fe7/primes.py#5" |
290 title="93b701795893: a">test@0</a> | 290 title="3e1445510fe7: a">test@0</a> |
291 </td> | 291 </td> |
292 <td class="source"><a href="#l5" id="l5"> 5</a> </td> | 292 <td class="source"><a href="#l5" id="l5"> 5</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td> |
293 </tr> | 293 </tr> |
294 <tr class="parity1"> | 294 <tr class="parity1"> |
295 <td class="annotate"> | 295 <td class="annotate"> |
296 <a href="/annotate/93b701795893/get-with-headers.py#6" | 296 <a href="/annotate/3e1445510fe7/primes.py#6" |
297 title="93b701795893: a">test@0</a> | 297 title="3e1445510fe7: a">test@0</a> |
298 </td> | 298 </td> |
299 <td class="source"><a href="#l6" id="l6"> 6</a> <span class="kn">import</span> <span class="nn">httplib</span><span class="o">,</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">re</span></td> | 299 <td class="source"><a href="#l6" id="l6"> 6</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]</span></td> |
300 </tr> | 300 </tr> |
301 <tr class="parity0"> | 301 <tr class="parity0"> |
302 <td class="annotate"> | 302 <td class="annotate"> |
303 <a href="/annotate/93b701795893/get-with-headers.py#7" | 303 <a href="/annotate/3e1445510fe7/primes.py#7" |
304 title="93b701795893: a">test@0</a> | 304 title="3e1445510fe7: a">test@0</a> |
305 </td> | 305 </td> |
306 <td class="source"><a href="#l7" id="l7"> 7</a> </td> | 306 <td class="source"><a href="#l7" id="l7"> 7</a> <span class="sd">"""</span></td> |
307 </tr> | 307 </tr> |
308 <tr class="parity1"> | 308 <tr class="parity1"> |
309 <td class="annotate"> | 309 <td class="annotate"> |
310 <a href="/annotate/93b701795893/get-with-headers.py#8" | 310 <a href="/annotate/3e1445510fe7/primes.py#8" |
311 title="93b701795893: a">test@0</a> | 311 title="3e1445510fe7: a">test@0</a> |
312 </td> | 312 </td> |
313 <td class="source"><a href="#l8" id="l8"> 8</a> <span class="kn">try</span><span class="p">:</span></td> | 313 <td class="source"><a href="#l8" id="l8"> 8</a> </td> |
314 </tr> | 314 </tr> |
315 <tr class="parity0"> | 315 <tr class="parity0"> |
316 <td class="annotate"> | 316 <td class="annotate"> |
317 <a href="/annotate/93b701795893/get-with-headers.py#9" | 317 <a href="/annotate/3e1445510fe7/primes.py#9" |
318 title="93b701795893: a">test@0</a> | 318 title="3e1445510fe7: a">test@0</a> |
319 </td> | 319 </td> |
320 <td class="source"><a href="#l9" id="l9"> 9</a> <span class="kn">import</span> <span class="nn">msvcrt</span><span class="o">,</span> <span class="nn">os</span></td> | 320 <td class="source"><a href="#l9" id="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> |
321 </tr> | 321 </tr> |
322 <tr class="parity1"> | 322 <tr class="parity1"> |
323 <td class="annotate"> | 323 <td class="annotate"> |
324 <a href="/annotate/93b701795893/get-with-headers.py#10" | 324 <a href="/annotate/3e1445510fe7/primes.py#10" |
325 title="93b701795893: a">test@0</a> | 325 title="3e1445510fe7: a">test@0</a> |
326 </td> | 326 </td> |
327 <td class="source"><a href="#l10" id="l10"> 10</a> <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></td> | 327 <td class="source"><a href="#l10" id="l10"> 10</a> </td> |
328 </tr> | 328 </tr> |
329 <tr class="parity0"> | 329 <tr class="parity0"> |
330 <td class="annotate"> | 330 <td class="annotate"> |
331 <a href="/annotate/93b701795893/get-with-headers.py#11" | 331 <a href="/annotate/3e1445510fe7/primes.py#11" |
332 title="93b701795893: a">test@0</a> | 332 title="3e1445510fe7: a">test@0</a> |
333 </td> | 333 </td> |
334 <td class="source"><a href="#l11" id="l11"> 11</a> <span class="n">msvcrt</span><span class="o">.</span><span class="n">setmode</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">fileno</span><span class="p">(),</span> <span class="n">os</span><span class="o">.</span><span class="n">O_BINARY</span><span class="p">)</span></td> | 334 <td class="source"><a href="#l11" id="l11"> 11</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td> |
335 </tr> | 335 </tr> |
336 <tr class="parity1"> | 336 <tr class="parity1"> |
337 <td class="annotate"> | 337 <td class="annotate"> |
338 <a href="/annotate/93b701795893/get-with-headers.py#12" | 338 <a href="/annotate/3e1445510fe7/primes.py#12" |
339 title="93b701795893: a">test@0</a> | 339 title="3e1445510fe7: a">test@0</a> |
340 </td> | 340 </td> |
341 <td class="source"><a href="#l12" id="l12"> 12</a> <span class="kn">except</span> <span class="ne">ImportError</span><span class="p">:</span></td> | 341 <td class="source"><a href="#l12" id="l12"> 12</a> <span class="sd">"""Generate all primes."""</span></td> |
342 </tr> | 342 </tr> |
343 <tr class="parity0"> | 343 <tr class="parity0"> |
344 <td class="annotate"> | 344 <td class="annotate"> |
345 <a href="/annotate/93b701795893/get-with-headers.py#13" | 345 <a href="/annotate/3e1445510fe7/primes.py#13" |
346 title="93b701795893: a">test@0</a> | 346 title="3e1445510fe7: a">test@0</a> |
347 </td> | 347 </td> |
348 <td class="source"><a href="#l13" id="l13"> 13</a> <span class="kn">pass</span></td> | 348 <td class="source"><a href="#l13" id="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> |
349 </tr> | 349 </tr> |
350 <tr class="parity1"> | 350 <tr class="parity1"> |
351 <td class="annotate"> | 351 <td class="annotate"> |
352 <a href="/annotate/93b701795893/get-with-headers.py#14" | 352 <a href="/annotate/3e1445510fe7/primes.py#14" |
353 title="93b701795893: a">test@0</a> | 353 title="3e1445510fe7: a">test@0</a> |
354 </td> | 354 </td> |
355 <td class="source"><a href="#l14" id="l14"> 14</a> </td> | 355 <td class="source"><a href="#l14" id="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> |
356 </tr> | 356 </tr> |
357 <tr class="parity0"> | 357 <tr class="parity0"> |
358 <td class="annotate"> | 358 <td class="annotate"> |
359 <a href="/annotate/93b701795893/get-with-headers.py#15" | 359 <a href="/annotate/3e1445510fe7/primes.py#15" |
360 title="93b701795893: a">test@0</a> | 360 title="3e1445510fe7: a">test@0</a> |
361 </td> | 361 </td> |
362 <td class="source"><a href="#l15" id="l15"> 15</a> <span class="n">headers</span> <span class="o">=</span> <span class="p">[</span><span class="n">h</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mf">3</span><span class="p">:]]</span></td> | 362 <td class="source"><a href="#l15" id="l15"> 15</a> <span class="c"># It is important to yield *here* in order to stop the</span></td> |
363 </tr> | 363 </tr> |
364 <tr class="parity1"> | 364 <tr class="parity1"> |
365 <td class="annotate"> | 365 <td class="annotate"> |
366 <a href="/annotate/93b701795893/get-with-headers.py#16" | 366 <a href="/annotate/3e1445510fe7/primes.py#16" |
367 title="93b701795893: a">test@0</a> | 367 title="3e1445510fe7: a">test@0</a> |
368 </td> | 368 </td> |
369 <td class="source"><a href="#l16" id="l16"> 16</a> <span class="n">conn</span> <span class="o">=</span> <span class="n">httplib</span><span class="o">.</span><span class="n">HTTPConnection</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="mf">1</span><span class="p">])</span></td> | 369 <td class="source"><a href="#l16" id="l16"> 16</a> <span class="c"># infinite recursion.</span></td> |
370 </tr> | 370 </tr> |
371 <tr class="parity0"> | 371 <tr class="parity0"> |
372 <td class="annotate"> | 372 <td class="annotate"> |
373 <a href="/annotate/93b701795893/get-with-headers.py#17" | 373 <a href="/annotate/3e1445510fe7/primes.py#17" |
374 title="93b701795893: a">test@0</a> | 374 title="3e1445510fe7: a">test@0</a> |
375 </td> | 375 </td> |
376 <td class="source"><a href="#l17" id="l17"> 17</a> <span class="n">conn</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">"GET"</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="mf">2</span><span class="p">])</span></td> | 376 <td class="source"><a href="#l17" id="l17"> 17</a> <span class="kn">yield</span> <span class="n">p</span></td> |
377 </tr> | 377 </tr> |
378 <tr class="parity1"> | 378 <tr class="parity1"> |
379 <td class="annotate"> | 379 <td class="annotate"> |
380 <a href="/annotate/93b701795893/get-with-headers.py#18" | 380 <a href="/annotate/3e1445510fe7/primes.py#18" |
381 title="93b701795893: a">test@0</a> | 381 title="3e1445510fe7: a">test@0</a> |
382 </td> | 382 </td> |
383 <td class="source"><a href="#l18" id="l18"> 18</a> <span class="n">response</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">getresponse</span><span class="p">()</span></td> | 383 <td class="source"><a href="#l18" id="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="mf">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td> |
384 </tr> | 384 </tr> |
385 <tr class="parity0"> | 385 <tr class="parity0"> |
386 <td class="annotate"> | 386 <td class="annotate"> |
387 <a href="/annotate/93b701795893/get-with-headers.py#19" | 387 <a href="/annotate/3e1445510fe7/primes.py#19" |
388 title="93b701795893: a">test@0</a> | 388 title="3e1445510fe7: a">test@0</a> |
389 </td> | 389 </td> |
390 <td class="source"><a href="#l19" id="l19"> 19</a> <span class="kn">print</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">reason</span></td> | 390 <td class="source"><a href="#l19" id="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> |
391 </tr> | 391 </tr> |
392 <tr class="parity1"> | 392 <tr class="parity1"> |
393 <td class="annotate"> | 393 <td class="annotate"> |
394 <a href="/annotate/93b701795893/get-with-headers.py#20" | 394 <a href="/annotate/3e1445510fe7/primes.py#20" |
395 title="93b701795893: a">test@0</a> | 395 title="3e1445510fe7: a">test@0</a> |
396 </td> | 396 </td> |
397 <td class="source"><a href="#l20" id="l20"> 20</a> <span class="kn">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</span></td> | 397 <td class="source"><a href="#l20" id="l20"> 20</a> <span class="kn">yield</span> <span class="n">n</span></td> |
398 </tr> | 398 </tr> |
399 <tr class="parity0"> | 399 <tr class="parity0"> |
400 <td class="annotate"> | 400 <td class="annotate"> |
401 <a href="/annotate/93b701795893/get-with-headers.py#21" | 401 <a href="/annotate/3e1445510fe7/primes.py#21" |
402 title="93b701795893: a">test@0</a> | 402 title="3e1445510fe7: a">test@0</a> |
403 </td> | 403 </td> |
404 <td class="source"><a href="#l21" id="l21"> 21</a> <span class="kn">if</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span></td> | 404 <td class="source"><a href="#l21" id="l21"> 21</a> </td> |
405 </tr> | 405 </tr> |
406 <tr class="parity1"> | 406 <tr class="parity1"> |
407 <td class="annotate"> | 407 <td class="annotate"> |
408 <a href="/annotate/93b701795893/get-with-headers.py#22" | 408 <a href="/annotate/3e1445510fe7/primes.py#22" |
409 title="93b701795893: a">test@0</a> | 409 title="3e1445510fe7: a">test@0</a> |
410 </td> | 410 </td> |
411 <td class="source"><a href="#l22" id="l22"> 22</a> <span class="kn">print</span> <span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">response</span><span class="o">.</span><span class="n">getheader</span><span class="p">(</span><span class="n">h</span><span class="p">))</span></td> | 411 <td class="source"><a href="#l22" id="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="mf">2</span> <span class="o">==</span> <span class="mf">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td> |
412 </tr> | 412 </tr> |
413 <tr class="parity0"> | 413 <tr class="parity0"> |
414 <td class="annotate"> | 414 <td class="annotate"> |
415 <a href="/annotate/93b701795893/get-with-headers.py#23" | 415 <a href="/annotate/3e1445510fe7/primes.py#23" |
416 title="93b701795893: a">test@0</a> | 416 title="3e1445510fe7: a">test@0</a> |
417 </td> | 417 </td> |
418 <td class="source"><a href="#l23" id="l23"> 23</a> <span class="kn">print</span></td> | 418 <td class="source"><a href="#l23" id="l23"> 23</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mf">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"><</span> <span class="mf">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td> |
419 </tr> | 419 </tr> |
420 <tr class="parity1"> | 420 <tr class="parity1"> |
421 <td class="annotate"> | 421 <td class="annotate"> |
422 <a href="/annotate/93b701795893/get-with-headers.py#24" | 422 <a href="/annotate/3e1445510fe7/primes.py#24" |
423 title="93b701795893: a">test@0</a> | 423 title="3e1445510fe7: a">test@0</a> |
424 </td> | 424 </td> |
425 <td class="source"><a href="#l24" id="l24"> 24</a> <span class="n">data</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()</span></td> | 425 <td class="source"><a href="#l24" id="l24"> 24</a> </td> |
426 </tr> | 426 </tr> |
427 <tr class="parity0"> | 427 <tr class="parity0"> |
428 <td class="annotate"> | 428 <td class="annotate"> |
429 <a href="/annotate/93b701795893/get-with-headers.py#25" | 429 <a href="/annotate/3e1445510fe7/primes.py#25" |
430 title="93b701795893: a">test@0</a> | 430 title="3e1445510fe7: a">test@0</a> |
431 </td> | 431 </td> |
432 <td class="source"><a href="#l25" id="l25"> 25</a> <span class="n">data</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">'\d+ years'</span><span class="p">,</span> <span class="s">'many years'</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span></td> | 432 <td class="source"><a href="#l25" id="l25"> 25</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">"__main__"</span><span class="p">:</span></td> |
433 </tr> | 433 </tr> |
434 <tr class="parity1"> | 434 <tr class="parity1"> |
435 <td class="annotate"> | 435 <td class="annotate"> |
436 <a href="/annotate/93b701795893/get-with-headers.py#26" | 436 <a href="/annotate/3e1445510fe7/primes.py#26" |
437 title="93b701795893: a">test@0</a> | 437 title="3e1445510fe7: a">test@0</a> |
438 </td> | 438 </td> |
439 <td class="source"><a href="#l26" id="l26"> 26</a> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></td> | 439 <td class="source"><a href="#l26" id="l26"> 26</a> <span class="kn">import</span> <span class="nn">sys</span></td> |
440 </tr> | 440 </tr> |
441 <tr class="parity0"> | 441 <tr class="parity0"> |
442 <td class="annotate"> | 442 <td class="annotate"> |
443 <a href="/annotate/93b701795893/get-with-headers.py#27" | 443 <a href="/annotate/3e1445510fe7/primes.py#27" |
444 title="93b701795893: a">test@0</a> | 444 title="3e1445510fe7: a">test@0</a> |
445 </td> | 445 </td> |
446 <td class="source"><a href="#l27" id="l27"> 27</a> </td> | 446 <td class="source"><a href="#l27" id="l27"> 27</a> <span class="kn">try</span><span class="p">:</span></td> |
447 </tr> | 447 </tr> |
448 <tr class="parity1"> | 448 <tr class="parity1"> |
449 <td class="annotate"> | 449 <td class="annotate"> |
450 <a href="/annotate/93b701795893/get-with-headers.py#28" | 450 <a href="/annotate/3e1445510fe7/primes.py#28" |
451 title="93b701795893: a">test@0</a> | 451 title="3e1445510fe7: a">test@0</a> |
452 </td> | 452 </td> |
453 <td class="source"><a href="#l28" id="l28"> 28</a> <span class="kn">if</span> <span class="mf">200</span> <span class="o"><=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o"><=</span> <span class="mf">299</span><span class="p">:</span></td> | 453 <td class="source"><a href="#l28" id="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="mf">1</span><span class="p">])</span></td> |
454 </tr> | 454 </tr> |
455 <tr class="parity0"> | 455 <tr class="parity0"> |
456 <td class="annotate"> | 456 <td class="annotate"> |
457 <a href="/annotate/93b701795893/get-with-headers.py#29" | 457 <a href="/annotate/3e1445510fe7/primes.py#29" |
458 title="93b701795893: a">test@0</a> | 458 title="3e1445510fe7: a">test@0</a> |
459 </td> | 459 </td> |
460 <td class="source"><a href="#l29" id="l29"> 29</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mf">0</span><span class="p">)</span></td> | 460 <td class="source"><a href="#l29" id="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> |
461 </tr> | 461 </tr> |
462 <tr class="parity1"> | 462 <tr class="parity1"> |
463 <td class="annotate"> | 463 <td class="annotate"> |
464 <a href="/annotate/93b701795893/get-with-headers.py#30" | 464 <a href="/annotate/3e1445510fe7/primes.py#30" |
465 title="93b701795893: a">test@0</a> | 465 title="3e1445510fe7: a">test@0</a> |
466 </td> | 466 </td> |
467 <td class="source"><a href="#l30" id="l30"> 30</a> <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mf">1</span><span class="p">)</span></td> | 467 <td class="source"><a href="#l30" id="l30"> 30</a> <span class="n">n</span> <span class="o">=</span> <span class="mf">10</span></td> |
468 </tr> | |
469 <tr class="parity0"> | |
470 <td class="annotate"> | |
471 <a href="/annotate/3e1445510fe7/primes.py#31" | |
472 title="3e1445510fe7: a">test@0</a> | |
473 </td> | |
474 <td class="source"><a href="#l31" id="l31"> 31</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td> | |
475 </tr> | |
476 <tr class="parity1"> | |
477 <td class="annotate"> | |
478 <a href="/annotate/3e1445510fe7/primes.py#32" | |
479 title="3e1445510fe7: a">test@0</a> | |
480 </td> | |
481 <td class="source"><a href="#l32" id="l32"> 32</a> <span class="kn">print</span> <span class="s">"The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">"</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> | |
468 </tr> | 482 </tr> |
469 </table> | 483 </table> |
470 </div> | 484 </div> |
471 </div> | 485 </div> |
472 </div> | 486 </div> |