Commits

Anonymous committed 0e2de34 Merge

ci after merge

Comments (0)

Files changed (55)

html/AppFrameworks.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Building Application Frameworks &mdash; Python 3 Patterns & Idioms</title>
+    <title>Building Application Frameworks &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Fronting for an Implementation" href="Fronting.html" />
     <link rel="prev" title="The Singleton" href="Singleton.html" />
   </head>
         <li class="right" >
           <a href="Singleton.html" title="The Singleton"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Singleton.html" title="The Singleton"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/CanonicalScript.html

   <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>
+    <title>A Canonical Form for Command-Line Programs &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Messenger/Data Transfer Object" href="Messenger.html" />
     <link rel="prev" title="Discovering the Details About Your Platform" href="MachineDiscovery.html" />
   </head>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/ChangeInterface.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>Changing the Interface &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="Table-Driven Code: Configuration Flexibility" href="TableDriven.html" />
-    <link rel="prev" title="Function Objects" href="FunctionObjects.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="TableDriven.html" title="Table-Driven Code: Configuration Flexibility"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="FunctionObjects.html" title="Function Objects"
-             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="changing-the-interface">
-<h1>Changing the Interface<a class="headerlink" href="#changing-the-interface" title="Permalink to this headline">¶</a></h1>
-<p>Sometimes the problem that you&#8217;re solving is as simple as &#8220;I don&#8217;t have the
-interface that I want.&#8221; Two of the patterns in <em>Design Patterns</em> solve this
-problem: <em>Adapter</em> takes one type and produces an interface to some other type.
-<em>Façade</em> creates an interface to a set of classes, simply to provide a more
-comfortable way to deal with a library or bundle of resources.</p>
-<div class="section" id="adapter">
-<h2>Adapter<a class="headerlink" href="#adapter" title="Permalink to this headline">¶</a></h2>
-<p>When you&#8217;ve got <em>this</em>, and you need <em>that</em>, <em>Adapter</em> solves the problem. The
-only requirement is to produce a <em>that</em>, and there are a number of ways you can
-accomplish this adaptation:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># ChangeInterface/Adapter.py</span>
-<span class="c"># Variations on the Adapter pattern.</span>
-
-<span class="k">class</span> <span class="nc">WhatIHave</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">g</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span>
-    <span class="k">def</span> <span class="nf">h</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span>
-
-<span class="k">class</span> <span class="nc">WhatIWant</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span>
-
-<span class="k">class</span> <span class="nc">ProxyAdapter</span><span class="p">(</span><span class="n">WhatIWant</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">whatIHave</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">whatIHave</span> <span class="o">=</span> <span class="n">whatIHave</span>
-
-    <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="c"># Implement behavior using</span>
-        <span class="c"># methods in WhatIHave:</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">whatIHave</span><span class="o">.</span><span class="n">g</span><span class="p">()</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">whatIHave</span><span class="o">.</span><span class="n">h</span><span class="p">()</span>
-
-<span class="k">class</span> <span class="nc">WhatIUse</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">whatIWant</span><span class="p">):</span>
-        <span class="n">whatIWant</span><span class="o">.</span><span class="n">f</span><span class="p">()</span>
-
-<span class="c"># Approach 2: build adapter use into op():</span>
-<span class="k">class</span> <span class="nc">WhatIUse2</span><span class="p">(</span><span class="n">WhatIUse</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">whatIHave</span><span class="p">):</span>
-        <span class="n">ProxyAdapter</span><span class="p">(</span><span class="n">whatIHave</span><span class="p">)</span><span class="o">.</span><span class="n">f</span><span class="p">()</span>
-
-<span class="c"># Approach 3: build adapter into WhatIHave:</span>
-<span class="k">class</span> <span class="nc">WhatIHave2</span><span class="p">(</span><span class="n">WhatIHave</span><span class="p">,</span> <span class="n">WhatIWant</span><span class="p">):</span>
-    <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">g</span><span class="p">()</span>
-        <span class="bp">self</span><span class="o">.</span><span class="n">h</span><span class="p">()</span>
-
-<span class="c"># Approach 4: use an inner class:</span>
-<span class="k">class</span> <span class="nc">WhatIHave3</span><span class="p">(</span><span class="n">WhatIHave</span><span class="p">):</span>
-    <span class="k">class</span> <span class="nc">InnerAdapter</span><span class="p">(</span><span class="n">WhatIWant</span><span class="p">):</span>
-        <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">outer</span><span class="p">):</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">outer</span> <span class="o">=</span> <span class="n">outer</span>
-        <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">outer</span><span class="o">.</span><span class="n">g</span><span class="p">()</span>
-            <span class="bp">self</span><span class="o">.</span><span class="n">outer</span><span class="o">.</span><span class="n">h</span><span class="p">()</span>
-
-    <span class="k">def</span> <span class="nf">whatIWant</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="k">return</span> <span class="n">WhatIHave3</span><span class="o">.</span><span class="n">InnerAdapter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
-
-<span class="n">whatIUse</span> <span class="o">=</span> <span class="n">WhatIUse</span><span class="p">()</span>
-<span class="n">whatIHave</span> <span class="o">=</span> <span class="n">WhatIHave</span><span class="p">()</span>
-<span class="n">adapt</span><span class="o">=</span> <span class="n">ProxyAdapter</span><span class="p">(</span><span class="n">whatIHave</span><span class="p">)</span>
-<span class="n">whatIUse2</span> <span class="o">=</span> <span class="n">WhatIUse2</span><span class="p">()</span>
-<span class="n">whatIHave2</span> <span class="o">=</span> <span class="n">WhatIHave2</span><span class="p">()</span>
-<span class="n">whatIHave3</span> <span class="o">=</span> <span class="n">WhatIHave3</span><span class="p">()</span>
-<span class="n">whatIUse</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">adapt</span><span class="p">)</span>
-<span class="c"># Approach 2:</span>
-<span class="n">whatIUse2</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">whatIHave</span><span class="p">)</span>
-<span class="c"># Approach 3:</span>
-<span class="n">whatIUse</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">whatIHave2</span><span class="p">)</span>
-<span class="c"># Approach 4:</span>
-<span class="n">whatIUse</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">whatIHave3</span><span class="o">.</span><span class="n">whatIWant</span><span class="p">())</span>
-</pre></div>
-</div>
-<p>I&#8217;m taking liberties with the term &#8220;proxy&#8221; here, because in <em>Design Patterns</em>
-they assert that a proxy must have an identical interface with the object that
-it is a surrogate for. However, if you have the two words together: &#8220;proxy
-adapter,&#8221; it is perhaps more reasonable.</p>
-</div>
-<div class="section" id="facade">
-<h2>Façade<a class="headerlink" href="#facade" title="Permalink to this headline">¶</a></h2>
-<p>A general principle that I apply when I&#8217;m casting about trying to mold
-requirements into a first-cut object is &#8220;If something is ugly, hide it inside an
-object.&#8221; This is basically what <em>Façade</em> accomplishes. If you have a rather
-confusing collection of classes and interactions that the client programmer
-doesn&#8217;t really need to see, then you can create an interface that is useful for
-the client programmer and that only presents what&#8217;s necessary.</p>
-<p>Façade is often implemented as singleton abstract factory. Of course, you can
-easily get this effect by creating a class containing <strong>static</strong> factory
-methods:</p>
-<div class="highlight-python"><div class="highlight"><pre><span class="c"># ChangeInterface/Facade.py</span>
-<span class="k">class</span> <span class="nc">A</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span> <span class="k">pass</span>
-<span class="k">class</span> <span class="nc">B</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span> <span class="k">pass</span>
-<span class="k">class</span> <span class="nc">C</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span> <span class="k">pass</span>
-
-<span class="c"># Other classes that aren&#39;t exposed by the</span>
-<span class="c"># facade go here ...</span>
-
-<span class="k">class</span> <span class="nc">Facade</span><span class="p">:</span>
-    <span class="k">def</span> <span class="nf">makeA</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">A</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
-    <span class="n">makeA</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">makeA</span><span class="p">)</span>
-    <span class="k">def</span> <span class="nf">makeB</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">B</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
-    <span class="n">makeB</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">makeB</span><span class="p">)</span>
-    <span class="k">def</span> <span class="nf">makeC</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">C</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
-    <span class="n">makeC</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">makeC</span><span class="p">)</span>
-
-<span class="c"># The client programmer gets the objects</span>
-<span class="c"># by calling the static methods:</span>
-<span class="n">a</span> <span class="o">=</span> <span class="n">Facade</span><span class="o">.</span><span class="n">makeA</span><span class="p">(</span><span class="mf">1</span><span class="p">);</span>
-<span class="n">b</span> <span class="o">=</span> <span class="n">Facade</span><span class="o">.</span><span class="n">makeB</span><span class="p">(</span><span class="mf">1</span><span class="p">);</span>
-<span class="n">c</span> <span class="o">=</span> <span class="n">Facade</span><span class="o">.</span><span class="n">makeC</span><span class="p">(</span><span class="mf">1.0</span><span class="p">);</span>
-</pre></div>
-</div>
-<p>[rewrite this section using research from Larman&#8217;s book]</p>
-<p>Example for Facade (?): my &#8220;nicer&#8221; version of the XML library.</p>
-</div>
-<div class="section" id="exercises">
-<h2>Exercises<a class="headerlink" href="#exercises" title="Permalink to this headline">¶</a></h2>
-<ol class="arabic simple">
-<li>Create an adapter class that automatically loads a two-dimensional array of
-objects into a dictionary as key-value pairs.</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>
-    <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
-    
-            <h3><a href="index.html">Table Of Contents</a></h3>
-            <ul>
-<li><a class="reference external" href="">Changing the Interface</a><ul>
-<li><a class="reference external" href="#adapter">Adapter</a></li>
-<li><a class="reference external" href="#facade">Façade</a></li>
-<li><a class="reference external" href="#exercises">Exercises</a></li>
-</ul>
-</li>
-</ul>
-
-
-            <h4>Previous topic</h4>
-            <p class="topless"><a href="FunctionObjects.html" title="previous chapter">Function Objects</a></p>
-            <h4>Next topic</h4>
-            <p class="topless"><a href="TableDriven.html" title="next chapter">Table-Driven Code: Configuration Flexibility</a></p>
-            <h3>This Page</h3>
-            <ul class="this-page-menu">
-              <li><a href="_sources/ChangeInterface.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="TableDriven.html" title="Table-Driven Code: Configuration Flexibility"
-             accesskey="N">next</a> |</li>
-        <li class="right" >
-          <a href="FunctionObjects.html" title="Function Objects"
-             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 13, 2008.
-      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
-    </div>
-  </body>
+<!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>Changing the Interface &mdash; Python 3 Patterns, Recipes and 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, Recipes and Idioms" href="index.html" />
+    <link rel="next" title="Table-Driven Code: Configuration Flexibility" href="TableDriven.html" />
+    <link rel="prev" title="Function Objects" href="FunctionObjects.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="TableDriven.html" title="Table-Driven Code: Configuration Flexibility"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="FunctionObjects.html" title="Function Objects"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="document">
+      <div class="documentwrapper">
+        <div class="bodywrapper">
+          <div class="body">
+            
+  
+  <div class="section" id="changing-the-interface">
+<h1>Changing the Interface<a class="headerlink" href="#changing-the-interface" title="Permalink to this headline">¶</a></h1>
+<p>Sometimes the problem that you&#8217;re solving is as simple as &#8220;I don&#8217;t have the
+interface that I want.&#8221; Two of the patterns in <em>Design Patterns</em> solve this
+problem: <em>Adapter</em> takes one type and produces an interface to some other type.
+<em>Façade</em> creates an interface to a set of classes, simply to provide a more
+comfortable way to deal with a library or bundle of resources.</p>
+<div class="section" id="adapter">
+<h2>Adapter<a class="headerlink" href="#adapter" title="Permalink to this headline">¶</a></h2>
+<p>When you&#8217;ve got <em>this</em>, and you need <em>that</em>, <em>Adapter</em> solves the problem. The
+only requirement is to produce a <em>that</em>, and there are a number of ways you can
+accomplish this adaptation:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># ChangeInterface/Adapter.py</span>
+<span class="c"># Variations on the Adapter pattern.</span>
+
+<span class="k">class</span> <span class="nc">WhatIHave</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">g</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span>
+    <span class="k">def</span> <span class="nf">h</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span>
+
+<span class="k">class</span> <span class="nc">WhatIWant</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">pass</span>
+
+<span class="k">class</span> <span class="nc">ProxyAdapter</span><span class="p">(</span><span class="n">WhatIWant</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">whatIHave</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">whatIHave</span> <span class="o">=</span> <span class="n">whatIHave</span>
+
+    <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="c"># Implement behavior using</span>
+        <span class="c"># methods in WhatIHave:</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">whatIHave</span><span class="o">.</span><span class="n">g</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">whatIHave</span><span class="o">.</span><span class="n">h</span><span class="p">()</span>
+
+<span class="k">class</span> <span class="nc">WhatIUse</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">whatIWant</span><span class="p">):</span>
+        <span class="n">whatIWant</span><span class="o">.</span><span class="n">f</span><span class="p">()</span>
+
+<span class="c"># Approach 2: build adapter use into op():</span>
+<span class="k">class</span> <span class="nc">WhatIUse2</span><span class="p">(</span><span class="n">WhatIUse</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">whatIHave</span><span class="p">):</span>
+        <span class="n">ProxyAdapter</span><span class="p">(</span><span class="n">whatIHave</span><span class="p">)</span><span class="o">.</span><span class="n">f</span><span class="p">()</span>
+
+<span class="c"># Approach 3: build adapter into WhatIHave:</span>
+<span class="k">class</span> <span class="nc">WhatIHave2</span><span class="p">(</span><span class="n">WhatIHave</span><span class="p">,</span> <span class="n">WhatIWant</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">g</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">h</span><span class="p">()</span>
+
+<span class="c"># Approach 4: use an inner class:</span>
+<span class="k">class</span> <span class="nc">WhatIHave3</span><span class="p">(</span><span class="n">WhatIHave</span><span class="p">):</span>
+    <span class="k">class</span> <span class="nc">InnerAdapter</span><span class="p">(</span><span class="n">WhatIWant</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">outer</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">outer</span> <span class="o">=</span> <span class="n">outer</span>
+        <span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">outer</span><span class="o">.</span><span class="n">g</span><span class="p">()</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">outer</span><span class="o">.</span><span class="n">h</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">whatIWant</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">return</span> <span class="n">WhatIHave3</span><span class="o">.</span><span class="n">InnerAdapter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
+
+<span class="n">whatIUse</span> <span class="o">=</span> <span class="n">WhatIUse</span><span class="p">()</span>
+<span class="n">whatIHave</span> <span class="o">=</span> <span class="n">WhatIHave</span><span class="p">()</span>
+<span class="n">adapt</span><span class="o">=</span> <span class="n">ProxyAdapter</span><span class="p">(</span><span class="n">whatIHave</span><span class="p">)</span>
+<span class="n">whatIUse2</span> <span class="o">=</span> <span class="n">WhatIUse2</span><span class="p">()</span>
+<span class="n">whatIHave2</span> <span class="o">=</span> <span class="n">WhatIHave2</span><span class="p">()</span>
+<span class="n">whatIHave3</span> <span class="o">=</span> <span class="n">WhatIHave3</span><span class="p">()</span>
+<span class="n">whatIUse</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">adapt</span><span class="p">)</span>
+<span class="c"># Approach 2:</span>
+<span class="n">whatIUse2</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">whatIHave</span><span class="p">)</span>
+<span class="c"># Approach 3:</span>
+<span class="n">whatIUse</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">whatIHave2</span><span class="p">)</span>
+<span class="c"># Approach 4:</span>
+<span class="n">whatIUse</span><span class="o">.</span><span class="n">op</span><span class="p">(</span><span class="n">whatIHave3</span><span class="o">.</span><span class="n">whatIWant</span><span class="p">())</span>
+</pre></div>
+</div>
+<p>I&#8217;m taking liberties with the term &#8220;proxy&#8221; here, because in <em>Design Patterns</em>
+they assert that a proxy must have an identical interface with the object that
+it is a surrogate for. However, if you have the two words together: &#8220;proxy
+adapter,&#8221; it is perhaps more reasonable.</p>
+</div>
+<div class="section" id="facade">
+<h2>Façade<a class="headerlink" href="#facade" title="Permalink to this headline">¶</a></h2>
+<p>A general principle that I apply when I&#8217;m casting about trying to mold
+requirements into a first-cut object is &#8220;If something is ugly, hide it inside an
+object.&#8221; This is basically what <em>Façade</em> accomplishes. If you have a rather
+confusing collection of classes and interactions that the client programmer
+doesn&#8217;t really need to see, then you can create an interface that is useful for
+the client programmer and that only presents what&#8217;s necessary.</p>
+<p>Façade is often implemented as singleton abstract factory. Of course, you can
+easily get this effect by creating a class containing <strong>static</strong> factory
+methods:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># ChangeInterface/Facade.py</span>
+<span class="k">class</span> <span class="nc">A</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span> <span class="k">pass</span>
+<span class="k">class</span> <span class="nc">B</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span> <span class="k">pass</span>
+<span class="k">class</span> <span class="nc">C</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span> <span class="k">pass</span>
+
+<span class="c"># Other classes that aren&#39;t exposed by the</span>
+<span class="c"># facade go here ...</span>
+
+<span class="k">class</span> <span class="nc">Facade</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">makeA</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">A</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+    <span class="n">makeA</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">makeA</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">makeB</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">B</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+    <span class="n">makeB</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">makeB</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">makeC</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> <span class="k">return</span> <span class="n">C</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+    <span class="n">makeC</span> <span class="o">=</span> <span class="nb">staticmethod</span><span class="p">(</span><span class="n">makeC</span><span class="p">)</span>
+
+<span class="c"># The client programmer gets the objects</span>
+<span class="c"># by calling the static methods:</span>
+<span class="n">a</span> <span class="o">=</span> <span class="n">Facade</span><span class="o">.</span><span class="n">makeA</span><span class="p">(</span><span class="mf">1</span><span class="p">);</span>
+<span class="n">b</span> <span class="o">=</span> <span class="n">Facade</span><span class="o">.</span><span class="n">makeB</span><span class="p">(</span><span class="mf">1</span><span class="p">);</span>
+<span class="n">c</span> <span class="o">=</span> <span class="n">Facade</span><span class="o">.</span><span class="n">makeC</span><span class="p">(</span><span class="mf">1.0</span><span class="p">);</span>
+</pre></div>
+</div>
+<p>[rewrite this section using research from Larman&#8217;s book]</p>
+<p>Example for Facade (?): my &#8220;nicer&#8221; version of the XML library.</p>
+</div>
+<div class="section" id="exercises">
+<h2>Exercises<a class="headerlink" href="#exercises" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li>Create an adapter class that automatically loads a two-dimensional array of
+objects into a dictionary as key-value pairs.</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/cover.png" alt="Logo"/>
+            </a></p>
+    <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
+    
+            <h3><a href="index.html">Table Of Contents</a></h3>
+            <ul>
+<li><a class="reference external" href="">Changing the Interface</a><ul>
+<li><a class="reference external" href="#adapter">Adapter</a></li>
+<li><a class="reference external" href="#facade">Façade</a></li>
+<li><a class="reference external" href="#exercises">Exercises</a></li>
+</ul>
+</li>
+</ul>
+
+
+            <h4>Previous topic</h4>
+            <p class="topless"><a href="FunctionObjects.html" title="previous chapter">Function Objects</a></p>
+            <h4>Next topic</h4>
+            <p class="topless"><a href="TableDriven.html" title="next chapter">Table-Driven Code: Configuration Flexibility</a></p>
+            <h3>This Page</h3>
+            <ul class="this-page-menu">
+              <li><a href="_sources/ChangeInterface.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="TableDriven.html" title="Table-Driven Code: Configuration Flexibility"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="FunctionObjects.html" title="Function Objects"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
+      </ul>
+    </div>
+    <div class="footer">
+      &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
+      Last updated on Nov 30, 2008.
+      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
+    </div>
+  </body>
 </html>

html/Comprehensions.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Comprehensions &mdash; Python 3 Patterns & Idioms</title>
+    <title>Comprehensions &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Contributors.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Contributors &mdash; Python 3 Patterns & Idioms</title>
+    <title>Contributors &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="ToDo List" href="ToDo.html" />
-    <link rel="prev" title="Python 3 Patterns &amp; Idioms" href="index.html" />
+    <link rel="prev" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
   </head>
   <body>
     <div class="related">
           <a href="ToDo.html" title="ToDo List"
              accesskey="N">next</a> |</li>
         <li class="right" >
-          <a href="index.html" title="Python 3 Patterns &amp; Idioms"
+          <a href="index.html" title="Python 3 Patterns, Recipes and Idioms"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
 
 
             <h4>Previous topic</h4>
-            <p class="topless"><a href="index.html" title="previous chapter">Python 3 Patterns &amp; Idioms</a></p>
+            <p class="topless"><a href="index.html" title="previous chapter">Python 3 Patterns, Recipes and Idioms</a></p>
             <h4>Next topic</h4>
             <p class="topless"><a href="ToDo.html" title="next chapter">ToDo List</a></p>
             <h3>This Page</h3>
           <a href="ToDo.html" title="ToDo List"
              accesskey="N">next</a> |</li>
         <li class="right" >
-          <a href="index.html" title="Python 3 Patterns &amp; Idioms"
+          <a href="index.html" title="Python 3 Patterns, Recipes and Idioms"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/CoroutinesAndConcurrency.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Coroutines &amp; Concurrency &mdash; Python 3 Patterns & Idioms</title>
+    <title>Coroutines &amp; Concurrency &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Jython" href="Jython.html" />
     <link rel="prev" title="Comprehensions" href="Comprehensions.html" />
   </head>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Decorator.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Decorator: Dynamic Type Selection &mdash; Python 3 Patterns & Idioms</title>
+    <title>Decorator: Dynamic Type Selection &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Iterators: Decoupling Algorithms from Containers" href="Iterators.html" />
     <link rel="prev" title="StateMachine" href="StateMachine.html" />
   </head>
         <li class="right" >
           <a href="StateMachine.html" title="StateMachine"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="StateMachine.html" title="StateMachine"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/DeveloperGuide.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Developer Guide &mdash; Python 3 Patterns & Idioms</title>
+    <title>Developer Guide &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
 changed files - so you can comment individually.</li>
 </ol>
 </div>
+<div class="section" id="emacs-for-editing-restructured-text">
+<h2>Emacs for Editing Restructured Text<a class="headerlink" href="#emacs-for-editing-restructured-text" title="Permalink to this headline">¶</a></h2>
+<p>If you want an editing system with support for restructured text, one choice is
+the free text editor <em>emacs</em>, which has an add-on mode for restructured text.
+Emacs has a long and venerable history, and is an extremely powerful editor.
+Emacs also has versions that are customized for operating systems to make it
+much more familiar.</p>
+<p>Here&#8217;s a <a class="reference external" href="http://lowfatlinux.com/linux-editor-emacs.html">simple introduction to emacs</a>
+and a <a class="reference external" href="http://www.linuxhelp.net/guides/emacs/">useful introductory help guide</a>.
+For Windows, there&#8217;s <a class="reference external" href="http://www.gnu.org/software/emacs/windows/ntemacs.html">a special FAQ</a>.</p>
+<p><strong>Mac OSX</strong>: <a class="reference external" href="http://aquamacs.org/">Aquamacs</a> looks and feels like a native
+Mac application.</p>
+<p><strong>Windows</strong>: You can download the latest windows installer <a class="reference external" href="http://ftp.gnu.org/pub/gnu/emacs/windows/">here (choose the
+highest numbered zip file with &#8220;bin&#8221; in the name)</a>.
+<a class="reference external" href="http://www.arunrocks.com/blog/archives/2008/02/20/5-indespensible-tips-for-emacs-on-windows/">This blog</a>
+gives useful tips to make emacs on Windows even friendlier (in particular, it
+puts emacs on the right-click menu and improves the startup settings).</p>
+<p><strong>Linux</strong>: It&#8217;s virtually guaranteed that you already have emacs preinstalled
+on your Linux distribution, which you can start from a command prompt. However,
+there may also be more &#8220;windowy&#8221; versions that you can install separately.</p>
+<div class="admonition-todo admonition " id="todo-7">
+<p class="first admonition-title">Todo</p>
+<p class="last">Someone who knows more about emacs for Linux please add more specific information the windowed version(s).</p>
+</div>
+<p>Finally, <a class="reference external" href="http://docutils.sourceforge.net/docs/user/emacs.html">here&#8217;s the documentation for installing and using the emacs
+restructured-text mode</a>.
+The elisp code it refers to is in the file &#8216;rst.el &lt;<a class="reference external" href="http://docutils.sourceforge.net/tools/editors/emacs/rst.el">http://docutils.sourceforge.net/tools/editors/emacs/rst.el</a>&gt;`_.</p>
+<p>To customize your emacs, you need to open the <tt class="docutils literal"><span class="pre">.emacs</span></tt> file. The above Windows
+FAQ tells you how to put your <tt class="docutils literal"><span class="pre">.emacs</span></tt> file somewhere else, but the easiest
+thing to do is just open emacs and inside it type <tt class="docutils literal"><span class="pre">C-x</span> <span class="pre">C-f</span> <span class="pre">~/.emacs</span></tt>, which
+will open your default <tt class="docutils literal"><span class="pre">.emacs</span></tt> file.</p>
+</div>
 </div>
 
 
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
 <li><a class="reference external" href="#building-the-pdf">Building the PDF</a></li>
 <li><a class="reference external" href="#working-with-bitbucket-and-mercurial">Working with BitBucket and Mercurial</a></li>
 <li><a class="reference external" href="#a-simple-overview-of-editing-and-merging">A Simple Overview Of Editing and Merging</a></li>
+<li><a class="reference external" href="#emacs-for-editing-restructured-text">Emacs for Editing Restructured Text</a></li>
 </ul>
 </li>
 </ul>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Factory.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Factory: Encapsulating Object Creation &mdash; Python 3 Patterns & Idioms</title>
+    <title>Factory: Encapsulating Object Creation &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Function Objects" href="FunctionObjects.html" />
     <link rel="prev" title="Iterators: Decoupling Algorithms from Containers" href="Iterators.html" />
   </head>
         <li class="right" >
           <a href="Iterators.html" title="Iterators: Decoupling Algorithms from Containers"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Iterators.html" title="Iterators: Decoupling Algorithms from Containers"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Fronting.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Fronting for an Implementation &mdash; Python 3 Patterns & Idioms</title>
+    <title>Fronting for an Implementation &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="StateMachine" href="StateMachine.html" />
     <link rel="prev" title="Building Application Frameworks" href="AppFrameworks.html" />
   </head>
         <li class="right" >
           <a href="AppFrameworks.html" title="Building Application Frameworks"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="AppFrameworks.html" title="Building Application Frameworks"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/FunctionObjects.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Function Objects &mdash; Python 3 Patterns & Idioms</title>
+    <title>Function Objects &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Changing the Interface" href="ChangeInterface.html" />
     <link rel="prev" title="Factory: Encapsulating Object Creation" href="Factory.html" />
   </head>
         <li class="right" >
           <a href="Factory.html" title="Factory: Encapsulating Object Creation"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Factory.html" title="Factory: Encapsulating Object Creation"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/GeneratorsIterators.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Generators, Iterators, and Itertools &mdash; Python 3 Patterns & Idioms</title>
+    <title>Generators, Iterators, and Itertools &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Comprehensions" href="Comprehensions.html" />
     <link rel="prev" title="Decorators" href="PythonDecorators.html" />
   </head>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
             
   
   <div class="section" id="generators-iterators-and-itertools">
-<span id="index-7"></span><h1>Generators, Iterators, and Itertools<a class="headerlink" href="#generators-iterators-and-itertools" title="Permalink to this headline">¶</a></h1>
+<span id="index-8"></span><h1>Generators, Iterators, and Itertools<a class="headerlink" href="#generators-iterators-and-itertools" title="Permalink to this headline">¶</a></h1>
 </div>
 
 
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Introduction.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Introduction &mdash; Python 3 Patterns & Idioms</title>
+    <title>Introduction &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Iterators.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Iterators: Decoupling Algorithms from Containers &mdash; Python 3 Patterns & Idioms</title>
+    <title>Iterators: Decoupling Algorithms from Containers &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Factory: Encapsulating Object Creation" href="Factory.html" />
     <link rel="prev" title="Decorator: Dynamic Type Selection" href="Decorator.html" />
   </head>
         <li class="right" >
           <a href="Decorator.html" title="Decorator: Dynamic Type Selection"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Decorator.html" title="Decorator: Dynamic Type Selection"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Jython &mdash; Python 3 Patterns & Idioms</title>
+    <title>Jython &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Part II: Idioms" href="Part2.html" />
     <link rel="prev" title="Coroutines &amp; Concurrency" href="CoroutinesAndConcurrency.html" />
   </head>
         <li class="right" >
           <a href="CoroutinesAndConcurrency.html" title="Coroutines &amp; Concurrency"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="CoroutinesAndConcurrency.html" title="Coroutines &amp; Concurrency"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/LanguageChanges.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Python 3 Language Changes &mdash; Python 3 Patterns & Idioms</title>
+    <title>Python 3 Language Changes &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
             
   
   <div class="section" id="python-3-language-changes">
-<span id="index-8"></span><h1>Python 3 Language Changes<a class="headerlink" href="#python-3-language-changes" title="Permalink to this headline">¶</a></h1>
+<span id="index-9"></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>
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/MachineDiscovery.html

   <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>
+    <title>Discovering the Details About Your Platform &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Messenger.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Messenger/Data Transfer Object &mdash; Python 3 Patterns & Idioms</title>
+    <title>Messenger/Data Transfer Object &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Part III: Patterns" href="Part3.html" />
     <link rel="prev" title="A Canonical Form for Command-Line Programs" href="CanonicalScript.html" />
   </head>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
             
   
   <div class="section" id="messenger-data-transfer-object">
-<span id="index-9"></span><h1>Messenger/Data Transfer Object<a class="headerlink" href="#messenger-data-transfer-object" title="Permalink to this headline">¶</a></h1>
+<span id="index-10"></span><h1>Messenger/Data Transfer Object<a class="headerlink" href="#messenger-data-transfer-object" title="Permalink to this headline">¶</a></h1>
 <p>The <em>Messenger</em> or <em>Data Transfer Object</em> is a way to pass a clump of
 information around. The most typical place for this is in return values from
 functions, where tuples or dictionaries are often used. However, those rely on
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/MultipleDispatching.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Multiple Dispatching &mdash; Python 3 Patterns & Idioms</title>
+    <title>Multiple Dispatching &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Visitor" href="Visitor.html" />
     <link rel="prev" title="Observer" href="Observer.html" />
   </head>
         <li class="right" >
           <a href="Observer.html" title="Observer"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Observer.html" title="Observer"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/NoteToReaders.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>A Note To Readers &mdash; Python 3 Patterns & Idioms</title>
+    <title>A Note To Readers &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Introduction" href="Introduction.html" />
     <link rel="prev" title="ToDo List" href="ToDo.html" />
   </head>
         <li class="right" >
           <a href="ToDo.html" title="ToDo List"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="ToDo.html" title="ToDo List"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/Observer.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Observer &mdash; Python 3 Patterns & Idioms</title>
+    <title>Observer &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="Multiple Dispatching" href="MultipleDispatching.html" />
     <link rel="prev" title="Table-Driven Code: Configuration Flexibility" href="TableDriven.html" />
   </head>
         <li class="right" >
           <a href="TableDriven.html" title="Table-Driven Code: Configuration Flexibility"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="TableDriven.html" title="Table-Driven Code: Configuration Flexibility"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Part I: Foundations &mdash; Python 3 Patterns & Idioms</title>
+    <title>Part I: Foundations &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Part II: Idioms &mdash; Python 3 Patterns & Idioms</title>
+    <title>Part II: Idioms &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and 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>
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <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>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Part III: Patterns &mdash; Python 3 Patterns & Idioms</title>
+    <title>Part III: Patterns &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="The Pattern Concept" href="PatternConcept.html" />
     <link rel="prev" title="Messenger/Data Transfer Object" href="Messenger.html" />
   </head>
         <li class="right" >
           <a href="Messenger.html" title="Messenger/Data Transfer Object"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Messenger.html" title="Messenger/Data Transfer Object"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/PatternConcept.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>The Pattern Concept &mdash; Python 3 Patterns & Idioms</title>
+    <title>The Pattern Concept &mdash; Python 3 Patterns, Recipes and 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">
     <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="top" title="Python 3 Patterns, Recipes and Idioms" href="index.html" />
     <link rel="next" title="The Singleton" href="Singleton.html" />
     <link rel="prev" title="Part III: Patterns" href="Part3.html" />
   </head>
         <li class="right" >
           <a href="Part3.html" title="Part III: Patterns"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="document">
       <div class="sphinxsidebar">
         <div class="sphinxsidebarwrapper">
             <p class="logo"><a href="index.html">
-              <img class="logo" src="_static/Logo.png" alt="Logo"/>
+              <img class="logo" src="_static/cover.png" alt="Logo"/>
             </a></p>
     <font color="Red">This book is in early development; you will find parts that are incorrect &amp; incomplete.</font>
     
         <li class="right" >
           <a href="Part3.html" title="Part III: Patterns"
              accesskey="P">previous</a> |</li>
-        <li><a href="index.html">Python 3 Patterns & Idioms</a> &raquo;</li>
+        <li><a href="index.html">Python 3 Patterns, Recipes and Idioms</a> &raquo;</li>
       </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Nov 13, 2008.
+      Last updated on Nov 30, 2008.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.5.
     </div>
   </body>

html/PatternRefactoring.html

   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Pattern Refactoring &mdash; Python 3 Patterns & Idioms</title>
+    <title>Pattern Refactoring &mdash; Python 3 Patterns, Recipes and 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">