Added a sorta-real index page, fixed docs to be 0.9 version (great, another place to update the version number).
This commit is contained in:
		@@ -49,9 +49,9 @@ copyright = u'2009, <eventlet contributors>'
 | 
				
			|||||||
# built documents.
 | 
					# built documents.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# The short X.Y version.
 | 
					# The short X.Y version.
 | 
				
			||||||
version = '0.8'
 | 
					version = '0.9'
 | 
				
			||||||
# The full version, including alpha/beta/rc tags.
 | 
					# The full version, including alpha/beta/rc tags.
 | 
				
			||||||
release = '0.8'
 | 
					release = '0.9pre'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The language for content autogenerated by Sphinx. Refer to documentation
 | 
					# The language for content autogenerated by Sphinx. Refer to documentation
 | 
				
			||||||
# for a list of supported languages.
 | 
					# for a list of supported languages.
 | 
				
			||||||
@@ -82,7 +82,7 @@ exclude_trees = ['_build']
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# If true, sectionauthor and moduleauthor directives will be shown in the
 | 
					# If true, sectionauthor and moduleauthor directives will be shown in the
 | 
				
			||||||
# output. They are ignored by default.
 | 
					# output. They are ignored by default.
 | 
				
			||||||
#show_authors = False
 | 
					show_authors = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The name of the Pygments (syntax highlighting) style to use.
 | 
					# The name of the Pygments (syntax highlighting) style to use.
 | 
				
			||||||
