Commits

Anonymous committed 924380d

Reorganized so that html and htmlhelp results are off root directory

Comments (0)

Files changed (117)

Python3PatternsAndIdioms-html.zip

Binary file removed.

Python3PatternsAndIdioms-htmlhelp.zip

Binary file removed.

html/CanonicalScript.html

+<!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>A Canonical Form for Command-Line Programs &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Part III: Patterns" href="Part3.html" />
+    <link rel="prev" title="Discovering the Details About Your Platform" href="MachineDiscovery.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Part3.html" title="Part III: Patterns"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="MachineDiscovery.html" title="Discovering the Details About Your Platform"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="a-canonical-form-for-command-line-programs">
+<span id="index-0"></span><h1>A Canonical Form for Command-Line Programs<a class="headerlink" href="#a-canonical-form-for-command-line-programs" title="Permalink to this headline">¶</a></h1>
+<p>Creating Python programs for command-line use involves a certain amount of
+repetitious coding, which can often be left off or forgotten. Here is a form
+which includes everthing.</p>
+<p>Note that if you are using Windows, you can add Python programs to your &#8220;File
+New&#8221; menu and automatically include the above text in the new file. <a class="reference external" href="http://articles.techrepublic.com.com/5100-10878_11-5034852.html">This
+article</a>
+shows you how. Other operating systems have their own automation features.</p>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="MachineDiscovery.html" title="previous chapter">Discovering the Details About Your Platform</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="Part3.html" title="next chapter">Part III: Patterns</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/CanonicalScript.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Part3.html" title="Part III: Patterns"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="MachineDiscovery.html" title="Discovering the Details About Your Platform"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/Comprehensions.html

+<!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>Comprehensions &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Coroutines &amp; Concurrency" href="CoroutinesAndConcurrency.html" />
+    <link rel="prev" title="Generators, Iterators, and Itertools" href="GeneratorsIterators.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="CoroutinesAndConcurrency.html" title="Coroutines &amp; Concurrency"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="GeneratorsIterators.html" title="Generators, Iterators, and Itertools"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="comprehensions">
+<span id="index-1"></span><h1>Comprehensions<a class="headerlink" href="#comprehensions" title="Permalink to this headline">¶</a></h1>
+<p>History: where did they come from?</p>
+<p>They require a mind shift.</p>
+<p>What makes them so compelling (once you &#8216;get it&#8217;)?</p>
+<p>A two-level list comprehension using <tt class="docutils literal"><span class="pre">os.walk()</span></tt>:</p>
+<div class="highlight"><pre><span class="c"># Comprehensions/os_walk_comprehension.py</span>
+<span class="kn">import</span> <span class="nn">os</span>
+<span class="n">restFiles</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="mf">0</span><span class="p">],</span> <span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="s">&quot;.&quot;</span><span class="p">)</span>
+             <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">d</span><span class="p">[</span><span class="mf">2</span><span class="p">]</span> <span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s">&quot;.rst&quot;</span><span class="p">)]</span>
+<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">restFiles</span><span class="p">:</span>
+    <span class="k">print</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
+</pre></div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="GeneratorsIterators.html" title="previous chapter">Generators, Iterators, and Itertools</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="CoroutinesAndConcurrency.html" title="next chapter">Coroutines &amp; Concurrency</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/Comprehensions.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="CoroutinesAndConcurrency.html" title="Coroutines &amp; Concurrency"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="GeneratorsIterators.html" title="Generators, Iterators, and Itertools"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/Contributors.html

+<!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>Contributors &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="A Note To Readers" href="NoteToReaders.html" />
+    <link rel="prev" title="Python 3 Patterns &amp; Idioms" href="index.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="NoteToReaders.html" title="A Note To Readers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Python 3 Patterns &amp; Idioms"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="contributors">
+<h1>Contributors<a class="headerlink" href="#contributors" title="Permalink to this headline">¶</a></h1>
+<p>Contributors ordered by the number of Launchpad.net Karma points.</p>
+<p class="rubric">Karma List</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Launchpad.net now has a web services interface; we need to figure
+out how to automatically download the Karma list.</p>
+</div>
+<div class="section" id="thanks-to">
+<h2>Thanks To<a class="headerlink" href="#thanks-to" title="Permalink to this headline">¶</a></h2>
+<blockquote>
+<ul class="simple">
+<li>Launchpad.net</li>
+<li>Creator(s) of Sphinx</li>
+<li>And of course, Guido and the team for their incessant improvement of Python,
+especially for taking the risk in breaking backward compatibility in Python
+3.0 to refactor the language.</li>
+</ul>
+</blockquote>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h3><a href="index.html">Table Of Contents</a></h3>
+            <ul>
+<li><a class="reference external" href="">Contributors</a><ul>
+<li><a class="reference external" href="#thanks-to">Thanks To</a></li>
+</ul>
+</li>
+</ul>
+
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="index.html" title="previous chapter">Python 3 Patterns &amp; Idioms</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="NoteToReaders.html" title="next chapter">A Note To Readers</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/Contributors.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="NoteToReaders.html" title="A Note To Readers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Python 3 Patterns &amp; Idioms"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/CoroutinesAndConcurrency.html

