##// END OF EJS Templates
tests: fix doc string in get-with-headers.py
Martin Geisler -
r8447:d5ebcf8f default
parent child Browse files
Show More
@@ -1,30 +1,30 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2
2
3 __doc__ = """This does HTTP get requests given a host:port and path and returns
3 """This does HTTP GET requests given a host:port and path and returns
4 a subset of the headers plus the body of the result."""
4 a subset of the headers plus the body of the result."""
5
5
6 import httplib, sys, re
6 import httplib, sys, re
7
7
8 try:
8 try:
9 import msvcrt, os
9 import msvcrt, os
10 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
10 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
11 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
11 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
12 except ImportError:
12 except ImportError:
13 pass
13 pass
14
14
15 headers = [h.lower() for h in sys.argv[3:]]
15 headers = [h.lower() for h in sys.argv[3:]]
16 conn = httplib.HTTPConnection(sys.argv[1])
16 conn = httplib.HTTPConnection(sys.argv[1])
17 conn.request("GET", sys.argv[2])
17 conn.request("GET", sys.argv[2])
18 response = conn.getresponse()
18 response = conn.getresponse()
19 print response.status, response.reason
19 print response.status, response.reason
20 for h in headers:
20 for h in headers:
21 if response.getheader(h, None) is not None:
21 if response.getheader(h, None) is not None:
22 print "%s: %s" % (h, response.getheader(h))
22 print "%s: %s" % (h, response.getheader(h))
23 print
23 print
24 data = response.read()
24 data = response.read()
25 data = re.sub('\d+ years', 'many years', data)
25 data = re.sub('\d+ years', 'many years', data)
26 sys.stdout.write(data)
26 sys.stdout.write(data)
27
27
28 if 200 <= response.status <= 299:
28 if 200 <= response.status <= 299:
29 sys.exit(0)
29 sys.exit(0)
30 sys.exit(1)
30 sys.exit(1)
@@ -1,495 +1,495 b''
1 adding get-with-headers.py
1 adding get-with-headers.py
2 adding isolatin.txt
2 adding isolatin.txt
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">
8 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
8 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
9 <head>
9 <head>
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: 7c3facd7c58a get-with-headers.py</title>
15 <title>test: 93b701795893 get-with-headers.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/7c3facd7c58a">log</a></li>
26 <li><a href="/shortlog/93b701795893">log</a></li>
27 <li><a href="/graph/7c3facd7c58a">graph</a></li>
27 <li><a href="/graph/93b701795893">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/7c3facd7c58a">changeset</a></li>
32 <li><a href="/rev/93b701795893">changeset</a></li>
33 <li><a href="/file/7c3facd7c58a/">browse</a></li>
33 <li><a href="/file/93b701795893/">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/7c3facd7c58a/get-with-headers.py">diff</a></li>
37 <li><a href="/diff/93b701795893/get-with-headers.py">diff</a></li>
38 <li><a href="/annotate/7c3facd7c58a/get-with-headers.py">annotate</a></li>
38 <li><a href="/annotate/93b701795893/get-with-headers.py">annotate</a></li>
39 <li><a href="/log/7c3facd7c58a/get-with-headers.py">file log</a></li>
39 <li><a href="/log/93b701795893/get-with-headers.py">file log</a></li>
40 <li><a href="/raw-file/7c3facd7c58a/get-with-headers.py">raw</a></li>
40 <li><a href="/raw-file/93b701795893/get-with-headers.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:7c3facd7c58a</h3>
46 <h3>view get-with-headers.py @ 0:93b701795893</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,
52 files, or words in the commit message</div>
52 files, or words in the commit message</div>
53 </form>
53 </form>
54
54
55 <div class="description">a</div>
55 <div class="description">a</div>
56
56
57 <table id="changesetEntry">
57 <table id="changesetEntry">
58 <tr>
58 <tr>
59 <th class="author">author</th>
59 <th class="author">author</th>
60 <td class="author">&#116;&#101;&#115;&#116;</td>
60 <td class="author">&#116;&#101;&#115;&#116;</td>
61 </tr>
61 </tr>
62 <tr>
62 <tr>
63 <th class="date">date</th>
63 <th class="date">date</th>
64 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (many years ago)</td>
64 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (many years ago)</td>
65 </tr>
65 </tr>
66 <tr>
66 <tr>
67 <th class="author">parents</th>
67 <th class="author">parents</th>
68 <td class="author"></td>
68 <td class="author"></td>
69 </tr>
69 </tr>
70 <tr>
70 <tr>
71 <th class="author">children</th>
71 <th class="author">children</th>
72 <td class="author"></td>
72 <td class="author"></td>
73 </tr>
73 </tr>
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="n">__doc__</span> <span class="o">=</span> <span class="s">&quot;&quot;&quot;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="s">a subset of the headers plus the body of the result.&quot;&quot;&quot;</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">&quot;GET&quot;</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">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</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">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</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">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</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">&quot;&quot;&quot;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.&quot;&quot;&quot;</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">&quot;GET&quot;</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">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</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">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</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">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</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>
80 <div class="sourcelast"></div>
80 <div class="sourcelast"></div>
81 </div>
81 </div>
82 </div>
82 </div>
83 </div>
83 </div>
84
84
85
85
86
86
87 </body>
87 </body>
88 </html>
88 </html>
89
89
90 % hgweb filerevision, html
90 % hgweb filerevision, html
91 200 Script output follows
91 200 Script output follows
92
92
93 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
93 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
94 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
94 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
95 <head>
95 <head>
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: 7c3facd7c58a isolatin.txt</title>
101 <title>test: 93b701795893 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/7c3facd7c58a">log</a></li>
112 <li><a href="/shortlog/93b701795893">log</a></li>
113 <li><a href="/graph/7c3facd7c58a">graph</a></li>
113 <li><a href="/graph/93b701795893">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/7c3facd7c58a">changeset</a></li>
118 <li><a href="/rev/93b701795893">changeset</a></li>
119 <li><a href="/file/7c3facd7c58a/">browse</a></li>
119 <li><a href="/file/93b701795893/">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/7c3facd7c58a/isolatin.txt">diff</a></li>
123 <li><a href="/diff/93b701795893/isolatin.txt">diff</a></li>
124 <li><a href="/annotate/7c3facd7c58a/isolatin.txt">annotate</a></li>
124 <li><a href="/annotate/93b701795893/isolatin.txt">annotate</a></li>
125 <li><a href="/log/7c3facd7c58a/isolatin.txt">file log</a></li>
125 <li><a href="/log/93b701795893/isolatin.txt">file log</a></li>
126 <li><a href="/raw-file/7c3facd7c58a/isolatin.txt">raw</a></li>
126 <li><a href="/raw-file/93b701795893/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:7c3facd7c58a</h3>
132 <h3>view isolatin.txt @ 0:93b701795893</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,
138 files, or words in the commit message</div>
138 files, or words in the commit message</div>
139 </form>
139 </form>
140
140
141 <div class="description">a</div>
141 <div class="description">a</div>
142
142
143 <table id="changesetEntry">
143 <table id="changesetEntry">
144 <tr>
144 <tr>
145 <th class="author">author</th>
145 <th class="author">author</th>
146 <td class="author">&#116;&#101;&#115;&#116;</td>
146 <td class="author">&#116;&#101;&#115;&#116;</td>
147 </tr>
147 </tr>
148 <tr>
148 <tr>
149 <th class="date">date</th>
149 <th class="date">date</th>
150 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (many years ago)</td>
150 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (many years ago)</td>
151 </tr>
151 </tr>
152 <tr>
152 <tr>
153 <th class="author">parents</th>
153 <th class="author">parents</th>
154 <td class="author"></td>
154 <td class="author"></td>
155 </tr>
155 </tr>
156 <tr>
156 <tr>
157 <th class="author">children</th>
157 <th class="author">children</th>
158 <td class="author"></td>
158 <td class="author"></td>
159 </tr>
159 </tr>
160
160
161 </table>
161 </table>
162
162
163 <div class="overflow">
163 <div class="overflow">
164 <div class="sourcefirst"> line source</div>
164 <div class="sourcefirst"> line source</div>
165 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> h?bsch</div>
165 <div class="parity0 source"><a href="#l1" id="l1"> 1</a> h?bsch</div>
166 <div class="sourcelast"></div>
166 <div class="sourcelast"></div>
167 </div>
167 </div>
168 </div>
168 </div>
169 </div>
169 </div>
170
170
171
171
172
172
173 </body>
173 </body>
174 </html>
174 </html>
175
175
176 % hgweb fileannotate, html
176 % hgweb fileannotate, html
177 200 Script output follows
177 200 Script output follows
178
178
179 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
179 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
180 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
180 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
181 <head>
181 <head>
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: get-with-headers.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/7c3facd7c58a">log</a></li>
198 <li><a href="/shortlog/93b701795893">log</a></li>
199 <li><a href="/graph/7c3facd7c58a">graph</a></li>
199 <li><a href="/graph/93b701795893">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/7c3facd7c58a">changeset</a></li>
205 <li><a href="/rev/93b701795893">changeset</a></li>
206 <li><a href="/file/7c3facd7c58a/">browse</a></li>
206 <li><a href="/file/93b701795893/">browse</a></li>
207 </ul>
207 </ul>
208 <ul>
208 <ul>
209 <li><a href="/file/7c3facd7c58a/get-with-headers.py">file</a></li>
209 <li><a href="/file/93b701795893/get-with-headers.py">file</a></li>
210 <li><a href="/diff/7c3facd7c58a/get-with-headers.py">diff</a></li>
210 <li><a href="/diff/93b701795893/get-with-headers.py">diff</a></li>
211 <li class="active">annotate</li>
211 <li class="active">annotate</li>
212 <li><a href="/log/7c3facd7c58a/get-with-headers.py">file log</a></li>
212 <li><a href="/log/93b701795893/get-with-headers.py">file log</a></li>
213 <li><a href="/raw-annotate/7c3facd7c58a/get-with-headers.py">raw</a></li>
213 <li><a href="/raw-annotate/93b701795893/get-with-headers.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:7c3facd7c58a</h3>
219 <h3>annotate get-with-headers.py @ 0:93b701795893</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,
225 files, or words in the commit message</div>
225 files, or words in the commit message</div>
226 </form>
226 </form>
227
227
228 <div class="description">a</div>
228 <div class="description">a</div>
229
229
230 <table id="changesetEntry">
230 <table id="changesetEntry">
231 <tr>
231 <tr>
232 <th class="author">author</th>
232 <th class="author">author</th>
233 <td class="author">&#116;&#101;&#115;&#116;</td>
233 <td class="author">&#116;&#101;&#115;&#116;</td>
234 </tr>
234 </tr>
235 <tr>
235 <tr>
236 <th class="date">date</th>
236 <th class="date">date</th>
237 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (many years ago)</td>
237 <td class="date">Thu Jan 01 00:00:00 1970 +0000 (many years ago)</td>
238 </tr>
238 </tr>
239 <tr>
239 <tr>
240 <th class="author">parents</th>
240 <th class="author">parents</th>
241 <td class="author"></td>
241 <td class="author"></td>
242 </tr>
242 </tr>
243 <tr>
243 <tr>
244 <th class="author">children</th>
244 <th class="author">children</th>
245 <td class="author"></td>
245 <td class="author"></td>
246 </tr>
246 </tr>
247
247
248 </table>
248 </table>
249
249
250 <br/>
250 <br/>
251
251
252 <div class="overflow">
252 <div class="overflow">
253 <table class="bigtable">
253 <table class="bigtable">
254 <tr>
254 <tr>
255 <th class="annotate">rev</th>
255 <th class="annotate">rev</th>
256 <th class="line">&nbsp;&nbsp;line source</th>
256 <th class="line">&nbsp;&nbsp;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/7c3facd7c58a/get-with-headers.py#1"
261 <a href="/annotate/93b701795893/get-with-headers.py#1"
262 title="7c3facd7c58a: a">test@0</a>
262 title="93b701795893: 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/7c3facd7c58a/get-with-headers.py#2"
268 <a href="/annotate/93b701795893/get-with-headers.py#2"
269 title="7c3facd7c58a: a">test@0</a>
269 title="93b701795893: 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/7c3facd7c58a/get-with-headers.py#3"
275 <a href="/annotate/93b701795893/get-with-headers.py#3"
276 title="7c3facd7c58a: a">test@0</a>
276 title="93b701795893: a">test@0</a>
277 </td>
277 </td>
278 <td class="source"><a href="#l3" id="l3"> 3</a> <span class="n">__doc__</span> <span class="o">=</span> <span class="s">&quot;&quot;&quot;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">&quot;&quot;&quot;This does HTTP GET requests given a host:port and path and returns</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/7c3facd7c58a/get-with-headers.py#4"
282 <a href="/annotate/93b701795893/get-with-headers.py#4"
283 title="7c3facd7c58a: a">test@0</a>
283 title="93b701795893: a">test@0</a>
284 </td>
284 </td>
285 <td class="source"><a href="#l4" id="l4"> 4</a> <span class="s">a subset of the headers plus the body of the result.&quot;&quot;&quot;</span></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.&quot;&quot;&quot;</span></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/7c3facd7c58a/get-with-headers.py#5"
289 <a href="/annotate/93b701795893/get-with-headers.py#5"
290 title="7c3facd7c58a: a">test@0</a>
290 title="93b701795893: 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> </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/7c3facd7c58a/get-with-headers.py#6"
296 <a href="/annotate/93b701795893/get-with-headers.py#6"
297 title="7c3facd7c58a: a">test@0</a>
297 title="93b701795893: 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="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>
300 </tr>
300 </tr>
301 <tr class="parity0">
301 <tr class="parity0">
302 <td class="annotate">
302 <td class="annotate">
303 <a href="/annotate/7c3facd7c58a/get-with-headers.py#7"
303 <a href="/annotate/93b701795893/get-with-headers.py#7"
304 title="7c3facd7c58a: a">test@0</a>
304 title="93b701795893: 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> </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/7c3facd7c58a/get-with-headers.py#8"
310 <a href="/annotate/93b701795893/get-with-headers.py#8"
311 title="7c3facd7c58a: a">test@0</a>
311 title="93b701795893: 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> <span class="kn">try</span><span class="p">:</span></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/7c3facd7c58a/get-with-headers.py#9"
317 <a href="/annotate/93b701795893/get-with-headers.py#9"
318 title="7c3facd7c58a: a">test@0</a>
318 title="93b701795893: 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">import</span> <span class="nn">msvcrt</span><span class="o">,</span> <span class="nn">os</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/7c3facd7c58a/get-with-headers.py#10"
324 <a href="/annotate/93b701795893/get-with-headers.py#10"
325 title="7c3facd7c58a: a">test@0</a>
325 title="93b701795893: 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> <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>
328 </tr>
328 </tr>
329 <tr class="parity0">
329 <tr class="parity0">
330 <td class="annotate">
330 <td class="annotate">
331 <a href="/annotate/7c3facd7c58a/get-with-headers.py#11"
331 <a href="/annotate/93b701795893/get-with-headers.py#11"
332 title="7c3facd7c58a: a">test@0</a>
332 title="93b701795893: 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="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>
335 </tr>
335 </tr>
336 <tr class="parity1">
336 <tr class="parity1">
337 <td class="annotate">
337 <td class="annotate">
338 <a href="/annotate/7c3facd7c58a/get-with-headers.py#12"
338 <a href="/annotate/93b701795893/get-with-headers.py#12"
339 title="7c3facd7c58a: a">test@0</a>
339 title="93b701795893: 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="kn">except</span> <span class="ne">ImportError</span><span class="p">:</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/7c3facd7c58a/get-with-headers.py#13"
345 <a href="/annotate/93b701795893/get-with-headers.py#13"
346 title="7c3facd7c58a: a">test@0</a>
346 title="93b701795893: 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">pass</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/7c3facd7c58a/get-with-headers.py#14"
352 <a href="/annotate/93b701795893/get-with-headers.py#14"
353 title="7c3facd7c58a: a">test@0</a>
353 title="93b701795893: 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> </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/7c3facd7c58a/get-with-headers.py#15"
359 <a href="/annotate/93b701795893/get-with-headers.py#15"
360 title="7c3facd7c58a: a">test@0</a>
360 title="93b701795893: 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="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>
363 </tr>
363 </tr>
364 <tr class="parity1">
364 <tr class="parity1">
365 <td class="annotate">
365 <td class="annotate">
366 <a href="/annotate/7c3facd7c58a/get-with-headers.py#16"
366 <a href="/annotate/93b701795893/get-with-headers.py#16"
367 title="7c3facd7c58a: a">test@0</a>
367 title="93b701795893: 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="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>
370 </tr>
370 </tr>
371 <tr class="parity0">
371 <tr class="parity0">
372 <td class="annotate">
372 <td class="annotate">
373 <a href="/annotate/7c3facd7c58a/get-with-headers.py#17"
373 <a href="/annotate/93b701795893/get-with-headers.py#17"
374 title="7c3facd7c58a: a">test@0</a>
374 title="93b701795893: 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">&quot;GET&quot;</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="n">conn</span><span class="o">.</span><span class="n">request</span><span class="p">(</span><span class="s">&quot;GET&quot;</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>
377 </tr>
377 </tr>
378 <tr class="parity1">
378 <tr class="parity1">
379 <td class="annotate">
379 <td class="annotate">
380 <a href="/annotate/7c3facd7c58a/get-with-headers.py#18"
380 <a href="/annotate/93b701795893/get-with-headers.py#18"
381 title="7c3facd7c58a: a">test@0</a>
381 title="93b701795893: 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">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>
384 </tr>
384 </tr>
385 <tr class="parity0">
385 <tr class="parity0">
386 <td class="annotate">
386 <td class="annotate">
387 <a href="/annotate/7c3facd7c58a/get-with-headers.py#19"
387 <a href="/annotate/93b701795893/get-with-headers.py#19"
388 title="7c3facd7c58a: a">test@0</a>
388 title="93b701795893: 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">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>
391 </tr>
391 </tr>
392 <tr class="parity1">
392 <tr class="parity1">
393 <td class="annotate">
393 <td class="annotate">
394 <a href="/annotate/7c3facd7c58a/get-with-headers.py#20"
394 <a href="/annotate/93b701795893/get-with-headers.py#20"
395 title="7c3facd7c58a: a">test@0</a>
395 title="93b701795893: 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">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="n">headers</span><span class="p">:</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/7c3facd7c58a/get-with-headers.py#21"
401 <a href="/annotate/93b701795893/get-with-headers.py#21"
402 title="7c3facd7c58a: a">test@0</a>
402 title="93b701795893: 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> <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>
405 </tr>
405 </tr>
406 <tr class="parity1">
406 <tr class="parity1">
407 <td class="annotate">
407 <td class="annotate">
408 <a href="/annotate/7c3facd7c58a/get-with-headers.py#22"
408 <a href="/annotate/93b701795893/get-with-headers.py#22"
409 title="7c3facd7c58a: a">test@0</a>
409 title="93b701795893: 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">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</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="kn">print</span> <span class="s">&quot;</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</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>
412 </tr>
412 </tr>
413 <tr class="parity0">
413 <tr class="parity0">
414 <td class="annotate">
414 <td class="annotate">
415 <a href="/annotate/7c3facd7c58a/get-with-headers.py#23"
415 <a href="/annotate/93b701795893/get-with-headers.py#23"
416 title="7c3facd7c58a: a">test@0</a>
416 title="93b701795893: 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">print</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/7c3facd7c58a/get-with-headers.py#24"
422 <a href="/annotate/93b701795893/get-with-headers.py#24"
423 title="7c3facd7c58a: a">test@0</a>
423 title="93b701795893: 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> <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>
426 </tr>
426 </tr>
427 <tr class="parity0">
427 <tr class="parity0">
428 <td class="annotate">
428 <td class="annotate">
429 <a href="/annotate/7c3facd7c58a/get-with-headers.py#25"
429 <a href="/annotate/93b701795893/get-with-headers.py#25"
430 title="7c3facd7c58a: a">test@0</a>
430 title="93b701795893: 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">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</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="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">&#39;\d+ years&#39;</span><span class="p">,</span> <span class="s">&#39;many years&#39;</span><span class="p">,</span> <span class="n">data</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/7c3facd7c58a/get-with-headers.py#26"
436 <a href="/annotate/93b701795893/get-with-headers.py#26"
437 title="7c3facd7c58a: a">test@0</a>
437 title="93b701795893: 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="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>
440 </tr>
440 </tr>
441 <tr class="parity0">
441 <tr class="parity0">
442 <td class="annotate">
442 <td class="annotate">
443 <a href="/annotate/7c3facd7c58a/get-with-headers.py#27"
443 <a href="/annotate/93b701795893/get-with-headers.py#27"
444 title="7c3facd7c58a: a">test@0</a>
444 title="93b701795893: 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> </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/7c3facd7c58a/get-with-headers.py#28"
450 <a href="/annotate/93b701795893/get-with-headers.py#28"
451 title="7c3facd7c58a: a">test@0</a>
451 title="93b701795893: 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">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</span> <span class="mf">299</span><span class="p">:</span></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">&lt;=</span> <span class="n">response</span><span class="o">.</span><span class="n">status</span> <span class="o">&lt;=</span> <span class="mf">299</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/7c3facd7c58a/get-with-headers.py#29"
457 <a href="/annotate/93b701795893/get-with-headers.py#29"
458 title="7c3facd7c58a: a">test@0</a>
458 title="93b701795893: 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="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>
461 </tr>
461 </tr>
462 <tr class="parity1">
462 <tr class="parity1">
463 <td class="annotate">
463 <td class="annotate">
464 <a href="/annotate/7c3facd7c58a/get-with-headers.py#30"
464 <a href="/annotate/93b701795893/get-with-headers.py#30"
465 title="7c3facd7c58a: a">test@0</a>
465 title="93b701795893: 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">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>
468 </tr>
468 </tr>
469 </table>
469 </table>
470 </div>
470 </div>
471 </div>
471 </div>
472 </div>
472 </div>
473
473
474
474
475
475
476 </body>
476 </body>
477 </html>
477 </html>
478
478
479 % hgweb fileannotate, raw
479 % hgweb fileannotate, raw
480
480
481 % hgweb filerevision, raw
481 % hgweb filerevision, raw
482
482
483 % hgweb highlightcss friendly
483 % hgweb highlightcss friendly
484 200 Script output follows
484 200 Script output follows
485
485
486 /* pygments_style = friendly */
486 /* pygments_style = friendly */
487
487
488 % errors encountered
488 % errors encountered
489 % hg serve again
489 % hg serve again
490 % hgweb highlightcss fruity
490 % hgweb highlightcss fruity
491 200 Script output follows
491 200 Script output follows
492
492
493 /* pygments_style = fruity */
493 /* pygments_style = fruity */
494
494
495 % errors encountered
495 % errors encountered
General Comments 0
You need to be logged in to leave comments. Login now