pygments_style = 'sphinx'
 | 
					pygments_style = 'sphinx'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										105
									
								
								doc/real_index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								doc/real_index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,105 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
				
			||||||
 | 
					  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<html xmlns="http://www.w3.org/1999/xhtml">
 | 
				
			||||||
 | 
					  <head>
 | 
				
			||||||
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <title>Eventlet Networking Library</title>
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="doc/_static/default.css" type="text/css" />
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="doc/_static/pygments.css" type="text/css" />
 | 
				
			||||||
 | 
					    <link rel="top" title="Eventlet Networking Library" href="" />
 | 
				
			||||||
 | 
					  </head>
 | 
				
			||||||
 | 
					  <body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div class="document">
 | 
				
			||||||
 | 
					      <div class="documentwrapper">
 | 
				
			||||||
 | 
					        <div class="bodywrapper">
 | 
				
			||||||
 | 
					          <div class="body">
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					  <div class="section" id="eventlet">
 | 
				
			||||||
 | 
					<h1>Eventlet</h1>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>Eventlet is a networking library written in Python. It achieves high scalability by using <a class="reference external" href="http://en.wikipedia.org/wiki/Asynchronous_I/O#Select.28.2Fpoll.29_loops">non-blocking io</a> while at the same time retaining high programmer usability by using <a class="reference external" href="http://en.wikipedia.org/wiki/Coroutine">coroutines</a> to make the non-blocking io operations appear blocking at the source code level.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Documentation</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<a href="doc/">API Documentation</a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Installation</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>To install eventlet, simply:
 | 
				
			||||||
 | 
					<pre>
 | 
				
			||||||
 | 
					easy_install eventlet
 | 
				
			||||||
 | 
					</pre></p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>Alternately, you can download the source tarball:
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					<li><a href="http://pypi.python.org/packages/source/e/eventlet/eventlet-0.8.12.tar.gz#md5=f9888a6b4135a2c124200d233f5f5829">eventlet-0.8.12.tar.gz</a></li>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Mailing List</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p><a href="https://lists.secondlife.com/cgi-bin/mailman/listinfo/eventletdev">eventletdev at lists.secondlife.com</a></p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>This is a relatively low-traffic list about using and developing eventlet.  Look through the <a href="https://lists.secondlife.com/pipermail/eventletdev/">archives</a> for some useful information and possible answers to questions.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<h3>Development</h3>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p><a href="http://bitbucket.org/which_linden/eventlet/">"root" repository</a></p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<p>We use Mercurial for our source control, hosted by BitBucket.  It's easy to branch off the main repository and contribute patches, tests, and documentation back upstream.</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<div class="section" id="web-crawler-example">
 | 
				
			||||||
 | 
					<h2>Web Crawler Example<a class="headerlink" href="#web-crawler-example" title="Permalink to this headline">¶</a></h2>
 | 
				
			||||||
 | 
					<p>This is a simple web “crawler” that fetches a bunch of urls using a coroutine pool.  It has as much concurrency (i.e. pages being fetched simultaneously) as coroutines in the pool.</p>
 | 
				
			||||||
 | 
					<div class="highlight-python"><div class="highlight"><pre><span class="n">urls</span> <span class="o">=</span> <span class="p">[</span><span class="s">"http://www.google.com/intl/en_ALL/images/logo.gif"</span><span class="p">,</span>
 | 
				
			||||||
 | 
					       <span class="s">"http://wiki.secondlife.com/w/images/secondlife.jpg"</span><span class="p">,</span>
 | 
				
			||||||
 | 
					       <span class="s">"http://us.i1.yimg.com/us.yimg.com/i/ww/beta/y3.gif"</span><span class="p">]</span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<span class="kn">import</span> <span class="nn">time</span>
 | 
				
			||||||
 | 
					<span class="kn">from</span> <span class="nn">eventlet</span> <span class="kn">import</span> <span class="n">coros</span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<span class="c"># this imports a special version of the urllib2 module that uses non-blocking IO</span>
 | 
				
			||||||
 | 
					<span class="kn">from</span> <span class="nn">eventlet.green</span> <span class="kn">import</span> <span class="n">urllib2</span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<span class="k">def</span> <span class="nf">fetch</span><span class="p">(</span><span class="n">url</span><span class="p">):</span>
 | 
				
			||||||
 | 
					    <span class="k">print</span> <span class="s">"</span><span class="si">%s</span><span class="s"> fetching </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">asctime</span><span class="p">(),</span> <span class="n">url</span><span class="p">)</span>
 | 
				
			||||||
 | 
					    <span class="n">data</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">url</span><span class="p">)</span>
 | 
				
			||||||
 | 
					    <span class="k">print</span> <span class="s">"</span><span class="si">%s</span><span class="s"> fetched </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">asctime</span><span class="p">(),</span> <span class="n">data</span><span class="p">)</span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<span class="n">pool</span> <span class="o">=</span> <span class="n">coros</span><span class="o">.</span><span class="n">CoroutinePool</span><span class="p">(</span><span class="n">max_size</span><span class="o">=</span><span class="mf">4</span><span class="p">)</span>
 | 
				
			||||||
 | 
					<span class="n">waiters</span> <span class="o">=</span> <span class="p">[]</span>
 | 
				
			||||||
 | 
					<span class="k">for</span> <span class="n">url</span> <span class="ow">in</span> <span class="n">urls</span><span class="p">:</span>
 | 
				
			||||||
 | 
					    <span class="n">waiters</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pool</span><span class="o">.</span><span class="n">execute</span><span class="p">(</span><span class="n">fetch</span><span class="p">,</span> <span class="n">url</span><span class="p">))</span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<span class="c"># wait for all the coroutines to come back before exiting the process</span>
 | 
				
			||||||
 | 
					<span class="k">for</span> <span class="n">waiter</span> <span class="ow">in</span> <span class="n">waiters</span><span class="p">:</span>
 | 
				
			||||||
 | 
					    <span class="n">waiter</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
 | 
				
			||||||
 | 
					</pre></div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<div class="section" id="contents">
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<div class="sphinxsidebar">
 | 
				
			||||||
 | 
					<div class="sphinxsidebarwrapper">
 | 
				
			||||||
 | 
					<h3><a href="">Links</a></h3>
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					<li><a class="reference external" href="doc/">Documentation</a></li>
 | 
				
			||||||
 | 
					<li><a class="reference external" href="https://lists.secondlife.com/pipermail/eventletdev/">Mailing list archives</a></li>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div class="related">
 | 
				
			||||||
 | 
					      <h3>Navigation</h3>
 | 
				
			||||||
 | 
					      <ul>
 | 
				
			||||||
 | 
					        <li>.</li> 
 | 
				
			||||||
 | 
					      </ul>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					  </body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user