+<!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>Coroutines &amp; Concurrency &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Jython" href="jython.html" />
+    <link rel="prev" title="Comprehensions" href="Comprehensions.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="jython.html" title="Jython"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Comprehensions.html" title="Comprehensions"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="coroutines-concurrency">
+<span id="index-2"></span><h1>Coroutines &amp; Concurrency<a class="headerlink" href="#coroutines-concurrency" title="Permalink to this headline">¶</a></h1>
+<p>Primary focus should be on:</p>
+<ol class="arabic simple">
+<li>Using <tt class="docutils literal"><span class="pre">yield</span></tt> to create coroutines</li>
+<li>Using the new <tt class="docutils literal"><span class="pre">multiprocessing</span></tt> module</li>
+</ol>
+<p>and then showing some alternative techniques.</p>
+<p>foo bar <tt class="xref docutils literal"><span class="pre">input()</span></tt> baz.</p>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="Comprehensions.html" title="previous chapter">Comprehensions</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="jython.html" title="next chapter">Jython</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/CoroutinesAndConcurrency.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="jython.html" title="Jython"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Comprehensions.html" title="Comprehensions"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/DeveloperGuide.html

+<!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>Developer Guide &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Part I: Foundations" href="Part1.html" />
+    <link rel="prev" title="Book Development Rules" href="Rules.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Part1.html" title="Part I: Foundations"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Rules.html" title="Book Development Rules"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="developer-guide">
+<h1>Developer Guide<a class="headerlink" href="#developer-guide" title="Permalink to this headline">¶</a></h1>
+<p>Details for people participating in the book development process.</p>
+<div class="section" id="for-windows-users">
+<h2>For Windows Users<a class="headerlink" href="#for-windows-users" title="Permalink to this headline">¶</a></h2>
+<p>You need to install Cygwin; go to:</p>
+<blockquote>
+<a class="reference external" href="http://www.cygwin.com">http://www.cygwin.com</a></blockquote>
+<p>You need to install at least the <tt class="docutils literal"><span class="pre">make</span></tt> utility, but I find that <tt class="docutils literal"><span class="pre">chere</span></tt>
+(command prompt here) is also very useful.</p>
+<p>Also install <tt class="docutils literal"><span class="pre">openssh</span></tt> (under <strong>Net</strong>), so you can create your RSA key
+for Bazaar.</p>
+<p>I&#8217;ve discovered that it&#8217;s best if you <em>don&#8217;t</em> install Python as part of
+Cygwin; instead use a single Python installation under windows. Cygwin will
+find the installation if it is on your Windows PATH.</p>
+<p>Because of this, you shouldn&#8217;t select &#8220;mercurial&#8221; or &#8220;bazaar&#8221; when you&#8217;re
+installing Cygwin because that will cause Python to be installed. Instead,
+install them as Windows applications (see below).</p>
+</div>
+<div class="section" id="installing-sphinx">
+<h2>Installing Sphinx<a class="headerlink" href="#installing-sphinx" title="Permalink to this headline">¶</a></h2>
+<p>Because we are sometimes pushing the boundaries of Sphinx, you&#8217;ll need to get
+the very latest development version (a.k.a. the &#8220;tip&#8221;).</p>
+<ol class="arabic">
+<li><p class="first">Get mercurial:</p>
+<blockquote>
+<p><a class="reference external" href="http://www.selenic.com/mercurial">http://www.selenic.com/mercurial</a></p>
+<p>Avoid installing the tortoiseHG part - it has caused trouble w/ Python
+debuggers.</p>
+</blockquote>
+</li>
+<li><p class="first">To get the Sphinx trunk, start with:</p>
+<blockquote>
+<p><tt class="docutils literal"><span class="pre">$</span> <span class="pre">hg</span> <span class="pre">clone</span> <span class="pre">http://www.bitbucket.org/birkenfeld/sphinx/</span></tt></p>
+<p>and to update, use:</p>
+<p><tt class="docutils literal"><span class="pre">$</span> <span class="pre">hg</span> <span class="pre">pull</span></tt></p>
+<p>Once you update, run</p>
+<p><tt class="docutils literal"><span class="pre">$</span> <span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">install</span></tt></p>
+<p>We may talk about minimum version numbers to process the book. Check your
+version with:</p>
+<p><tt class="docutils literal"><span class="pre">$</span> <span class="pre">hg</span> <span class="pre">identify</span> <span class="pre">-n</span></tt></p>
+</blockquote>
+</li>
+</ol>
+<p>The full anouncement from Georg (Sphinx creator) is here:</p>
+<blockquote>
+<a class="reference external" href="http://groups.google.com/group/sphinx-dev/browse_thread/thread/6dd415847e5cbf7c">http://groups.google.com/group/sphinx-dev/browse_thread/thread/6dd415847e5cbf7c</a></blockquote>
+<p>Mercurial Cheat sheets &amp; quick starts should be enough to answer your questions:</p>
+<blockquote>
+<ul class="simple">
+<li><a class="reference external" href="http://edong.net/2008v1/docs/dongwoo-Hg-120dpi.png">http://edong.net/2008v1/docs/dongwoo-Hg-120dpi.png</a></li>
+<li><a class="reference external" href="http://www.ivy.fr/mercurial/ref/v1.0/">http://www.ivy.fr/mercurial/ref/v1.0/</a></li>
+</ul>
+</blockquote>
+</div>
+<div class="section" id="getting-the-development-branch-of-the-book">
+<h2>Getting the Development Branch of the Book<a class="headerlink" href="#getting-the-development-branch-of-the-book" title="Permalink to this headline">¶</a></h2>
+<p>This book uses Launchpad.net tools, and additional tools if necessary.</p>
+<ol class="arabic">
+<li><p class="first">Sign up for an account at <a class="reference external" href="http://Launchpad.net">http://Launchpad.net</a>.</p>
+</li>
+<li><p class="first">Install the Bazaar distributed version control system (DVCS):</p>
+<p><a class="reference external" href="https://launchpad.net/bzr">https://launchpad.net/bzr</a></p>
+<p>It&#8217;s helpful to follow this Bazaar mini-tutorial:</p>
+<p><a class="reference external" href="http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html">http://doc.bazaar-vcs.org/latest/en/mini-tutorial/index.html</a></p>
+<p>And here&#8217;s the complete Bazaar user guide:</p>
+<p><a class="reference external" href="http://doc.bazaar-vcs.org/latest/en/user-guide/index.html">http://doc.bazaar-vcs.org/latest/en/user-guide/index.html</a></p>
+</li>
+<li><p class="first">You must create an rsa key. Under OSX and Linux, and if you installed
+<tt class="docutils literal"><span class="pre">openssh</span> <span class="pre">with</span></tt> Cygwin under windows, you run <tt class="docutils literal"><span class="pre">ssh-keygen</span></tt> to generate
+the key, and then add it to your Launchpad account.</p>
+</li>
+<li><p class="first">Go to <a class="reference external" href="https://code.launchpad.net/python3patterns">https://code.launchpad.net/python3patterns</a>, and you&#8217;ll see
+instructions for getting a branch for development.</p>
+</li>
+<li><p class="first">Work on your branch and make local commits.</p>
+</li>
+</ol>
+</div>
+<div class="section" id="building-the-book">
+<h2>Building the Book<a class="headerlink" href="#building-the-book" title="Permalink to this headline">¶</a></h2>
+<p>To ensure you have Cygwin installed correctly (if you&#8217;re using windows) and
+to see what the options are, type:</p>
+<blockquote>
+<tt class="docutils literal"><span class="pre">make</span></tt></blockquote>
+<p>at a shell prompt. Then you can use <tt class="docutils literal"><span class="pre">make</span> <span class="pre">html</span></tt> to build the HTML version of
+the book, or <tt class="docutils literal"><span class="pre">make</span> <span class="pre">htmlhelp</span></tt> to make the windows help version, etc.</p>
+<p>You can also use the <tt class="docutils literal"><span class="pre">build</span></tt> system I&#8217;ve created (as a book example; it is
+part of the distribution). This will call <tt class="docutils literal"><span class="pre">make</span></tt> and it simplifies many of the
+tasks involved. Type:</p>
+<blockquote>
+<tt class="docutils literal"><span class="pre">build</span> <span class="pre">help</span></tt></blockquote>
+<p>to see the options.</p>
+</div>
+<div class="section" id="working-with-launchpad-and-bazaar">
+<h2>Working with Launchpad and Bazaar<a class="headerlink" href="#working-with-launchpad-and-bazaar" title="Permalink to this headline">¶</a></h2>
+<p>(Adapted from a posting by Yarko T)</p>
+<p>This assumes that you have created a local branch on your private machine where
+you do work, and keep it merged with the trunk.</p>
+<p>That is, you&#8217;ve done:</p>
+<blockquote>
+<ul class="simple">
+<li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">branch</span> <span class="pre">lp:python3patterns</span></tt></li>
+<li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">commit</span> <span class="pre">-m</span> <span class="pre">'initial</span> <span class="pre">checkout'</span></tt></li>
+<li>(hack, hack, hack....)</li>
+<li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">merge</span></tt>   (pull new updates)</li>
+<li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">commit</span> <span class="pre">-m</span> <span class="pre">'checkin</span> <span class="pre">after</span> <span class="pre">merge...'</span></tt></li>
+<li>... and so on...</li>
+</ul>
+</blockquote>
+<p>When you have a new function idea, or think you&#8217;ve found a bug, ask Bruce
+on the group.</p>
+<blockquote>
+<ul class="simple">
+<li>If you have a new feature, register a blueprint on Launchpad and
+describe what you&#8217;re going to do.</li>
+<li>If you have found a bug, make a bug report on Launchpad (later assign
+it to yourself, and link your branch to it);</li>
+<li>If you want to work on a project, look for an unassigned bug and try to
+work it out - then proceed as below...</li>
+</ul>
+</blockquote>
+<p>When you are ready to share your work have others review, register a branch.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">Once you create a branch, there is no easy way to remove it.</p>
+</div>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">You can re-use one branch for multiple bug fixes.</p>
+</div>
+<ol class="arabic simple">
+<li>Sign up for an account on launchpad.net</li>
+<li>Go to the project and select &#8220;register branch&#8221;
+(<tt class="docutils literal"><span class="pre">https://code.launchpad.net/python3patterns/+addbranch</span></tt>). Suggest you
+create a hosted branch, then you can work locally, and pull/push as you make
+progress (see
+<a class="reference external" href="http://doc.bazaar-vcs.org/latest/en/user-guide/index.html#organizing">http://doc.bazaar-vcs.org/latest/en/user-guide/index.html#organizing</a>).</li>
+<li>Once you have registered your branch, launchpad will provide you with
+instructions on how to pull and push to your personal development copy.</li>
+<li>Link your bug report or blueprint to your branch.</li>
+<li>Merge from your &#8220;parent&#8221; (the trunk, or others you are working with) as needed.</li>
+<li>Push your working copy to launchpad as your work is ready for others to
+review or  test.</li>
+<li>Once you are done making your changes, have completed testing, and are
+ready for the project team to inspect &amp; test, please select &#8220;propose for
+merging&#8221;</li>
+<li>Somebody on the core team will make a test merge (it may include
+merging with other patches). Once tests pass, and your branch is accepted,
+it will be merged into the trunk.</li>
+</ol>
+</div>
+<div class="section" id="branch-registration-details">
+<h2>Branch Registration Details<a class="headerlink" href="#branch-registration-details" title="Permalink to this headline">¶</a></h2>
+<p>Register a branch on <a class="reference external" href="http://code.launchpad.net/python3patterns/">http://code.launchpad.net/python3patterns/</a>.  Since your login
+will identify your branch, <tt class="docutils literal"><span class="pre">devel</span></tt> is a good choice for a general development branch.
+If you&#8217;re unsure, select <tt class="docutils literal"><span class="pre">Hosted</span></tt> branching.</p>
+<p>You must submit a public key - this will get you there:</p>
+<blockquote>
+<a class="reference external" href="https://launchpad.net/people/+me/+editsshkeys">https://launchpad.net/people/+me/+editsshkeys</a></blockquote>
+<p>When you create your branch, Launchpad will show you the command to push to your branch.
+It will look something like this.</p>
+<img alt="_images/pushPath.png" src="_images/pushPath.png" />
+<p>A good local setup is to keep an updated copy of the current trunk
+and a separate local development branch.</p>
+</div>
+<div class="section" id="tips-for-merging">
+<h2>Tips for Merging<a class="headerlink" href="#tips-for-merging" title="Permalink to this headline">¶</a></h2>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">I want to eventually move to the mode where submissions are
+reviewed by another member of the team, rather than me reviewing everything.</p>
+</div>
+<ul>
+<li><p class="first">Make a merge using a local test branch</p>
+</li>
+<li><p class="first">Consider using kdiff3: <a class="reference external" href="http://kdiff3.sourceforge.net/">http://kdiff3.sourceforge.net/</a></p>
+</li>
+<li><p class="first">You can use <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">diff</span> <span class="pre">--using=kdiff3</span></tt> to browse differences, and use a bazaar
+plugin to merge conflicts:</p>
+<blockquote>
+<p><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">extmerge</span> <span class="pre">--all</span></tt></p>
+</blockquote>
+</li>
+<li><p class="first">More here:  <a class="reference external" href="http://dev.mysql.com/tech-resources/articles/advanced-bazaar.html">http://dev.mysql.com/tech-resources/articles/advanced-bazaar.html</a></p>
+</li>
+</ul>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h3><a href="index.html">Table Of Contents</a></h3>
+            <ul>
+<li><a class="reference external" href="">Developer Guide</a><ul>
+<li><a class="reference external" href="#for-windows-users">For Windows Users</a></li>
+<li><a class="reference external" href="#installing-sphinx">Installing Sphinx</a></li>
+<li><a class="reference external" href="#getting-the-development-branch-of-the-book">Getting the Development Branch of the Book</a></li>
+<li><a class="reference external" href="#building-the-book">Building the Book</a></li>
+<li><a class="reference external" href="#working-with-launchpad-and-bazaar">Working with Launchpad and Bazaar</a></li>
+<li><a class="reference external" href="#branch-registration-details">Branch Registration Details</a></li>
+<li><a class="reference external" href="#tips-for-merging">Tips for Merging</a></li>
+</ul>
+</li>
+</ul>
+
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="Rules.html" title="previous chapter">Book Development Rules</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="Part1.html" title="next chapter">Part I: Foundations</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/DeveloperGuide.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Part1.html" title="Part I: Foundations"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Rules.html" title="Book Development Rules"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/GeneratorsIterators.html

+<!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>Generators, Iterators, and Itertools &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Comprehensions" href="Comprehensions.html" />
+    <link rel="prev" title="Decorators" href="PythonDecorators.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Comprehensions.html" title="Comprehensions"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="PythonDecorators.html" title="Decorators"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="generators-iterators-and-itertools">
+<span id="index-3"></span><h1>Generators, Iterators, and Itertools<a class="headerlink" href="#generators-iterators-and-itertools" title="Permalink to this headline">¶</a></h1>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="PythonDecorators.html" title="previous chapter">Decorators</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="Comprehensions.html" title="next chapter">Comprehensions</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/GeneratorsIterators.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Comprehensions.html" title="Comprehensions"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="PythonDecorators.html" title="Decorators"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/Introduction.html

+<!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>Introduction &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Teaching Support" href="TeachingSupport.html" />
+    <link rel="prev" title="A Note To Readers" href="NoteToReaders.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="TeachingSupport.html" title="Teaching Support"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="NoteToReaders.html" title="A Note To Readers"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="introduction">
+<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
+<font size="+1">The vision for this book.</font><div class="section" id="a-team-effort">
+<h2>A Team Effort<a class="headerlink" href="#a-team-effort" title="Permalink to this headline">¶</a></h2>
+<p>This book is an experiment to see if we can combine everyone&#8217;s best efforts to
+create something great.</p>
+<p>You can find the contributors right before this introduction. They are listed
+in order of <em>Karma Points</em>, a system Launchpad.net uses to keep track of
+contributions from everyone working on an open-source project.</p>
+<p>In my case, I will write new material, as well as rewriting other contributions
+to clarify and give voice, setting up the architecture and being the <em>Benevolent
+Dictator</em> for the book. But I definitely won&#8217;t be doing everything; my goal is
+that this is a team project and that everyone who wants to will have something
+useful to contribute.</p>
+<p>We&#8217;ll be using Launchpad.net&#8217;s &#8220;Blueprints&#8221; facility to add &#8220;features&#8221; to the
+book, so that&#8217;s where you&#8217;ll find the main repository of things to do.</p>
+<p>What can you contribute? Anything as small as spelling and grammatical
+correctons, and as large as a whole chapter. Research into new topics and
+creating examples is what takes me the most time, so if you know something
+already or are willing to figure it out, don&#8217;t worry if your writing or
+programming isn&#8217;t perfect &#8211; contribute it and I and the rest of the group will
+improve it.</p>
+<p>You may also have talents in figuring things out. Sphinx formatting, for
+example, or how to produce camera-ready formatting. These are all very useful
+things which will not only benefit this book but also any future book built on
+this template (every bit of the build system for the book will be out in the
+open, so if you want to take what we&#8217;ve done here and start your own book, you
+can).</p>
+<p>Of course, not everything can make it into the final print book, but things that
+don&#8217;t fit into the main book can be moved into an &#8220;appendix book&#8221; or a &#8220;volume
+2&#8221; book or something like that.</p>
+</div>
+<div class="section" id="not-an-introductory-book">
+<h2>Not an Introductory Book<a class="headerlink" href="#not-an-introductory-book" title="Permalink to this headline">¶</a></h2>
+<p>Although there is an introduction for programmers, this book is not intended to
+be introductory. There are already lots of good introductory books out there.</p>
+<p>You can think of it as an &#8220;intermediate&#8221; or &#8220;somewhat advanced&#8221; book, but the
+&#8220;somewhat&#8221; modifier is very important here. Because it is not introductory, two
+difficult constraints are removed.</p>
+<ol class="arabic simple">
+<li>In an introductory book you are forced to describe everything in lock step,
+never mentioning anything before it has been thoroughly introduced. That&#8217;s
+still a good goal, but we don&#8217;t have to agonize over it when it doesn&#8217;t
+happen (just cross-reference the material).</li>
+<li>In addition, the topics are not restricted; in this book topics are chosen
+based on whether they are interesting and/or useful, not on whether they are
+introductory or not.</li>
+</ol>
+<p>That said, people will still be coming to a topic without knowing about it and
+it will need to be introduced, as much as possible, as if they have never seen
+it before.</p>
+</div>
+<div class="section" id="the-license">
+<h2>The License<a class="headerlink" href="#the-license" title="Permalink to this headline">¶</a></h2>
+<p>Unless otherwise specified, the material in this book is published under a
+<a class="reference external" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-Share Alike 3.0 license</a>.</p>
+<p>If you make contributions, you must own the rights to your material and be able
+to place them under this license. Please don&#8217;t contribute something unless you
+are sure this is the case (read your company&#8217;s employment contract &#8211; these
+often specify that anything you think of or create at any time of day or night
+belongs to the company).</p>
+</div>
+<div class="section" id="the-printed-book">
+<h2>The Printed Book<a class="headerlink" href="#the-printed-book" title="Permalink to this headline">¶</a></h2>
+<p>Because of the creative commons license, the electronic version of the book as
+well as all the sources are available, can be reproduced on other web sites,
+etc. (again, as long as you attribute it).</p>
+<p>You can print your own version of the book. I will be creating a printed version
+of the book for sale, with a nice cover and binding. Many people do like to have
+a print version of the book, and part of the motivation for doing a print
+version is to make some income off the effort I put into the book.</p>
+<p>But buying my particular print version of the book is optional. All of the tools
+will be downloadable so that you can print it yourself, or send it to a copy
+shop and have it bound, etc. The only thing you won&#8217;t get is my cover and
+binding.</p>
+</div>
+<div class="section" id="translations">
+<h2>Translations<a class="headerlink" href="#translations" title="Permalink to this headline">¶</a></h2>
+<p>Launchpad.net, where this project is hosted, has support for doing translations
+and this gave me an idea. I had just come back from speaking at the Python
+conference in Brazil, and was thinking about the user group there and how I
+might support them. (We had done a seminar while I was there in order to help
+pay for my trip and support the organization).</p>
+<p>If the book can be kept in a Sphinx restructured text format that can be turned
+directly into camera-ready PDF (the basic form is there but it will take
+somebody messing about with it to get it into camera-ready layout), then the job
+of translation can be kept to something that could be done by user groups during
+sprints. The user group could then use a print-on-demand service to print the
+book, and get the group members to take them to local bookstores and do other
+kinds of promotions. The profits from the book could go to the user group (who
+knows, just like the Brazillian group, your group may end up using some of those
+profits to bring me to speak at your conference!).</p>
+<p>If possible, I would like a royalty from these translations. To me, 5% of the
+cover price sounds reasonable. If the user group would like to use my cover,
+then they could pay this royalty. If they wanted to go their own way, it&#8217;s
+creative commons so as long as the book is attributed that&#8217;s their choice.</p>
+</div>
+<div class="section" id="my-motives">
+<h2>My Motives<a class="headerlink" href="#my-motives" title="Permalink to this headline">¶</a></h2>
+<p>Just so it&#8217;s clear, I have the following motives for creating this book:</p>
+<ol class="arabic simple">
+<li>Learn more about Python and contribute to the Python community, to help
+create more and better Python programmers.</li>
+<li>Develop more Python consulting and training clients through the publicity
+generated by the book (see
+<a class="reference external" href="http://www.mindviewinc.com/Consulting/Index.php">here</a>).</li>
+<li>Experiment with group creation of teaching materials for the book, which
+will benefit me in my own training (see the previous point) but will also
+benefit anyone choosing to use the book as a text in a course or training
+seminar. (See <a class="reference external" href="TeachingSupport.html#teachingsupport"><em>Teaching Support</em></a>).</li>
+<li>Generate profits by selling printed books. (But see above about the ability
+to print the book yourself).</li>
+<li>Help raise money for non-U.S. Python user groups via translations, from
+which I might gain a small percentage.</li>
+</ol>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h3><a href="index.html">Table Of Contents</a></h3>
+            <ul>
+<li><a class="reference external" href="">Introduction</a><ul>
+<li><a class="reference external" href="#a-team-effort">A Team Effort</a></li>
+<li><a class="reference external" href="#not-an-introductory-book">Not an Introductory Book</a></li>
+<li><a class="reference external" href="#the-license">The License</a></li>
+<li><a class="reference external" href="#the-printed-book">The Printed Book</a></li>
+<li><a class="reference external" href="#translations">Translations</a></li>
+<li><a class="reference external" href="#my-motives">My Motives</a></li>
+</ul>
+</li>
+</ul>
+
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="NoteToReaders.html" title="previous chapter">A Note To Readers</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="TeachingSupport.html" title="next chapter">Teaching Support</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/Introduction.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="TeachingSupport.html" title="Teaching Support"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="NoteToReaders.html" title="A Note To Readers"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/LanguageChanges.html

+<!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>Python 3 Language Changes &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Decorators" href="PythonDecorators.html" />
+    <link rel="prev" title="Unit Testing &amp; Test-Driven Development" href="unitTesting.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="PythonDecorators.html" title="Decorators"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="unitTesting.html" title="Unit Testing &amp; Test-Driven Development"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="python-3-language-changes">
+<span id="index-4"></span><h1>Python 3 Language Changes<a class="headerlink" href="#python-3-language-changes" title="Permalink to this headline">¶</a></h1>
+<p>Covers language features that don&#8217;t require their own chapters.</p>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">If a section in this chapter grows too large it may require its own chapter.</p>
+</div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="unitTesting.html" title="previous chapter">Unit Testing &amp; Test-Driven Development</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="PythonDecorators.html" title="next chapter">Decorators</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/LanguageChanges.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="PythonDecorators.html" title="Decorators"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="unitTesting.html" title="Unit Testing &amp; Test-Driven Development"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/MachineDiscovery.html

+<!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>Discovering the Details About Your Platform &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="A Canonical Form for Command-Line Programs" href="CanonicalScript.html" />
+    <link rel="prev" title="Part II: Idioms" href="Part2.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="CanonicalScript.html" title="A Canonical Form for Command-Line Programs"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Part2.html" title="Part II: Idioms"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="discovering-the-details-about-your-platform">
+<h1>Discovering the Details About Your Platform<a class="headerlink" href="#discovering-the-details-about-your-platform" title="Permalink to this headline">¶</a></h1>
+<p>The Python library XXX will give you some information about your machine,
+but it falls short. Here&#8217;s a rather messy, but useful way to figure out
+everything else.</p>
+<p>Just a starting point:</p>
+<div class="highlight"><pre><span class="k">def</span> <span class="nf">detectCPUs</span><span class="p">():</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    Detects the number of CPUs on a system. Cribbed from pp.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c"># Linux, Unix and MacOS:</span>
+    <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">os</span><span class="p">,</span> <span class="s">&quot;sysconf&quot;</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">sysconf_names</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">&quot;SC_NPROCESSORS_ONLN&quot;</span><span class="p">):</span>
+            <span class="c"># Linux &amp; Unix:</span>
+            <span class="n">ncpus</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">sysconf</span><span class="p">(</span><span class="s">&quot;SC_NPROCESSORS_ONLN&quot;</span><span class="p">)</span>
+            <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ncpus</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span> <span class="ow">and</span> <span class="n">ncpus</span> <span class="o">&gt;</span> <span class="mf">0</span><span class="p">:</span>
+                <span class="k">return</span> <span class="n">ncpus</span>
+        <span class="k">else</span><span class="p">:</span> <span class="c"># OSX:</span>
+            <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">popen2</span><span class="p">(</span><span class="s">&quot;sysctl -n hw.ncpu&quot;</span><span class="p">)[</span><span class="mf">1</span><span class="p">]</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
+    <span class="c"># Windows:</span>
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s">&quot;NUMBER_OF_PROCESSORS&quot;</span><span class="p">):</span>
+            <span class="n">ncpus</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s">&quot;NUMBER_OF_PROCESSORS&quot;</span><span class="p">]);</span>
+            <span class="k">if</span> <span class="n">ncpus</span> <span class="o">&gt;</span> <span class="mf">0</span><span class="p">:</span>
+                <span class="k">return</span> <span class="n">ncpus</span>
+    <span class="k">return</span> <span class="mf">1</span> <span class="c"># Default</span>
+</pre></div>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="Part2.html" title="previous chapter">Part II: Idioms</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="CanonicalScript.html" title="next chapter">A Canonical Form for Command-Line Programs</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/MachineDiscovery.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="CanonicalScript.html" title="A Canonical Form for Command-Line Programs"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Part2.html" title="Part II: Idioms"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/NoteToReaders.html

+<!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>A Note To Readers &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Introduction" href="Introduction.html" />
+    <link rel="prev" title="Contributors" href="Contributors.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Introduction.html" title="Introduction"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Contributors.html" title="Contributors"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="a-note-to-readers">
+<h1>A Note To Readers<a class="headerlink" href="#a-note-to-readers" title="Permalink to this headline">¶</a></h1>
+<p>What you see here is an early version of the book. We have yet to get everything
+working right and rewritten for Python. Or even to get the book testing systems
+in place.</p>
+<p>If you&#8217;re here because you&#8217;re curious, that&#8217;s great. But please don&#8217;t expect too
+much from the book just yet. When we get it to a point where everything compiles
+and all the Java references, etc. have been rewritten out, then this note will
+disappear. Until then, <em>caveat emptor</em>.</p>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="Contributors.html" title="previous chapter">Contributors</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="Introduction.html" title="next chapter">Introduction</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/NoteToReaders.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="Introduction.html" title="Introduction"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="Contributors.html" title="Contributors"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>
+<!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>Part I: Foundations &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Quick Python for Programmers" href="quickPython.html" />
+    <link rel="prev" title="Developer Guide" href="DeveloperGuide.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="quickPython.html" title="Quick Python for Programmers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="DeveloperGuide.html" title="Developer Guide"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="part-i-foundations">
+<h1>Part I: Foundations<a class="headerlink" href="#part-i-foundations" title="Permalink to this headline">¶</a></h1>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="DeveloperGuide.html" title="previous chapter">Developer Guide</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="quickPython.html" title="next chapter">Quick Python for Programmers</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/Part1.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="quickPython.html" title="Quick Python for Programmers"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="DeveloperGuide.html" title="Developer Guide"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>
+<!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>Part II: Idioms &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Discovering the Details About Your Platform" href="MachineDiscovery.html" />
+    <link rel="prev" title="Jython" href="jython.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="MachineDiscovery.html" title="Discovering the Details About Your Platform"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="jython.html" title="Jython"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="part-ii-idioms">
+<h1>Part II: Idioms<a class="headerlink" href="#part-ii-idioms" title="Permalink to this headline">¶</a></h1>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="jython.html" title="previous chapter">Jython</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="MachineDiscovery.html" title="next chapter">Discovering the Details About Your Platform</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/Part2.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="MachineDiscovery.html" title="Discovering the Details About Your Platform"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="jython.html" title="Jython"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>
+<!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>Part III: Patterns &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="The Pattern Concept" href="patternConcept.html" />
+    <link rel="prev" title="A Canonical Form for Command-Line Programs" href="CanonicalScript.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="patternConcept.html" title="The Pattern Concept"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="CanonicalScript.html" title="A Canonical Form for Command-Line Programs"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="part-iii-patterns">
+<h1>Part III: Patterns<a class="headerlink" href="#part-iii-patterns" title="Permalink to this headline">¶</a></h1>
+</div>
+
+
+          </div>
+        </div>
+      </div>
+      <div class="sphinxsidebar">
+        <div class="sphinxsidebarwrapper">
+            <p class="logo"><a href="index.html">
+              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+            </a></p>
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="CanonicalScript.html" title="previous chapter">A Canonical Form for Command-Line Programs</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="patternConcept.html" title="next chapter">The Pattern Concept</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/Part3.txt">Show Source</a></li>
+            </ul>
+    
+          <h3>Quick search</h3>
+            <form class="search" action="search.html" method="get">
+              <input type="text" name="q" size="18" /> <input type="submit" value="Go" />
+              <input type="hidden" name="check_keywords" value="yes" />
+              <input type="hidden" name="area" value="default" />
+            </form>
+    <h4><a href="http://www.mindviewinc.com/Books/Python3Patterns/Index.php">Project Homepage</a></h4>
+    <h4><a href="http://www.bitbucket.org/BruceEckel/python-3-patterns-idioms/issues/">Corrections/Suggestions</a></h4>
+    <h4><a href="http://www.mindviewinc.com/Consulting/Index.php">Consulting &amp; Training</a></h4><br><br>
+
+        </div>
+      </div>
+      <div class="clearer"></div>
+    </div>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="patternConcept.html" title="The Pattern Concept"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="CanonicalScript.html" title="A Canonical Form for Command-Line Programs"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 09, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
+</html>

html/PythonDecorators.html

+<!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>Decorators &mdash; Python 3 Patterns & Idioms</title>
+    <link rel="stylesheet" href="_static/default.css" type="text/css" />
+    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
+    <script type="text/javascript">
+      var DOCUMENTATION_OPTIONS = {
+          URL_ROOT:    '',
+          VERSION:     '1.0',
+          COLLAPSE_MODINDEX: false,
+          FILE_SUFFIX: '.html'
+      };
+    </script>
+    <script type="text/javascript" src="_static/jquery.js"></script>
+    <script type="text/javascript" src="_static/doctools.js"></script>
+    <link rel="shortcut icon" href="_static/favicon.ico"/>
+    <link rel="index" title="Index" href="genindex.html" />
+    <link rel="search" title="Search" href="search.html" />
+    <link rel="top" title="Python 3 Patterns & Idioms" href="index.html" />
+    <link rel="next" title="Generators, Iterators, and Itertools" href="GeneratorsIterators.html" />
+    <link rel="prev" title="Python 3 Language Changes" href="LanguageChanges.html" />
+  </head>
+  <body>
+    <div class="related">
+      <h3>Navigation</h3>
+      <ul>
+        <li class="right" style="margin-right: 10px">
+          <a href="genindex.html" title="General Index"
+             accesskey="I">index</a></li>
+        <li class="right" >
+          <a href="GeneratorsIterators.html" title="Generators, Iterators, and Itertools"
+             accesskey="N">next</a> |</li>
+        <li class="right" >