Bruce Eckel avatar Bruce Eckel committed 8da5a8f

More work on the Metaclasses chapter

Comments (0)

Files changed (16)

 *.class
 *~
 *-
-#*
+\#*
+\.\#*
 .db
 .svn
 .swp

code/Metaclasses/RegisterLeafClasses.py

 # Metaclasses/RegisterLeafClasses.py
 
-class ClassSet(set):
-    "Simplify printing a set of classes"
-    def __str__(self):
-        return "(" + ", ".join([c.__name__ for c in self]) + ")"
-
 class RegisterLeafClasses(type):
     def __init__(cls, name, bases, nmspc):
         super(RegisterLeafClasses, cls).__init__(name, bases, nmspc)
         if not hasattr(cls, 'registry'):
-            cls.registry = ClassSet()
+            cls.registry = set()
         cls.registry.add(cls)
         cls.registry -= set(bases) # Remove base classes
+    # Metamethods, called on class objects:
+    def __iter__(cls):
+        return iter(cls.registry)
+    def __str__(cls):
+        if cls in cls.registry:
+            return cls.__name__
+        return cls.__name__ + ": " + ", ".join([sc.__name__ for sc in cls])
 
 class Color(object):
     __metaclass__ = RegisterLeafClasses
 class Red(Color): pass
 class Green(Color): pass
 class Yellow(Color): pass
-print(Color.registry)
+print(Color)
 class PhthaloBlue(Blue): pass
 class CeruleanBlue(Blue): pass
-print(Color.registry)
+print(Color)
+for c in Color: # Iterate over subclasses
+    print(c)
 
 class Shape(object):
     __metaclass__ = RegisterLeafClasses
 class Square(Shape): pass
 class Triangular(Shape): pass
 class Boxy(Shape): pass
-print(Shape.registry)
+print(Shape)
 class Circle(Round): pass
 class Ellipse(Round): pass
-print(Shape.registry)
+print(Shape)
 
 """ Output:
-(Red, Blue, Yellow, Green)
-(Red, CeruleanBlue, Yellow, PhthaloBlue, Green)
-(Square, Round, Boxy, Triangular)
-(Square, Ellipse, Boxy, Circle, Triangular)
-"""
+Color: Red, Blue, Green, Yellow
+Color: Red, CeruleanBlue, Green, PhthaloBlue, Yellow
+Red
+CeruleanBlue
+Green
+PhthaloBlue
+Yellow
+Shape: Square, Round, Boxy, Triangular
+Shape: Square, Ellipse, Circle, Boxy, Triangular
+"""

html/Comprehensions.html

           <div class="body">
             
   <div class="section" id="comprehensions">
-<span id="index-1"></span><h1>Comprehensions<a class="headerlink" href="#comprehensions" title="Permalink to this headline">¶</a></h1>
+<span id="index-32"></span><h1>Comprehensions<a class="headerlink" href="#comprehensions" title="Permalink to this headline">¶</a></h1>
 <p>History: where did they come from?</p>
 <p>They require a mind shift.</p>
 <p>What makes them so compelling (once you &#8216;get it&#8217;)?</p>
+<div class="section" id="techniques">
+<h2>Techniques<a class="headerlink" href="#techniques" title="Permalink to this headline">¶</a></h2>
+<p>Using <tt class="docutils literal"><span class="pre">zip()</span></tt> and dealing with two or more elements at a time:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="p">[</span><span class="s">&#39;</span><span class="si">%s</span><span class="s">=</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">n</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">all_names</span><span class="p">,</span> <span class="bp">self</span><span class="p">)]</span>
+</pre></div>
+</div>
+<p>Multiple types (auto unpacking of a tuple):</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="p">[</span><span class="n">f</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">f</span><span class="p">),</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">cls</span><span class="o">.</span><span class="n">all_slots</span><span class="p">,</span> <span class="n">values</span><span class="p">)]</span>
+</pre></div>
+</div>
 <p>A two-level list comprehension using <tt class="docutils literal"><span class="pre">os.walk()</span></tt>:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="c"># Comprehensions/os_walk_comprehension.py</span>
 <span class="kn">import</span> <span class="nn">os</span>
     <span class="k">print</span><span class="p">(</span><span class="n">r</span><span class="p">)</span>
 </pre></div>
 </div>
+</div>
 <div class="section" id="a-more-complex-example">
 <h2>A More Complex Example<a class="headerlink" href="#a-more-complex-example" title="Permalink to this headline">¶</a></h2>
 <div class="admonition note">
             <h3><a href="index.html">Table Of Contents</a></h3>
             <ul>
 <li><a class="reference external" href="">Comprehensions</a><ul>
+<li><a class="reference external" href="#techniques">Techniques</a></li>
 <li><a class="reference external" href="#a-more-complex-example">A More Complex Example</a></li>
 </ul>
 </li>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

html/Metaclasses.html

           <div class="body">
             
   <div class="section" id="metaclasses">
-<span id="index-29"></span><h1>Metaclasses<a class="headerlink" href="#metaclasses" title="Permalink to this headline">¶</a></h1>
+<span id="index-41"></span><h1>Metaclasses<a class="headerlink" href="#metaclasses" title="Permalink to this headline">¶</a></h1>
+<div class="admonition note">
+<p class="first admonition-title">Note</p>
+<p class="last">This chapter is written using Python 2.6 syntax; it will be
+converted to Python 3 at a later date.</p>
+</div>
 <p>Objects are created by other objects: special objects called &#8220;classes&#8221;
 that we can set up to spit out objects that are configured to our
-liking. What creates these special &#8220;class&#8221; objects, though? Class
-objects are created by other special objects, called metaclasses.</p>
+liking.</p>
+<p>Classes are just objects, and they can be modified the same
+way:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">Foo</span><span class="p">:</span> <span class="k">pass</span>
+<span class="gp">...</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Foo</span><span class="o">.</span><span class="n">field</span> <span class="o">=</span> <span class="mf">42</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span> <span class="o">=</span> <span class="n">Foo</span><span class="p">()</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span><span class="o">.</span><span class="n">field</span>
+<span class="go">42</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Foo</span><span class="o">.</span><span class="n">field2</span> <span class="o">=</span> <span class="mf">99</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span><span class="o">.</span><span class="n">field2</span>
+<span class="go">99</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">Foo</span><span class="o">.</span><span class="n">method</span> <span class="o">=</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="s">&quot;Hi!&quot;</span>
+<span class="gp">&gt;&gt;&gt; </span><span class="n">x</span><span class="o">.</span><span class="n">method</span><span class="p">()</span>
+<span class="go">&#39;Hi!&#39;</span>
+</pre></div>
+</div>
+<p>To modify a class, you perform operations on it like any other
+object. You can add and subtract fields and methods, for example. The
+difference is that any change you make to a class affects all the
+objects of that class, even the ones that have already been instantiated.</p>
+<p>What creates these special &#8220;class&#8221; objects? Other special objects,
+called metaclasses.</p>
 <p>The default metaclass is called <tt class="docutils literal"><span class="pre">type</span></tt> and in the vast majority of
 cases it does the right thing. In some situations, however, you can
 gain leverage by modifying the way that classes are produced &#8211;
 typically by performing extra actions or injecting code. When this is
-the case, you can use <em>metaclass</em> programming to modify the way that
+the case, you can use <em>metaclass programming</em> to modify the way that
 some of your class objects are created.</p>
 <p>It&#8217;s worth re-emphasizing that in <em>the vast majority of cases, you
 don&#8217;t need metaclasses</em>, because it&#8217;s a fascinating toy and the
 <p>In Python 2.x, the metaclass hook is a static field in the class
 called <tt class="docutils literal"><span class="pre">__metaclass__</span></tt>. In the ordinary case, this is not assigned
 so Python just uses <tt class="docutils literal"><span class="pre">type</span></tt> to create the class. But if you define
-<tt class="docutils literal"><span class="pre">__metaclass__</span></tt> to point to a callable that takes four arguments,
-Python will call <tt class="docutils literal"><span class="pre">__metaclass__()</span></tt> after the initial creation of the
-class object, passing in the class object, the class name, the list of
-base classes and the namespace dictionary.</p>
+<tt class="docutils literal"><span class="pre">__metaclass__</span></tt> to point to a callable, Python will call
+<tt class="docutils literal"><span class="pre">__metaclass__()</span></tt> after the initial creation of the class object,
+passing in the class object, the class name, the list of base classes
+and the namespace dictionary.</p>
 <p>Thus, the basic process of metaclass programming looks like this:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="c"># Metaclasses/SimpleMeta1.py</span>
 <span class="c"># Two-step metaclass creation in Python 2.x</span>
 <p>Python 3 changes the metaclass hook. It doesn&#8217;t disallow the
 <tt class="docutils literal"><span class="pre">__metaclass__</span></tt> field, but it ignores it. Instead, you use a keyword
 argument in the base-class list:</p>
+<div class="highlight-python"><pre>class Simple1(object, metaclass = SimpleMeta1):
+    ...</pre>
+</div>
 <p>This means that none of the (clever) alternative ways of defining
 <tt class="docutils literal"><span class="pre">__metaclass__</span></tt> directly as a class or function are available in
 Python 3 [[check this]]. All metaclasses must be defined as separate
 subtypes:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="c"># Metaclasses/RegisterLeafClasses.py</span>
 
-<span class="k">class</span> <span class="nc">ClassSet</span><span class="p">(</span><span class="n">set</span><span class="p">):</span>
-    <span class="s">&quot;Simplify printing a set of classes&quot;</span>
-    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
-        <span class="k">return</span> <span class="s">&quot;(&quot;</span> <span class="o">+</span> <span class="s">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">c</span><span class="o">.</span><span class="n">__name__</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="p">])</span> <span class="o">+</span> <span class="s">&quot;)&quot;</span>
-
 <span class="k">class</span> <span class="nc">RegisterLeafClasses</span><span class="p">(</span><span class="nb">type</span><span class="p">):</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="n">cls</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">nmspc</span><span class="p">):</span>
         <span class="nb">super</span><span class="p">(</span><span class="n">RegisterLeafClasses</span><span class="p">,</span> <span class="n">cls</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">nmspc</span><span class="p">)</span>
         <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">cls</span><span class="p">,</span> <span class="s">&#39;registry&#39;</span><span class="p">):</span>
-            <span class="n">cls</span><span class="o">.</span><span class="n">registry</span> <span class="o">=</span> <span class="n">ClassSet</span><span class="p">()</span>
+            <span class="n">cls</span><span class="o">.</span><span class="n">registry</span> <span class="o">=</span> <span class="n">set</span><span class="p">()</span>
         <span class="n">cls</span><span class="o">.</span><span class="n">registry</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">cls</span><span class="p">)</span>
         <span class="n">cls</span><span class="o">.</span><span class="n">registry</span> <span class="o">-=</span> <span class="n">set</span><span class="p">(</span><span class="n">bases</span><span class="p">)</span> <span class="c"># Remove base classes</span>
+    <span class="c"># Metamethods, called on class objects:</span>
+    <span class="k">def</span> <span class="nf">__iter__</span><span class="p">(</span><span class="n">cls</span><span class="p">):</span>
+        <span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="n">cls</span><span class="o">.</span><span class="n">registry</span><span class="p">)</span>
+    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="n">cls</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">cls</span> <span class="ow">in</span> <span class="n">cls</span><span class="o">.</span><span class="n">registry</span><span class="p">:</span>
+            <span class="k">return</span> <span class="n">cls</span><span class="o">.</span><span class="n">__name__</span>
+        <span class="k">return</span> <span class="n">cls</span><span class="o">.</span><span class="n">__name__</span> <span class="o">+</span> <span class="s">&quot;: &quot;</span> <span class="o">+</span> <span class="s">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">sc</span><span class="o">.</span><span class="n">__name__</span> <span class="k">for</span> <span class="n">sc</span> <span class="ow">in</span> <span class="n">cls</span><span class="p">])</span>
 
 <span class="k">class</span> <span class="nc">Color</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="n">__metaclass__</span> <span class="o">=</span> <span class="n">RegisterLeafClasses</span>
 <span class="k">class</span> <span class="nc">Red</span><span class="p">(</span><span class="n">Color</span><span class="p">):</span> <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">Green</span><span class="p">(</span><span class="n">Color</span><span class="p">):</span> <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">Yellow</span><span class="p">(</span><span class="n">Color</span><span class="p">):</span> <span class="k">pass</span>
-<span class="k">print</span><span class="p">(</span><span class="n">Color</span><span class="o">.</span><span class="n">registry</span><span class="p">)</span>
+<span class="k">print</span><span class="p">(</span><span class="n">Color</span><span class="p">)</span>
 <span class="k">class</span> <span class="nc">PhthaloBlue</span><span class="p">(</span><span class="n">Blue</span><span class="p">):</span> <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">CeruleanBlue</span><span class="p">(</span><span class="n">Blue</span><span class="p">):</span> <span class="k">pass</span>
-<span class="k">print</span><span class="p">(</span><span class="n">Color</span><span class="o">.</span><span class="n">registry</span><span class="p">)</span>
+<span class="k">print</span><span class="p">(</span><span class="n">Color</span><span class="p">)</span>
+<span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">Color</span><span class="p">:</span> <span class="c"># Iterate over subclasses</span>
+    <span class="k">print</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
 
 <span class="k">class</span> <span class="nc">Shape</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="n">__metaclass__</span> <span class="o">=</span> <span class="n">RegisterLeafClasses</span>
 <span class="k">class</span> <span class="nc">Square</span><span class="p">(</span><span class="n">Shape</span><span class="p">):</span> <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">Triangular</span><span class="p">(</span><span class="n">Shape</span><span class="p">):</span> <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">Boxy</span><span class="p">(</span><span class="n">Shape</span><span class="p">):</span> <span class="k">pass</span>
-<span class="k">print</span><span class="p">(</span><span class="n">Shape</span><span class="o">.</span><span class="n">registry</span><span class="p">)</span>
+<span class="k">print</span><span class="p">(</span><span class="n">Shape</span><span class="p">)</span>
 <span class="k">class</span> <span class="nc">Circle</span><span class="p">(</span><span class="n">Round</span><span class="p">):</span> <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">Ellipse</span><span class="p">(</span><span class="n">Round</span><span class="p">):</span> <span class="k">pass</span>
-<span class="k">print</span><span class="p">(</span><span class="n">Shape</span><span class="o">.</span><span class="n">registry</span><span class="p">)</span>
+<span class="k">print</span><span class="p">(</span><span class="n">Shape</span><span class="p">)</span>
 
 <span class="sd">&quot;&quot;&quot; Output:</span>
-<span class="sd">(Red, Blue, Yellow, Green)</span>
-<span class="sd">(Red, CeruleanBlue, Yellow, PhthaloBlue, Green)</span>
-<span class="sd">(Square, Round, Boxy, Triangular)</span>
-<span class="sd">(Square, Ellipse, Boxy, Circle, Triangular)</span>
+<span class="sd">Color: Red, Blue, Green, Yellow</span>
+<span class="sd">Color: Red, CeruleanBlue, Green, PhthaloBlue, Yellow</span>
+<span class="sd">Red</span>
+<span class="sd">CeruleanBlue</span>
+<span class="sd">Green</span>
+<span class="sd">PhthaloBlue</span>
+<span class="sd">Yellow</span>
+<span class="sd">Shape: Square, Round, Boxy, Triangular</span>
+<span class="sd">Shape: Square, Ellipse, Circle, Boxy, Triangular</span>
 <span class="sd">&quot;&quot;&quot;</span>
 </pre></div>
 </div>
 independent of each other. Each test shows what happens when another
 level of leaf classes are added &#8211; the former leaf becomes a base
 class, and so is removed from the registry.</p>
+<p>This also introduces <em>metamethods</em>, which are defined in the metaclass
+so that they become methods of the class. That is, you call them on
+the class rather than object instances, and their first argument is
+the class object rather than <tt class="docutils literal"><span class="pre">self</span></tt>.</p>
 <div class="section" id="using-class-decorators">
 <h3>Using Class Decorators<a class="headerlink" href="#using-class-decorators" title="Permalink to this headline">¶</a></h3>
 </div>
 </div>
 <div class="section" id="metaclass-conflicts">
 <h2>Metaclass Conflicts<a class="headerlink" href="#metaclass-conflicts" title="Permalink to this headline">¶</a></h2>
+<p>Note that the <tt class="docutils literal"><span class="pre">metaclass</span></tt> argument is singular &#8211; you can&#8217;t attach
+more than one metaclass to a class. However, through multiple
+inheritance you can <em>accidentally</em> end up with more than one
+metaclass, and this produces a conflict which must be resolved.</p>
 <p><a class="reference external" href="http://code.activestate.com/recipes/204197/">http://code.activestate.com/recipes/204197/</a></p>
 </div>
 <div class="section" id="further-reading">
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

html/QuickPython.html

 </div>
 </dd>
 </dl>
+<p>If you assign, you get a new one. If it&#8217;s modifiable, then unless you
+assign you are working on a singleton. So a typical pattern is:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">class</span> <span class="nc">Foo</span><span class="p">:</span>
+    <span class="n">something</span> <span class="o">=</span> <span class="bp">None</span> <span class="c"># Static: visible to all classes</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="n">x</span><span class="p">):</span>
+        <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">something</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span class="n">something</span> <span class="o">=</span> <span class="p">[]</span> <span class="c"># New local version for this object</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">something</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+</pre></div>
+</div>
+<p>This is not a serious example because you would naturally just
+initialize <tt class="docutils literal"><span class="pre">something</span></tt> in <tt class="docutils literal"><span class="pre">Foo</span></tt>&#8216;s constructor.</p>
+</div>
+</div>
+<div class="section" id="useful-techniques">
+<h2>Useful Techniques<a class="headerlink" href="#useful-techniques" title="Permalink to this headline">¶</a></h2>
+<ul>
+<li><p class="first">You can turn a list into function arguments using <tt class="docutils literal"><span class="pre">*</span></tt>:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">a</span><span class="p">,</span><span class="n">b</span><span class="p">,</span><span class="n">c</span><span class="p">):</span> <span class="k">print</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span>
+<span class="n">x</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1</span><span class="p">,</span><span class="mf">2</span><span class="p">,</span><span class="mf">3</span><span class="p">]</span>
+<span class="n">f</span><span class="p">(</span><span class="o">*</span><span class="n">x</span><span class="p">)</span>
+<span class="n">f</span><span class="p">(</span><span class="o">*</span><span class="p">(</span><span class="mf">1</span><span class="p">,</span><span class="mf">2</span><span class="p">,</span><span class="mf">3</span><span class="p">))</span>
+</pre></div>
+</div>
+</li>
+<li><p class="first">Basic functional programming with <tt class="docutils literal"><span class="pre">map()</span></tt> etc.</p>
+</li>
+</ul>
 <div class="admonition note">
 <p class="first admonition-title">Note</p>
 <p class="last">Suggest Further Topics for inclusion in the introductory chapter</p>
 </div>
 </div>
 </div>
-</div>
 
 
           </div>
 <li><a class="reference external" href="#static-fields">Static Fields</a></li>
 </ul>
 </li>
+<li><a class="reference external" href="#useful-techniques">Useful Techniques</a></li>
 </ul>
 </li>
 </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

html/_sources/Comprehensions.txt

 
 What makes them so compelling (once you 'get it')?
 
+Techniques
+==============================================================================
+
+Using ``zip()`` and dealing with two or more elements at a time::
+
+    ['%s=%s' % (n, v) for n, v in zip(self.all_names, self)]
+
+Multiple types (auto unpacking of a tuple)::
+
+    [f(v) for (n, f), v in zip(cls.all_slots, values)]
+
 A two-level list comprehension using ``os.walk()``::
 
     # Comprehensions/os_walk_comprehension.py

html/_sources/Metaclasses.txt

 Metaclasses
 ********************************************************************************
 
+..  Note:: This chapter is written using Python 2.6 syntax; it will be
+    	   converted to Python 3 at a later date.
+
 Objects are created by other objects: special objects called "classes"
 that we can set up to spit out objects that are configured to our
-liking. What creates these special "class" objects, though? Class
-objects are created by other special objects, called metaclasses.
+liking. 
+
+Classes are just objects, and they can be modified the same
+way::
+
+    >>> class Foo: pass
+    ... 
+    >>> Foo.field = 42
+    >>> x = Foo()
+    >>> x.field
+    42
+    >>> Foo.field2 = 99
+    >>> x.field2
+    99
+    >>> Foo.method = lambda self: "Hi!"
+    >>> x.method()
+    'Hi!'
+
+To modify a class, you perform operations on it like any other
+object. You can add and subtract fields and methods, for example. The
+difference is that any change you make to a class affects all the
+objects of that class, even the ones that have already been instantiated.
+
+What creates these special "class" objects? Other special objects,
+called metaclasses.
 
 The default metaclass is called ``type`` and in the vast majority of
 cases it does the right thing. In some situations, however, you can
 gain leverage by modifying the way that classes are produced --
 typically by performing extra actions or injecting code. When this is
-the case, you can use *metaclass* programming to modify the way that
+the case, you can use *metaclass programming* to modify the way that
 some of your class objects are created.
 
 It's worth re-emphasizing that in *the vast majority of cases, you
 In Python 2.x, the metaclass hook is a static field in the class
 called ``__metaclass__``. In the ordinary case, this is not assigned
 so Python just uses ``type`` to create the class. But if you define
-``__metaclass__`` to point to a callable that takes four arguments,
-Python will call ``__metaclass__()`` after the initial creation of the
-class object, passing in the class object, the class name, the list of
-base classes and the namespace dictionary.
+``__metaclass__`` to point to a callable, Python will call
+``__metaclass__()`` after the initial creation of the class object,
+passing in the class object, the class name, the list of base classes
+and the namespace dictionary.
 
 Thus, the basic process of metaclass programming looks like this::
 
 
 Python 3 changes the metaclass hook. It doesn't disallow the
 ``__metaclass__`` field, but it ignores it. Instead, you use a keyword
-argument in the base-class list:
+argument in the base-class list::
+
+    class Simple1(object, metaclass = SimpleMeta1):
+	...
 
 This means that none of the (clever) alternative ways of defining
 ``__metaclass__`` directly as a class or function are available in
 classes. This is probably just as well, as it makes metaclass programs
 more consistent and thus easier to read and understand.
 
-
-
-
 .. Possible example: simplification of XML creation via operator
    overloading.
 
-
 Example: Self-Registration of Subclasses
 ================================================================================
 
 
     # Metaclasses/RegisterLeafClasses.py
 
-    class ClassSet(set):
-        "Simplify printing a set of classes"
-        def __str__(self):
-            return "(" + ", ".join([c.__name__ for c in self]) + ")"
-
     class RegisterLeafClasses(type):
         def __init__(cls, name, bases, nmspc):
             super(RegisterLeafClasses, cls).__init__(name, bases, nmspc)
             if not hasattr(cls, 'registry'):
-                cls.registry = ClassSet()
+                cls.registry = set()
             cls.registry.add(cls)
             cls.registry -= set(bases) # Remove base classes
+        # Metamethods, called on class objects:
+        def __iter__(cls):
+            return iter(cls.registry)
+        def __str__(cls):
+            if cls in cls.registry:
+                return cls.__name__
+            return cls.__name__ + ": " + ", ".join([sc.__name__ for sc in cls])
 
     class Color(object):
         __metaclass__ = RegisterLeafClasses
     class Red(Color): pass
     class Green(Color): pass
     class Yellow(Color): pass
-    print(Color.registry)
+    print(Color)
     class PhthaloBlue(Blue): pass
     class CeruleanBlue(Blue): pass
-    print(Color.registry)
+    print(Color)
+    for c in Color: # Iterate over subclasses
+        print(c)
 
     class Shape(object):
         __metaclass__ = RegisterLeafClasses
     class Square(Shape): pass
     class Triangular(Shape): pass
     class Boxy(Shape): pass
-    print(Shape.registry)
+    print(Shape)
     class Circle(Round): pass
     class Ellipse(Round): pass
-    print(Shape.registry)
+    print(Shape)
 
     """ Output:
-    (Red, Blue, Yellow, Green)
-    (Red, CeruleanBlue, Yellow, PhthaloBlue, Green)
-    (Square, Round, Boxy, Triangular)
-    (Square, Ellipse, Boxy, Circle, Triangular)
+    Color: Red, Blue, Green, Yellow
+    Color: Red, CeruleanBlue, Green, PhthaloBlue, Yellow
+    Red
+    CeruleanBlue
+    Green
+    PhthaloBlue
+    Yellow
+    Shape: Square, Round, Boxy, Triangular
+    Shape: Square, Ellipse, Circle, Boxy, Triangular
     """
 
 Two separate tests are used to show that the registries are
 level of leaf classes are added -- the former leaf becomes a base
 class, and so is removed from the registry.
 
+This also introduces *metamethods*, which are defined in the metaclass
+so that they become methods of the class. That is, you call them on
+the class rather than object instances, and their first argument is
+the class object rather than ``self``.
+
 Using Class Decorators
 --------------------------------------------------------------------------------
 
 Metaclass Conflicts
 ================================================================================
 
+Note that the ``metaclass`` argument is singular -- you can't attach
+more than one metaclass to a class. However, through multiple
+inheritance you can *accidentally* end up with more than one
+metaclass, and this produces a conflict which must be resolved.
+
 http://code.activestate.com/recipes/204197/
 
 Further Reading

html/_sources/QuickPython.txt

 	>>> f2.x
 	'b'
 
+If you assign, you get a new one. If it's modifiable, then unless you
+assign you are working on a singleton. So a typical pattern is::
+
+       class Foo:
+           something = None # Static: visible to all classes
+	   def f(self, x):
+	       if not self.something:
+	       	   self.something = [] # New local version for this object
+	       self.something.append(x)
+
+This is not a serious example because you would naturally just
+initialize ``something`` in ``Foo``\'s constructor.
+
+Useful Techniques
+=======================================================================
+
+- You can turn a list into function arguments using ``*``::
+
+      def f(a,b,c): print a, b, c
+      x = [1,2,3]
+      f(*x)
+      f(*(1,2,3))
+
+- Basic functional programming with ``map()`` etc.
+
 
 .. note:: Suggest Further Topics for inclusion in the introductory chapter
 

html/genindex.html

   <dd><dl>
     <dt><a href="CanonicalScript.html#index-0">script command-line</a></dt>
   </dl></dd>
-<dt><a href="Metaclasses.html#index-29">class decorators</a></dt>
+<dt><a href="Metaclasses.html#index-41">class decorators</a></dt>
 <dt>command-line</dt>
   <dd><dl>
     <dt><a href="CanonicalScript.html#index-0">canonical form, script</a></dt>
   </dl></dd>
 <dt>comprehension</dt>
   <dd><dl>
-    <dt><a href="Comprehensions.html#index-1">generator</a></dt>
-    <dt><a href="Comprehensions.html#index-1">list</a></dt>
+    <dt><a href="Comprehensions.html#index-32">generator</a></dt>
+    <dt><a href="Comprehensions.html#index-32">list</a></dt>
   </dl></dd></dl></td><td width="33%" valign="top"><dl>
 <dt><a href="CoroutinesAndConcurrency.html#index-3">concurrency</a></dt>
 <dt><a href="CoroutinesAndConcurrency.html#index-3">coroutines</a></dt>
 
 <dt>generator</dt>
   <dd><dl>
-    <dt><a href="Comprehensions.html#index-1">comprehension</a></dt>
+    <dt><a href="Comprehensions.html#index-32">comprehension</a></dt>
   </dl></dd>
 <dt><a href="GeneratorsIterators.html#index-7">generators</a></dt></dl></td><td width="33%" valign="top"><dl>
 <dt><a href="CoroutinesAndConcurrency.html#index-3">GIL: Global Interpreter Lock</a></dt>
   </dl></dd>
 <dt>list</dt>
   <dd><dl>
-    <dt><a href="Comprehensions.html#index-1">comprehension</a></dt>
+    <dt><a href="Comprehensions.html#index-32">comprehension</a></dt>
   </dl></dd></dl></td><td width="33%" valign="top"><dl>
 </dl></td></tr></table>
 
 <dl>
 
 <dt><a href="Messenger.html#index-10">messenger (data transfer object)</a></dt>
-<dt><a href="Metaclasses.html#index-29">Metaclasses</a></dt></dl></td><td width="33%" valign="top"><dl>
+<dt><a href="Metaclasses.html#index-41">Metaclasses</a></dt></dl></td><td width="33%" valign="top"><dl>
 <dt><a href="CoroutinesAndConcurrency.html#index-3">multiprocessing</a></dt>
 </dl></td></tr></table>
 
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>
 <li class="toctree-l3"><a class="reference external" href="QuickPython.html#static-fields">Static Fields</a></li>
 </ul>
 </li>
+<li class="toctree-l2"><a class="reference external" href="QuickPython.html#useful-techniques">Useful Techniques</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference external" href="UnitTesting.html">Unit Testing &amp; Test-Driven Development</a><ul>
 </li>
 <li class="toctree-l1"><a class="reference external" href="GeneratorsIterators.html">Generators, Iterators, and Itertools</a></li>
 <li class="toctree-l1"><a class="reference external" href="Comprehensions.html">Comprehensions</a><ul>
+<li class="toctree-l2"><a class="reference external" href="Comprehensions.html#techniques">Techniques</a></li>
 <li class="toctree-l2"><a class="reference external" href="Comprehensions.html#a-more-complex-example">A More Complex Example</a></li>
 </ul>
 </li>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>
   
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 23, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   <script type="text/javascript" src="searchindex.js"></script>

html/searchindex.js

-Search.setIndex({desctypes:{},terms:{defaultcloseoper:10,orthogon:21,yellow:[30,18],four:[13,18,12,36],secondli:20,prefix:30,sleep:[36,30],dirnam:[1,6],"00798f9c":28,browse_thread:7,gladiolu:32,evalscissor:23,whose:[16,22,11,23,30],authorit:18,typeerror:18,pprint:18,selen:7,concret:[22,1,4],swap:[35,30],under:[21,10,11,1,12,2,16,35,7],testabl:1,worth:[22,10,4,18],lure:12,everi:[21,33,10,1,12,2,4,16,22,30,14,20],risk:29,inventfeatur:32,matchobj:6,rise:21,lurk:10,voic:[2,13,1],penchant:33,decorator_without_argu:14,govern:12,affect:[22,30],rare:21,vast:18,disturb:[22,4],nestedshapefactori:4,metaclass:[9,28,14,18],decorator_with_argu:14,correct:[10,22,12],"__templatemethod":0,getdeclaredmethod:1,technolog:[13,1],verif:1,unpredictableperson:12,cappuccinowhip:20,c02:1,categori:[21,14,30],cmp:[18,12],storag:28,"10f":22,direct:[21,9,10,12,4,14,36],sourceforg:[10,30],nail:22,second:[33,10,11,30,28,23,16,22,35,14],classcastexcept:16,ill:22,"__finditem__":10,even:[10,11,1,13,28,33,19,35,18,7,22,14,20],hide:[21,22,37],createshap:4,canvasheight:36,item1:23,weren:28,shallowai:11,firstdigit:12,"new":[0,1,2,3,4,6,7,8,10,11,12,13,15,16,18,20,21,23,22,32,33,36],net:[10,1,30,2,13,7],ever:[16,22,23],succumb:1,liberti:37,told:4,getsiz:30,widget:30,behavior:[21,10,11,30,12,28,23,16,22,18,37,14,36],never:[2,28,10,22,1],here:[1,2,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,33,36,37],"__hash__":12,debugg:7,gridlayout:30,path:[22,1,12,10,6,7,30],cardboard:22,interpret:[21,9,10,11,22],dry:20,sweeet:7,haschang:[30,12],credit:[13,9],errmsg:1,studi:[21,22,1,30,4,18],readlinesetup:10,portabl:[10,4],tremend:10,golden:21,argin4:10,"_test":6,brought:[7,33,10],substr:22,unix:31,ratsandmaz:36,wateron:[10,18],total:[10,22,12],unit:[9,10,1],getchar:10,plot:30,redon:13,describ:[21,33,10,1,12,2,32,22,16,35,5,18,7,20],would:[33,10,0,1,12,2,30,4,16,22,11,17,28,14,20],quickpython:33,suit:1,call:[21,9,10,0,1,12,33,32,30,4,23,16,22,11,6,18,7,28,37,14,35],typo:13,recommend:22,type:[21,9,10,11,1,12,33,32,30,4,23,16,22,18,7,28,37,20],until:[21,10,11,12,32,22,33,6,19,14],looni:11,remark:[33,10,22],relat:[21,35],notic:[10,1,30,32,23,4,33,22,14],hurt:30,warn:[21,10,8,22],glass:22,flowervisitor:32,moin:14,hole:1,hold:[10,11,12,13,22,16],unpack:[10,22],must:[10,11,1,12,2,32,30,4,23,33,22,5,36,18,7,28,37,14,20],join:[10,6,18],err:[22,1],setup:[7,1,4],work:[21,9,10,22,1,30,33,2,8,4,23,16,13,35,6,18,7,28,14,20,19],worm:32,contentpan:10,root:[22,1],overrid:[22,0,1,12,33,18,7,30],walk_comprehens:10,give:[21,10,1,31,2,22,33,13,18,7,14,36],digit:12,indic:[9,10,30,12,22,4,33,29,14],doublevalu:22,lighton:[10,18],setvis:[10,36,30],unavail:12,unassign:7,david:[21,33,18],addtobin:22,end:[21,10,11,30,2,23,33,13,18,22,8,36],quot:33,ordinari:[22,1,30,10,4,18],classifi:[21,9],revisit:[22,4],how:[21,33,10,11,1,30,2,32,15,4,23,16,13,7,28,22,20],hot:20,disappear:[19,36],env:1,answer:[7,22,1,23],verifi:[10,1],changeinterfac:37,perspect:[21,22],"void":[10,1],updat:[30,29,6,7,8,36],my_new:28,recogn:[],lai:1,mess:2,coffeeshop:20,after:[21,10,11,1,12,8,28,33,22,36,18,7,14,20],implementation1:35,lump:35,implementation2:35,diagram:[9,22,12,13,35,7,8,20],befor:[21,33,10,11,1,12,2,22,16,18,30,14,20],wrong:[22,10,1],beauti:[22,35],law:21,parallel:[21,3],demonstr:[10,0,1,30,12,32,23,33,35],beanmeup:20,chere:7,profess:17,attempt:[21,22,1],third:22,classmethod:[28,18],revolv:21,exclud:1,wink:0,maintain:[21,22,11,12,13,23,36,14,20],environ:[7,32,22,4,31],incorpor:[10,11,14,1],enter:[10,14,30,12,36],lambda:[10,18],someplac:7,order:[33,10,0,30,12,2,4,16,22,11,5,18,7,8,20,35],origin:[10,1,30,14,22,16,36,8,20],composit:21,os_walk_comprehens:6,over:[21,33,10,11,1,2,22,16,18,14],fall:[14,1,31],orang:30,becaus:[21,33,10,22,1,12,2,32,28,16,13,35,18,7,30,37,14,19],run_ev:18,paperscissorsrock:[32,23],flexibl:[21,9,10,11,12,23,33,22,18,38,20],vari:[21,11],fit:[21,22,11,1,30,2,35],fix:[28,29,30,13,32,22,7,8,20],avocado:20,"__class__":[10,11,32,23,18,20],bytecod:10,better:[21,10,11,1,12,2,22,13,30,14],imp:[16,35],blemang:33,comprehens:[9,10,6,18],hidden:[33,22,0,35],schmidt:22,easier:[21,10,1,12,32,5,18,7,30,14],glassbin:22,them:[21,33,10,11,1,30,2,32,23,16,13,36,6,7,22,14,20,17],thei:[21,33,10,11,1,12,2,32,37,28,16,13,6,18,30,22,14,20],proce:7,safe:[16,9,10,14],stringformat:33,"break":[22,1,29,20,36,6],promis:22,setvalu:22,"instanceof":22,choic:[22,11,30,2,32,4,23,13,36,18,7,20],grammat:2,alex:28,brough:[],getvalu:[10,22,12],closeobserv:30,each:[21,9,10,0,1,12,32,30,4,23,33,22,11,36,6,18,28,8,20,35],debug:[10,8,29],side:[7,13,10,22,1],mean:[21,33,10,11,1,12,13,32,22,16,35,18,30,14,20],prohibit:22,setdefaultcloseoper:[10,30],nochang:12,enorm:14,arduou:20,taught:11,makecharact:4,receptacl:22,collector:10,whip:20,goe:[13,33,22,20],langug:10,gof:[21,11,35],content:22,rewrit:[10,2,8,22,16,13,35,37,7,14,20],dsl:10,vector:[21,22,36,12],adapt:[7,9,22,37],reader:[9,1,13,16,33,5,19],got:[13,1,37],washer:12,forth:10,dsc:18,linear:21,barrier:21,written:[33,30,11,1,18],situat:[28,1,10,33,22,18],free:[7,13,21,12],standard:[21,10,11,1,30,33,14],ncpu:31,println:[22,10,1],mousemovegener:12,quickinstal:7,sheet:[7,1],kit:10,acrobat:7,uiuc:22,puzzl:4,angl:21,openssh:7,filter:18,mvc:30,isn:[21,10,0,30,2,22,33,35],subtl:[21,22],onto:21,bite:1,rang:[10,0,30,32,4,23,33],isassignablefrom:1,gradi:22,hoop:14,independ:[21,22,30,18],wast:[33,4,30],system:[21,10,11,1,12,31,2,32,15,4,23,13,18,7,22,36,19],restrict:[2,10,14,28,30],"__tojava__":10,unlik:[33,22,11,1],alreadi:[21,10,11,1,30,2,22,16,18,7,36],wrapper:[10,22],wasn:22,getmemb:6,thick:4,agre:33,primari:[22,11,1,3,18,32],hood:10,brillig:10,vendingmachinetest:12,metanewvsinit:18,"__implement":35,spinach:20,top:20,sometim:[21,10,0,37,13,22,18,7,14],cardboardbin:22,rsrc:30,gnureadlin:10,master:[10,22,12],too:[21,10,1,13,22,34,19,14,20],similarli:10,john:18,consol:[10,1],namespac:18,tool:[9,10,11,1,12,2,4,13,7,30,22,8],propon:22,getcontentpan:30,somewhat:2,conserv:18,technic:13,trek:28,silli:22,target:[10,30],keyword:[33,30,10,4,18],provid:[21,33,10,0,1,12,30,4,16,22,11,37,7,28,14,20,35],"__onlyon":28,tree:[10,1],hors:33,prong:22,project:[21,9,10,1,2,32,22,13,17,7,8,36],matter:[21,22,11,13,4,18],pressur:1,foamedmilk:20,fashion:[33,22,14],mind:[13,28,1,6],mine:7,raw:33,aforement:21,cohes:[21,22],"__main__":[28,1,30,10,33,6,18],seen:[21,33,10,11,30,12,2,4,16,35,18,14],seem:[21,10,1,12,14,4,33,22,35,8],seek:[22,12],seminar:2,innerclass:10,realm:[16,21],respectjavaaccess:10,terrif:10,latter:[21,10],cope:22,thorough:10,alreadyopen:30,staticinnerclass:10,client:[22,0,1,12,2,35,37],alldecor:20,thoroughli:2,wherebi:12,simplifi:[7,28,10,4,18],shall:[10,11,1],bruce:7,glob:[10,1],object:[1,4,5,8,9,10,11,12,14,16,18,36,21,28,23,22,30,32,33,35,20,37],deleg:[28,35,22],regular:[33,10,1,20],letter:0,phase:[21,22,14],coin:11,brien:22,tradit:21,simplic:[21,32,10,12,33],don:[21,9,10,22,37,30,2,3,4,23,33,13,34,35,18,7,14,19],simplif:[10,18],pythoninterpreterset:10,doc:7,flow:[13,10],doe:[21,10,11,1,12,8,30,4,33,22,0,18,28,14,29,35],bash_profil:7,dummi:11,declar:[33,1,18],wildcard:10,itemslot:12,notion:35,dot:10,marvel:33,has_kei:[22,4,12,31],class_nam:18,endear:10,visitor:[21,9,22,1,30,32],"__str__":[28,11,12,32,23,18],random:[21,22,30,32,4,23],syntax:[10,1,28,33,22,5,18,14],"2008v1":7,involv:[21,28,15,22,16,18,7],despit:22,layout:[2,13,10],acquir:30,menu:[7,15,4,20],explain:[35,14,1,18,4],configur:[9,10,30,12,13,23,22,18,7,38],restaur:20,sugar:14,theme:11,busi:32,"__call__":[28,11,14,18],priveledg:[],oct:10,edict:32,cappuccino:20,vener:7,stop:[22,1],next:[10,11,1,12,4,16,22,18,28,36],on_mouseup:30,report:[7,1,36],rosettacod:11,bat:10,bar:[13,3,28,18],isopen:30,emb:[33,10],baz:[3,18],shape:[22,4,18],method:[21,9,10,0,1,12,32,30,4,23,33,22,11,6,18,28,37,14,20,35],twice:[1,30],bad:[13,4],steam:20,fair:11,decoratortalk:14,elimin:[10,22],mandatori:21,result:[21,33,10,11,1,30,22,16,6,18,14,20,36],respons:[9,22,0,12,33,11,36,20],fail:[22,10,14,1,12],themselv:[21,33,30],bee:[32,35,30],hammer:22,best:[21,10,2,33,13,7,14],brazil:2,awar:[22,10,30,4,18],said:2,alsum:22,databas:28,hgrc:7,red3d:36,discoveri:[21,22],figur:[2,13,10,22,31],emptor:19,simplest:[21,28,10,1,30],awai:[21,22,20,12],getkei:10,approach:[21,9,10,30,12,32,4,16,22,18,7,28,37,14,20],attribut:[21,10,2,5,18,14],accord:[16,22,1],extend:[16,32,22,1,4],xrang:10,weak:33,extens:[7,13,10,22,18],lazi:[28,35,12],preprocessor:14,backgroundcolor:30,rtti:[9,22],aparat:22,protect:[10,35,1,30],accident:[21,22],expos:[22,37],howev:[21,33,10,11,1,12,13,32,30,4,16,22,35,5,36,18,7,28,37,14,20],pitt:14,against:[32,10,14,22],logic:[21,30,20],countri:11,com:[21,10,1,12,13,22,16,18,7,14,36],con:20,compromis:[9,20],kwd:28,notifyobserv:30,elf:32,excess:12,coconut:33,"2nd":10,diff:7,guid:[7,9],assum:[7,33,28,22],panel:30,duplic:[21,6],light:[10,18],testsynchron:30,ianbick:18,three:[21,10,12,32,18,14,20],been:[21,10,22,30,12,2,28,33,13,35,18,19,14],chrysanthemum:32,much:[21,10,22,1,30,2,3,4,33,13,18,32,7,14,19],interest:[21,10,1,30,2,28,22,18,14],basic:[21,9,10,1,12,2,4,33,16,22,35,18,30,37,14,20],"__doc__":6,"__len__":10,quickli:[10,12],life:30,mcl:18,deeper:[22,10,4],spit:18,getval:10,xxx:31,isfunct:6,dave:16,alreadyclos:30,bookstor:2,ugli:[22,37],exception:[33,10],ident:[28,37,22,12],occam:21,gnu:1,servic:[2,13],properti:10,commerci:[13,10],air:[4,12],employ:2,calcul:[11,30],aid:33,vagu:21,dizzi:21,enlev:21,seconddigit:12,player:30,kwarg:[5,6],indent:[13,33,6],tediou:[10,30],sever:[22,10,4,12],valgen:10,quand:21,perform:[21,10,11,1,12,32,4,23,22,0,18,30,14,20],suggest:[21,28,1,13,22,33,7],make:[1,2,4,5,6,7,8,9,10,11,12,13,14,17,18,20,21,22,23,28,29,30,32,33,35],transpar:[10,1,20],complex:[9,10,11,1,30,4,6,14],descend:1,tackl:22,complet:[21,10,1,12,22,35,7,30,14,36],inheritor:[30,18],blue:[30,18],listperform:38,hand:[21,33,28,11,30,13,4,16,22,18,14],fairli:[21,22,1,30,10,23,18],nix:10,rais:[2,22,18,12],garlic:20,refin:[10,8,22],techniqu:[28,3,22,4,16,32],qualif:10,jframe:[10,30],kept:[2,1],thu:[21,33,10,11,1,12,4,23,16,22,0,18,14,20],getbyt:36,game:[4,30],inherit:[21,9,10,11,1,12,30,4,33,22,0,18,28,20],runtimeexcept:[16,12],academia:11,shortli:[33,1],greatest:[21,22],thi:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,18,19,20,21,22,23,28,29,30,32,33,34,35,36,37],programm:[21,9,10,0,1,12,2,28,33,35,37,14],everyth:[10,30,31,2,22,33,13,18,19,14],isomorph:21,left:[21,22,30,13,32,15,6,7],agon:2,identifi:[7,33,10,4],setcolor:[36,30],just:[1,2,4,5,6,7,14,10,11,12,13,18,19,20,21,22,23,28,30,31,33,35],"__dict__":[28,5,6,30],kdiff3:7,yet:[33,10,1,30,13,28,16,22,6,18,19,36],languag:[21,9,10,11,1,12,3,4,33,22,34,6,18,14,29],previous:[22,4,18],easi:[21,10,1,23,33,22,7,20],had:[21,33,10,11,1,12,2,32,22,16,36,14,20],keyset:[10,22],spread:[4,23],prison:36,falter:1,els:[21,10,1,12,31,28,33,22,6,7,36],functionobject:11,explanatori:10,gave:[2,22],applic:[21,9,10,0,12,4,35,7,14],larman:37,mayb:[13,8,1],metabas:18,ajout:21,background:30,elabor:22,shadow:21,unten:14,readlineconsol:10,apart:21,maxval:10,specif:[21,10,11,1,12,4,16,22,35,18,7,30,8],arbitrari:[33,22],nudg:0,hunt:[22,30,18,36],manual:[22,23],doubledispatch:22,tymciurak:7,night:[2,10,18],ocbox:30,unnecessari:[10,35,4,12],singletonpattern:28,underli:21,www:[21,33,10,11,1,12,22,16,18,7,30,14,36],right:[21,10,30,2,22,33,13,6,18,7,19],old:22,deal:[22,10,23,37],printf:33,interp:10,somehow:[10,35,22,18],dead:36,intern:[16,22,1,4],borg:28,unless:[2,35,1,6],indirect:22,successfulli:[7,22,1],atteint:21,txt:[36,12],clash:22,bottom:[33,11],test_x_z:18,suffici:10,condit:[9,11,1,12,4,33,36],foo:[10,13,3,28,33,18,14],core:[7,33,10],sensibl:[4,18,23],steamedmilk:20,confer:[2,13,22],promot:[2,22],repositori:2,pylist:10,post:[7,14],"super":[33,28,30,18],create_mc:18,meyer:36,chapter:[33,10,11,1,2,8,22,16,13,34,36,18,38,14,20],unpackag:10,alexand:16,eat:32,getparametertyp:1,slightli:[9,1,12,5,18,30,14],py2float:10,surround:[33,22,36,30],unfortun:10,commit:[7,8],produc:[21,10,22,1,12,2,32,4,23,16,13,18,37,14],makeobstacl:4,dilemma:[32,22],thermostat:[10,18],javac:10,curiou:19,basenam:6,"float":10,encod:23,bound:[2,32,10,22],mocha:20,down:[10,11,1,30,4,36,20],creativ:[2,22,17],weightvisitor:22,bizarr:14,cappuccinodecafwhip:20,wrap:[10,11,30,28,16,22,14,20],opportun:22,clearchang:30,javax:10,testdumpclassinfo:10,east:36,accordingli:13,wai:[1,2,4,5,7,14,10,11,12,13,18,20,21,22,28,29,30,31,32,33,35,37],frustrat:10,support:[9,10,1,12,2,3,4,33,22,17,7,30],evalpap:23,why:[21,33,22,14,18],avail:[21,10,11,1,2,22,33,18],stuck:1,reli:[16,22,5],editor:[7,13],fork:7,head:[21,11],medium:21,autonom:36,form:[21,9,22,1,30,2,15,4,16,33,18],offer:20,forc:[21,33,10,1,30,2,4,16,35,6,18],forg:1,heat:12,hear:1,percentag:2,heap:[22,35],hashtabl:[],"true":[22,1,12,10,4,33,18],analyst:22,"6dd415847e5cbf7c":7,entryexit:14,pragu:22,setsuccess:11,maximum:[21,33],tell:[10,11,1,12,4,33,22,7,36],singletonmetaclass:28,absenc:1,fundament:[11,21,0,1,33],trim:22,developerwork:18,classif:21,featur:[21,10,1,2,15,22,33,34,7,14],setxi:36,semicolon:33,classic:[22,12],howdi:[10,18],stronger:33,"abstract":[21,9,22,4,37],flaw:1,sale:2,exist:[22,0,4,16,6,18],door:12,cleverli:13,mold:[22,37],trip:2,assembl:20,inde:[28,10,22,14,1],surpris:[33,14],metamethod:[9,18],excel:[16,18],refactor:[9,22,1,29],tij:38,test:[21,9,10,11,1,12,22,19,6,18,7,30,8],tie:21,appetit:21,smell:12,realiti:10,getsizetupl:30,notif:[21,30],intend:[2,10,1],felt:10,intent:[16,21,32],consid:[21,9,10,11,1,23,22,35,36,18,14,20],phthaloblu:18,bitbucket:[7,9,8,29],receiv:[10,14,30],longer:[10,13,22,33,14,20],furthermor:11,home:[7,10],intimaci:22,ignor:[22,28,1,18],inexpens:22,time:[21,33,10,0,1,12,2,30,4,16,13,11,36,18,28,22,14,20],push:7,backward:[36,29],osx:[7,31],concept:[21,9,10,0,11],chain:[9,11,12],nextstat:12,skip:1,consum:[10,5,20],focus:4,invent:[10,35],cafelattedecaf:20,objcount:1,subclass:[9,10,12,4,22,18,20],primer:18,milk:20,row:[30,12],decid:[22,12,30,32,10,4,33,35,20],depend:[21,10,30,12,4,22,18,8,29],decim:33,intermedi:2,certainli:[21,22,30,12,10,4,35,20],decis:[13,16,36,33],jvm:10,mainloop:30,jtextarea:10,isinst:[16,18,31],"__metaclass__":[28,18],sourc:[21,10,1,12,2,22,13,7,30,36],string:[9,10,11,1,12,4,33,22,18,30,36],brazillian:2,onlyon:28,"fa\u00e7ad":[9,37],broadli:22,word:[10,11,1,12,0,37,14],exact:[22,4,12,23],valuabl:22,level:[21,22,1,30,4,33,6,18,14],did:[33,10,6],die:36,gui:[0,4,30],iter:[21,9,10,1,12,4,33,16,22,27],vein:14,item:[30,10,4,12,23],team:[2,7,29,9],quick:[9,10,1,33,7,20],round:[35,18],dir:[10,1,18,6],dict:[28,10,5,6,18],prevent:[9,22,1,30,4,35,18],plaincap:20,paintcompon:30,htm:36,compens:21,sign:[7,10,8],bondag:14,cost:[21,20,12],cafelattewetwhip:20,patient:10,corba:10,appear:[21,10,11,1,12,13,8,30,4,33,22,18,28,14,29],filler:22,scaffold:4,current:[21,33,10,1,12,22,16,8,36],suspect:4,newalgorithm:11,shapefact2:4,deriv:[22,1,12,10,4,33,35,18,30],cappuccinodri:20,gener:[1,2,4,6,7,8,9,10,11,12,14,16,18,36,21,28,23,27,22,29,30,32,33,35,37],satisfi:[21,22,11,12,35],modif:[33,22,14,20,18],chainlink:11,address:35,along:[21,33,10,1,12,22,16,35],viabl:21,teacher:17,wait:[30,10,22,12],box:[9,10,1,30,4],messengeridiom:5,nextb:12,alti:30,shift:6,queue:11,behav:[10,14,22,12],extrem:[7,22,10,14,1],commonli:[10,22],nmspc:18,trashtyp:22,semant:[33,1],regardless:[22,35],mazegen:36,extra:[22,1,30,33,18,20],activ:[13,32,22,4],modul:[9,10,30,3,33,18,14],prefer:[13,18],toarrai:10,visibl:10,codemark:6,instal:[9,10,1,30,22,7],forefront:1,gsum:22,anounc:7,red:[30,18,36],newslett:21,prove:[22,14],univers:[21,4],visit:[32,10,22],recycleap:22,subvers:10,everybodi:30,live:10,handler:30,msg:33,scope:33,checkout:[7,8],testid:1,trustworthi:6,capit:18,testpyutil:10,afford:11,peopl:[21,22,1,29,2,32,33,13,17,18,7,14],claus:[33,30,4,12],clue:22,visual:[7,9,30,13],appendix:2,rigid:10,oop:[21,22,1,30],examin:[10,22],obj:[16,33],jlabel:10,effort:[9,10,11,1,2,22,17],easiest:[7,9,10,32],simplemeta2:18,simplemeta3:18,fly:32,graphic:[36,1,30,4],ibm:18,prepar:14,dmitri:28,battl:[32,4],focu:[13,3,22],flowlayout:10,problemsolv:11,can:[1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,28,30,32,33,35,36,37],purpos:[21,22,11,4],problemat:16,claim:11,encapsul:[21,9,22,11,12,4],stream:10,predict:14,wrapped_f:14,statet:12,backslash:[33,10],topic:[2,33,28],heard:22,chih:28,abort:[1,6],proxydemo:35,recycl:[9,22],simul:[21,9,22],occur:[21,22,11,1,12,13,4,23,30],pink:30,alwai:[21,28,0,1,29,10,33,22,8],killanddismemb:4,variou:[21,10,11,1,12,32,4,23,22,0,20],distinctli:12,ping:10,write:[21,9,10,0,1,12,2,4,33,16,13,11,6,18,30,22,35],anyon:[2,36],pure:[10,12],"0x00798900":28,parameter:22,ensconc:10,map:[10,12,32,22,33,36],product:[13,33,10,1],modal:10,book:[21,9,28,0,1,2,8,37,4,33,13,11,17,18,32,7,22,14,36,19],max:30,thermostatdai:[10,18],spot:[13,4],usabl:12,wantmor:12,inputb:12,inputc:12,mac:7,inputa:12,mymethod:30,aop:14,mai:[21,33,10,11,1,12,2,30,4,16,13,34,36,7,28,22,20],underscor:[13,33,28],data:[9,10,11,30,12,4,33,16,22,5,28],grow:34,newlin:33,my_login:7,practic:[33,18],johnson:21,secur:[10,14],explicit:[21,11,14,23],cafelattewhip:20,inform:[10,11,1,12,31,8,30,4,23,33,22,5,18,7,28,14,36],"switch":[22,11,36,35],preced:20,combin:[9,10,11,30,2,23,18,20],gamma:21,callabl:[14,30,18],talk:[7,21,10,22],vike:33,extractor:[8,1],dojo:17,mouseact:12,countobserv:30,greenhouselanguag:[10,18],brain:[33,11],lst:10,codemanag:[6,18],still:[21,10,22,30,12,2,4,33,13,6,18,7,8],skeleton:35,stringlist:22,dynam:[21,9,10,11,30,32,4,23,33,22,35,14,20],rosetta:17,group:[21,22,11,30,2,32,33,6,18,7,36,17],thank:[9,29],polici:0,jim:[22,11],platform:[9,10,31],window:[9,10,31,13,15,7,8],curli:33,borgsingleton:28,jtextfield:10,ddtrash:22,non:[21,10,1,2,22,33,18],dispens:12,halt:1,halv:33,sysconf_nam:31,alist:7,initi:[21,10,0,30,12,4,33,22,35,18,7,28,8,36],sorter:22,underneath:7,typedbinmemb:22,pyinteg:10,aesthet:22,therebi:1,half:35,javaclassinpython:10,now:[21,10,1,12,32,4,22,36,18,7,14,29],discuss:[21,22,36],introduct:[9,2,33,18,7,14],term:[21,22,11,1,12,35,37,14],name:[21,10,0,1,12,13,8,30,4,23,33,22,35,5,6,18,7,28,14,20],ppr:22,getweapon:32,didn:[21,33,8,1],oliv:20,phyast:14,separ:[21,10,0,1,12,32,4,33,22,11,18,7,30,35],rock:23,cafemochadecafwhip:20,pizza:20,jmap:10,compil:[21,10,11,1,30,22,33,35,6,18,19,14],domain:10,replac:[10,11,1,13,32,33,14],individu:[7,22,36,20],arg3:14,continu:[22,1,12,10,33,6],tag3_method:18,ensur:[7,21,35,1,6],parsetrash:22,significantli:14,begun:21,year:[16,21,22,1],happen:[21,10,22,1,12,2,4,13,18,30,14,20],dispos:10,troll:32,shown:[21,22,11,32,10,4,33,20],accomplish:[22,37,30,10,33,35,18,28],cafemochawhip:20,"3rd":[16,20],space:[22,13,10,33,35,6,36],profit:[2,10],antoin:21,profil:10,internet:[1,36],returnstr:10,factori:[21,9,22,12,4,37],"0x7ed70":18,earlier:22,"goto":22,occupi:33,getcwd:1,argu:[13,3,16,14,21],argv:6,lab:22,org:[10,11,1,30,14,33,29,18,7,8],"byte":[10,36],care:[13,33,22,4],reusabl:[16,22],couldn:[22,11,1],yarko:[7,8,29],synchron:30,recov:22,thing:[21,10,11,1,30,2,23,33,13,35,18,7,22,14],place:[33,10,22,1,12,2,4,16,13,5,17,7,30,14,20,19],greenhous:[38,10,18],principl:[21,9,22,1,12,37],think:[21,33,10,11,1,30,2,23,16,22,7,14,20],frequent:22,first:[21,9,10,0,1,12,33,30,4,23,16,22,35,6,18,7,28,37,14,20,36],oper:[21,9,10,11,33,12,32,15,4,23,16,22,18,7,14],directli:[28,0,1,2,10,33,22,18],carri:[22,11,12],onc:[21,10,30,22,6,18,7,14,20],arrai:[21,22,12,10,4,33,37,36],getcost:20,crib:31,yourself:[10,12,2,22,33,7],fast:[13,33,10,1],ring:[10,18],open:[10,0,1,12,2,22,13,6,18,7,30],size:[2,30,10,1,20],given:[22,0,12,30,10,4,35,36],ian:18,"__subclasses__":[32,4,23],convent:18,width:[36,30],teardown:1,caught:12,clip1:22,plastic:22,necessarili:[13,0],circl:[18,4,12],showdigit:12,white:[9,22,1,30],conveni:[28,30,13,10,4,35,18,20],cite:36,includ:[21,33,10,1,12,15,28,16,22,17,7,30,14,20,29],simionato:[14,18],changeneighbor:30,especi:[21,22,29,10,33,17],copi:[22,12,30,2,35,6,7],specifi:[10,1,12,2,4,33,7],broadcast:12,newcolor:30,enclos:20,enigma:22,changeavail:12,registerleafclass:18,holder:22,than:[21,33,10,11,1,30,13,32,4,23,16,22,35,18,14,20],png:7,serv:[21,4],setattr:28,min:30,applet:0,were:[10,1,12,4,33,22,18,14],posit:[36,30],surrog:[11,37,20,35],seri:14,analysi:21,sai:[21,33,10,11,30,12,13,32,23,16,22,0,6,18,7,14],jythonc:10,nicer:[7,37,30],svnroot:10,argument:[21,9,10,11,1,12,4,33,22,5,18,30,14],ant:10,prt:10,larri:22,deliv:10,breakfast:30,kevin:30,leastsquar:11,engin:[32,0,1],squar:[30,4,18],patternrefactor:[22,11],note:[1,4,6,7,14,9,10,11,12,13,15,16,18,19,20,21,22,28,29,30,33,34,35,36],altogeth:[21,22],ideal:10,take:[21,33,10,0,1,12,2,32,30,4,16,22,11,18,7,28,37,14,20,29],green:[30,18],wonder:18,noth:[21,22,11,1,30,13,36],basi:[1,30],begin:[21,10,29,13,22,33,7,14],sure:[2,33,10],trace:[14,1,30],normal:[21,28,11,1,32,4,33,22,18],track:[22,12,30,2,35,5],price:[2,22,20,12],setchang:30,beta:10,wire:[28,22],pair:[22,37],neatli:35,televis:28,latex:[7,13,8,29],synonym:21,later:[21,10,11,1,4,22,18,7,28,14,20],drive:0,quantiti:[30,28,22,12],addbranch:7,runtim:[9,10,11,4],parseint:30,quiescent:12,shop:[2,20],shot:[22,20],linedata:11,show:[21,33,10,11,1,13,3,15,4,16,22,6,18,7,28,14],cheat:7,cheap:[21,22],subprocess:10,mousetrap2test:12,concurr:[3,9],permiss:[10,1],hack:[7,8],ground:10,xml:[10,37,18],onli:[0,1,2,4,6,7,14,10,11,12,13,16,18,20,21,22,23,28,30,32,33,35,37],explicitli:[22,10,4,33,18,14],nexta:12,fenc:21,nextc:12,transact:21,observedflow:30,enough:[10,1,30,13,22,4,7],doubleespresso:20,printstacktrac:[22,1],black:[9,1,30],analyz:21,jaroslav:22,clearselect:12,startswith:[6,18],proxy2:35,nearli:1,viewpoint:22,get:[1,2,23,6,7,14,9,10,11,12,13,16,17,18,19,20,21,22,30,32,33,37],ddaluminum:22,cannot:[21,33,10,0,12,32,28,16,22],ssh:7,afunct:14,gen:4,requir:[21,33,10,1,12,4,16,22,34,5,6,37,7,30,14,20],truli:[],prime:[22,1,30],reveal:36,isemptyxi:36,aluminum:22,dramat:1,yield:[3,32,4,23],spameggssausageandspam:10,expedi:1,pynam:10,scott:21,where:[21,10,11,30,12,2,4,23,33,19,5,6,7,22,14,36],vision:2,summari:[9,10,22],wiki:[10,11,29,22,7,14],"__module__":18,onlamp:18,pydictionari:10,booch:22,cafelattewet:20,testcas:[],rmi:35,purest:11,concern:[22,14,1],timeit:10,detect:[22,23,36,31],charat:10,review:[7,9,14,1],enumer:[16,18,6,12,23],label:[10,8,29],getattr:[28,35],trashbinset:22,between:[21,10,1,12,22,35,18,7,30],"import":[21,10,0,1,12,2,3,4,23,33,13,5,6,18,32,30,22],item2:23,across:[10,4],aslist:10,assumpt:[32,22],parent:[7,10],tup:10,screen:[22,0,1,30],inflex:20,cycl:33,pythoncardapp:30,findminima:11,come:[21,10,1,12,2,30,4,33,22,6,7,28,36],pythoncard:30,tug:7,newbyt:36,pepperdew:20,quiet:22,contract:2,inconsist:14,improv:[9,28,29,12,2,22,33,13,7],somecondit:1,minima:11,color:[13,30,18,36],overview:[7,9,22],unittest:[22,10,1,12],period:33,dispatch:[9,22,30,32,4,23],yearli:22,jeremi:36,colon:[33,10],exuperi:21,mousetrap:12,coupl:[21,9,22],games2:4,west:36,rebuild:10,mark:[21,33],appframework:0,quiesec:12,reflex:21,procedur:22,runal:12,spare:33,pythondecor:14,emphas:[13,22,10,4,18],test_x:18,nameless:10,trantabl:12,cafelatteextraespresso:20,findal:6,rememb:[33,22,10,23],lectur:17,"__eq__":[23,12],former:[16,28,18],those:[21,10,1,30,2,4,23,33,22,5,17,18,7,14],ispubl:1,sound:[2,14],myself:[14,17],tostr:10,keygen:7,trick:[10,5,22],cast:[10,22,37],invok:[10,1,23,33,22,18,7,14,20],outcom:[4,23],invoc:20,anytim:[13,30],advantag:[16,22,10,28,12],stdout:10,canon:[9,15],ivi:7,worri:[2,13,16],endswith:[10,6],eras:[1,4],myapp:0,couplet:22,shutil:6,fame:22,"__init__":[9,10,0,1,12,33,37,30,4,23,16,22,11,5,6,18,28,36,14,20,35],develop:[21,9,10,1,2,13,18,7],author:[11,30,18],blackboxtest:1,same:[21,33,10,11,1,12,13,30,4,23,16,22,35,18,28,14,20],check:[10,1,12,30,4,33,22,6,18,7,28,8],binari:7,html:[10,29,13,8,22,33,6,18,7,14],testrunn:[],customize1:0,pai:[2,10,22],document:[10,1,30,13,8,33,7,14],martelli:28,number_of_processor:31,nest:[33,28,4,20],foam:20,someon:[7,8,30],driven:[38,9,1,12,36],artima:18,mani:[10,1,12,2,28,33,22,18,7,30,14,20],extern:[9,22,1,12,6],tosynch:30,tradition:[33,1],hummingbird:30,appropri:[21,10,11,1,12,32,4,33,22],macro:[9,11,14],facad:37,pep8:13,gameenviron:4,without:[21,9,10,22,1,30,2,4,33,16,13,7,14,20],temptat:18,model:[21,32,22,30,20],dimension:[37,12],arrays2:33,execut:[9,10,11,1,30,4,23,33,22,7,14],tip:7,thermostatnight:[10,18],rest:[21,10,0,1,12,2,4,22,6,7,14],recyclea:22,aspect:[21,10,14,4,30],recycleb:22,touch:[32,22],monei:[2,12],flavor:11,speed:10,pythondecoratorlibrari:14,except:[10,0,1,12,23,22,18,14],littl:[21,10,1,12,22,33,7,14,36],blog:[7,18],tbinlist:22,pile:21,treatment:22,exercis:[9,10,11,1,12,32,30,4,22,0,17,37,28,20],frontmatt:8,mouseclick:30,real:[10,11,36,35],around:[21,22,1,30,13,32,4,33,35,5,36,14,20],todolist:[8,29],"0079ef2c":28,repaint:[36,30],grid:30,pop:[10,22,18],amp:[3,1],rununittest:1,presum:[22,4],returnarrai:10,mod:36,saniti:1,colorbox:30,stranger:21,vend:[9,12],chainofrespons:11,integ:[33,10,30],benefit:[10,30,2,22,33,13,35,20],either:[21,10,11,30,23,33,18,20],output:[10,0,1,12,13,8,28,33,29,18,7,14,20],margherita:20,manag:[21,10,11,12,30,32,28],fulfil:[21,11,35],tulach:22,satisfactori:22,adequ:[21,33],constitut:30,nonzero:1,regina:20,slice:10,mood:12,chronicl:21,boxobserverpythoncard:30,highest:7,definit:[22,0,1,2,10,33,35,14],evolv:[13,21,10,22,1],exit:[36,14,1,30,6],inject:[10,14,18],complic:[22,35,1,20],ratcount:36,refer:[21,28,22,1,12,2,4,23,33,13,35,36,18,7,20,19],power:[7,22,10,14,28],pythoninterpreterget:10,garbag:[10,1],inspect:[7,9,6,18],typedbin:22,standpoint:1,"__name__":[10,11,1,30,32,4,23,33,6,18,14,20],"throw":[16,10,1,12,4],comparison:[10,18,4,12],central:[16,22,12],greatli:22,max_num:22,firstnam:7,camembert:18,conditionc:12,panna:20,splitlin:6,currentlin:36,stand:[21,32,22,35],neighbor:30,act:[21,22,11,14],routin:35,effici:22,activest:18,lastli:[16,10],val2:33,quietli:10,"75f":20,strip:[22,20,1,12,6],counterintuit:22,your:[0,1,2,4,6,7,9,10,11,12,13,15,16,18,20,21,22,23,28,30,31,32,33,35],wustl:22,log:30,aren:[21,18,1,13,33,37],commenttag:6,overwrit:6,hee:35,stealth:10,interfac:[21,9,10,11,30,12,32,4,33,16,22,35,37,20],low:[21,22],lot:[21,10,1,12,2,22,33,18],pollin:32,strictli:22,unam:10,svn:10,tupl:[33,10,5,23],bundl:37,regard:21,vendingmachin:12,stepanov:16,conciev:12,"0076aa3c":28,functor:11,mice:12,conclus:16,faster:[10,1],notat:10,tripl:33,jc2:10,impenetr:1,possibl:[21,10,22,1,12,2,4,33,13,35,36,18,28,14,20],"default":[22,11,1,30,31,10,18,7,36],asynchronizedmethod:30,grasp:33,embed:10,clone:[7,22],expect:[21,10,22,23,33,19,14],gone:[10,11],creat:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,28,29,30,32,33,35,36,37],certain:[22,12,15,10,18,20],strongli:33,intro:[8,18],file:[9,10,0,1,12,13,15,22,33,11,6,7,30,8,36],jargon:32,rearrang:16,cream:20,incorrect:16,again:[2,22,10,1,33],setval:10,googl:7,want:[21,33,10,11,1,12,2,30,4,23,16,13,35,5,37,7,28,22,14,20,29],discrimin:33,my_decor:14,compel:[21,10,6],jpanel:30,awt:10,orient:[21,22,11,10,4,33,14],idiom:[21,9,11,30,25,35,7],valid:[10,1],compet:23,jset:10,you:[0,1,2,4,5,6,7,14,9,10,11,12,13,15,16,18,19,20,21,22,23,28,30,31,32,33,35,36,37],getdescript:20,inneradapt:37,architectur:[2,21,10,30],check_result:6,critic:10,inevit:22,registri:[10,18],sequenc:[21,33,10,11,12,22,16],tbin:22,vocabulari:21,pool:28,reduc:[1,20],bulk:[13,22],differentreturn:33,opennotifi:30,directori:[10,1,13,22,6,7,8],descript:[10,1,12,28,22,6,18,7,8,20],showmsg:33,gradient:21,mass:30,potenti:[21,30],escap:12,cpu:31,represent:12,all:[0,1,2,4,6,7,14,10,11,12,13,16,18,19,20,21,22,23,28,30,32,33,35],dist:10,consider:[9,22,20],messi:[22,23,31],recip:[9,18],lack:[10,1],dollar:12,sanitycheck:1,monti:33,abil:[21,30,2,32,13,18,14],follow:[21,10,22,1,12,2,4,23,33,13,35,5,18,7,30,14,20],princ:21,unclassifi:22,uses_metaclass:18,edong:7,"__cmp__":[10,18,12],init:0,program:[21,9,10,11,30,1,12,33,2,15,4,23,16,13,6,18,28,22,14],hasattr:[18,31],rstrip:6,cgi:[33,22],introduc:[21,10,1,2,22,13],"case":[33,10,11,1,30,2,4,23,16,22,35,5,18,28,14,36],liter:[33,23],straightforward:[21,10,22],fals:[22,10,6,12],checkin:[7,8],faq:7,util:[33,10,1,30,16,7],defvar:7,candid:[16,21],mechan:[9,22,0,13,23,16,33,11,18,14,35],failur:[21,11,1],veri:[21,9,10,11,1,30,2,4,23,33,13,7,28,14,36],bottleneck:10,bruceeckel:[7,16,10,21,1],lisp:14,list:[21,9,10,0,1,12,2,8,4,23,33,22,11,5,6,18,7,30,14,29],signific:[13,16,22,1,36],emul:[30,18],asingleton:18,small:[2,13,21,20],everth:15,dimens:30,tag1:18,tag2:18,tag3:18,pyobject:10,tea:20,tee:35,tex:7,zero:[10,1],shapefactori:4,design:[21,9,10,11,1,12,13,32,30,4,33,16,22,35,6,37,28,14,20],pass:[10,11,1,12,32,30,4,23,33,22,35,5,18,7,28,37,14,20],whene:35,further:[9,10,1,30,13,3,22,33,18,14],new_f:14,what:[1,2,3,4,6,7,14,9,10,11,12,13,16,18,19,20,21,22,28,30,33,35,37],sub:6,ntotal:22,hashset:10,abl:[21,10,0,1,12,2,4,23,16,13,11,22,36,35],brief:33,overload:[33,10,22,18],version:[10,22,30,12,2,8,4,23,33,13,18,7,28,37,14,19],succinct:[10,14],fillbin:22,"public":[21,10,1,2,22,13],contrast:33,movement:[21,22,11],hasn:[22,30,18],full:[7,33,10,35,6],hash:[16,33,12],variat:[21,28,37,22,12],sophist:[33,10,1,4],rlock:30,shouldn:[7,11],trunk:[7,9,10],demet:21,rudimentari:33,modifi:[10,22,1,12,2,32,30,4,23,33,13,18,7,28,14],valu:[10,1,12,23,33,22,5,18,37,14],search:[9,22,0,1,33,18,7],upcast:[22,4],ahead:[33,1],vegetarian:20,popen:10,prior:22,amount:[22,11,1,12,15,10],"0076daac":28,pick:22,action:[21,9,10,11,12,4,22,35,18],introductori:[9,10,2,33,7,14],scurri:36,pytupl:10,via:[10,2,22,23,18,7],shorthand:10,primit:[10,22],transit:[9,12],"while":[21,10,11,1,12,2,22,33,35,18,36],readili:21,filenam:[22,6,36],inappropri:[10,1],ystart:36,famili:[22,11,23],viewpost:18,establish:[16,33,22,1,12],jbutton:10,select:[21,9,10,11,30,12,13,22,7,20],kittiesandpuzzl:4,aggress:33,twa:10,proceed:22,distinct:[21,22,11,12,10,35,28],regist:[7,30],two:[10,0,1,12,2,32,30,4,23,33,22,35,6,18,28,37,14],coverag:[8,29,18],getweight:22,repetiti:15,machinediscoveri:31,taken:[13,22,10,1,4],automati:[],showtot:12,minor:30,more:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,20,21,22,23,28,29,30,32,33,35,36,37],visitabledecor:22,desir:[10,11,5,22,30],mydialog:10,apologet:14,reconfigur:32,convinc:1,ddcardboard:22,flag:[10,30],stick:[14,18],particular:[21,33,10,11,1,12,2,4,16,22,35,36,18,7,28,20],known:22,compani:[2,10],cach:10,dictat:2,none:[28,12,1,30,10,18],pyprog:1,jdk:[10,1,30],dev:7,histori:[7,9,14,6],testdemo2:1,remain:[16,22,12],caveat:[19,1],learn:[21,22,2,33,13,7],returnchang:12,statedemo:35,dee:35,def:[0,1,4,5,6,14,10,11,12,16,18,36,28,23,22,30,31,32,33,35,20,37],prompt:7,scan:13,challeng:36,registr:[9,18],share:[2,7,28],accept:[10,32,22,16,18,7],prose:13,minimum:[7,33,10,30],explor:16,explos:22,phrase:1,magenta:30,condemn:22,huge:20,cours:[21,10,1,29,2,4,22,35,37,20],goal:[21,9,10,1,12,2,22,33,14,36],awkward:10,divid:1,programmat:[20,18],anoth:[21,10,11,30,12,32,4,33,22,35,18,7,28,14,20],comfort:[1,37],myratno:36,ish:[13,33],smalltalk:[21,30],simpl:[9,10,0,1,12,4,33,22,35,18,7,30,37],css:[8,29],distro:10,plant:22,resourc:[9,1,30,37,8,36],algebra:16,variant:22,reflect:[9,10,22,1],associ:[33,10,22],"short":[33,31],waysid:1,ani:[21,33,10,22,1,12,2,30,4,16,13,35,36,18,7,28,14,20],confus:[22,37,30,32,33,18,14],ambigu:10,caus:[21,10,1,12,32,4,33,22,7,30],flwr:32,"0x7ecf0":18,drinkcompon:20,egg:[33,28],sysctl:31,help:[21,22,30,2,3,13,35,17,7],soon:1,held:[21,35,12],pythondialog:10,paper:[22,23],through:[21,33,10,11,1,12,2,30,4,23,16,13,35,18,28,22,14],cyan:30,hierarchi:[21,22,11,32,4,23,33,35],taxonomi:[21,9],makeschang:12,paramet:11,latt:20,style:[11,1,12,13,33,29,18,8],conjugategradi:11,alli:17,late:[22,20],rapidli:[10,30],astonish:21,bypass:18,match:[32,22,11,23,30],might:[21,10,11,1,30,2,4,23,16,22,14,36],attch:[],currentst:12,wouldn:[22,1,4],good:[21,10,1,12,2,22,33,13],"return":[33,10,11,1,12,31,32,30,4,23,16,22,35,5,6,18,28,37,14,20,36],pollut:21,ringbel:18,ttbinlist:22,framework:[21,9,10,0,1,12],somebodi:[2,7],placehold:12,complain:33,bigger:[10,12],whatiw:37,intricaci:4,customize2:0,hook:[9,30,18],solver:11,instruct:[7,1],refresh:[8,6],easili:[21,10,11,1,12,28,23,22,5,18,37],achiev:[28,10,22,18,14,20],compris:14,getmodifi:1,found:[21,22,1,14,36,7,8,20],strategypattern:11,proxyadapt:37,harm:[9,22,12],weight:22,hard:[13,16,22,4,32],idea:[21,10,11,12,2,8,4,13,35,17,7,22,14],ndiff:6,realli:[21,22,11,12,10,33,37,28],finish:[21,10,1,12,7,14],connect:[21,22,11,30,12,10,28],windowadapt:30,ddpaper:22,detect_cpu:31,todo:[9,10,29,6,7,8],event:[21,10,0,30,18,36],flower:[9,30,32],safeti:[33,1],classvariablesingleton:28,multiplejython:10,actionperform:10,setsiz:[36,30],publish:[2,22,10,1],research:[2,10,37],footnot:[21,10,11,1,12,28,22,8],gameelementfactori:4,print:[0,1,2,4,5,6,8,9,10,11,12,13,14,18,20,22,23,28,30,32,33,35,36],qualifi:[33,1],lutz:33,proxi:[21,9,10,12,28,16,35,37,20],advanc:[2,11,18],pub:18,reason:[21,10,11,1,12,2,4,33,22,35,18,37,14,20],base:[21,10,0,1,12,2,32,30,4,23,33,22,11,18,7,28,36,35],put:[21,9,10,22,1,12,2,8,4,33,13,5,6,18,7,28,14,17],teach:[2,9,1,17],bash:1,rewritten:[13,19],thrown:22,thread:[7,30,18,36],script:[13,9,10,11,33],struggl:21,revolutionari:1,perhap:[22,1,13,32,10,4,37],pythonsw:10,ascher:33,trashsort:22,lifetim:35,clump:5,assign:[10,33,5,18,7,14],major:[33,14,18],notifi:30,obviou:[16,22],blush:22,feel:[7,13,21,1],articl:[3,15,18],lastnam:7,number:[21,10,11,1,12,31,13,28,23,33,22,35,36,37,7,30,14,20],evolut:[21,22],sayhello:14,done:[10,11,1,30,2,4,33,13,18,7,8,29],construct:[16,10,14,1,18],colorboxestest:30,stabl:10,miss:[21,22,10,6],fanci:12,gpl:10,razor:21,differ:[21,33,10,11,1,12,8,4,23,16,22,35,6,18,32,7,30,14,20],php:30,exponenti:[21,20],interact:[32,10,4,37,23],tove:10,least:[21,10,1,22,33,7],addfactori:4,paint:[13,36],toi:18,expand:[7,35],statement:[10,11,1,12,4,33,22,35,30,14],scheme:[32,22,30],syrup:20,store:[14,1,12],itempairgen:23,imperfect:13,option:[21,11,30,2,33,6,7,20],relationship:[21,18],behind:[21,35],checklist:21,bsingleton:18,shapefactory1:4,shapefactory2:4,convieni:18,pars:[33,9,22,23],consult:2,closenotifi:30,eventu:[21,1],tortoisehg:7,albeit:[21,33,10,22],kind:[21,33,10,1,12,2,32,4,23,16,22,35,30,14],plop:22,whenev:[21,22,0,30,4,5,7,14],remot:35,gotten:12,remov:[21,22,30,12,2,16,18],kapow:10,pythoninterpret:10,reus:[21,28,0,12,10,22,11],getconstructor:[10,22],toward:[21,1],danc:35,weapon:32,runsawai:12,comput:[10,22,18],nastyweapon:4,ardent:1,requisit:1,"null":[35,1,12,36],gettotalcost:20,sell:2,imagin:[22,4],"0x7ed30":18,built:[21,9,10,11,1,30,2,22,33,35,7],equival:[22,1,30,10,33,18],restfil:[10,6],self:[0,1,4,5,6,14,9,10,11,12,16,18,36,21,28,23,22,30,32,33,35,20,37],violat:10,typediter:16,also:[21,33,10,11,1,12,2,30,4,16,13,36,17,18,38,7,28,22,14,20,29],bgboxobserv:30,build:[9,10,0,1,33,2,32,37,4,16,13,18,7,22,8],mouseev:30,brace:33,distribut:[7,13,10,4],exec:[10,18],blackboard:36,eater:32,previou:[22,12,2,4,14,20],reach:[21,11,36],mixtur:20,addobserv:30,most:[21,10,0,1,30,2,4,22,11,5,14,20],plai:[32,22,4],jsp:18,cygwin:7,eaten:32,thidiscuss:11,maco:31,alpha:10,amaz:[10,14,36],fileread:36,clear:[21,12,30,2,18,14],cover:[2,13,34,0,1],roughli:[1,12],"_shared_st":28,ext:[8,29],part:[21,9,10,0,1,30,2,8,22,26,33,24,25,11,6,18,7,14,20,36],clean:[33,22,10,1],jython2:10,xstart:36,usual:[21,10,0,1,22,33,5,18,14],mousetrap2:12,mousetrap1:12,ccolor:30,flowergen:32,canvaswidth:36,particularli:[13,33,22,23],uncov:10,font:[2,10],fine:[22,4,18],find:[21,10,11,1,2,4,33,13,18,7,22,14,20],impact:[22,14],flesh:10,solut:[21,10,11,1,12,30,4,23,22,18,28,20],pyutil:10,templat:[9,10,0,12,2,4,33,16,13,11,22,14],darkgrai:[36,30],shapefact1:4,affirm:[33,1],unus:21,cappuccinodecaf:20,express:[21,10,1,13,23,33],entry_exit_class:14,swing:10,nativ:[7,10],mainten:[22,20],wateroff:[10,18],ineffici:30,doubli:30,cyclic:12,stl:[16,10,11],common:[21,10,1,12,2,4,33,22,35,17,30],wrote:[10,1],commod:22,cafemochawetwhip:20,pyexcept:10,adopt:1,creator:[7,11,29],overwhelm:[7,18],startup:[7,10],potent:10,emac:[7,9,8],bare:30,aluminumbin:22,arg:[28,1,30,10,33,22,18,7,14,36],close:[30,1,12,36],horizont:36,skill:11,analog:33,dwarf:32,expert:[13,11],someth:[21,10,11,1,12,2,32,23,33,13,17,37,30,22,14,20],particip:7,conditionb:12,conditiona:12,weakli:[],testb:1,won:[10,30,2,22,33,13,18],mutex:30,autogener:[8,29],experi:[2,21,10,14,1],nope:1,birkenfeld:7,altern:[21,10,1,3,22,18,14],signatur:[33,10],str:[33,30,18],numer:[0,5,11,23],hasnext:[16,22,10,1,12],complement:21,sole:11,isol:[21,22,11,4],statemachin:[9,12],disallow:[4,18],cachedir:10,getmethod:[10,22],solv:[21,10,11,1,12,3,23,33,22,35,18,32,30,37,36],extraespresso:20,both:[21,10,30,13,4,23,33,22,35,36,18,7,28,14,20],"__instanc":28,last:[32,10,0,22,18],hyperlink:8,arraylist:[10,22],alon:[22,30],undetermin:0,context:[9,11,8],forgotten:15,commandpattern:11,whole:[22,11,1,12,2,10,30],load:[22,10,4,37,7,36],randomli:[32,1],simpli:[21,33,10,0,30,12,32,22,16,29,35,5,37],point:[21,28,11,1,12,31,2,4,33,13,18,7,30,22,14,36,19],schedul:[32,10],sweep:1,ceruleanblu:18,arbitrarili:[35,18],header:7,templatemethod:0,loveandtheft:14,param:10,linux:[7,8,18,31],throughout:[21,22,0,1,13,4],identif:22,java:[9,10,1,12,33,4,23,16,22,35,6,18,19,30,14,36],dum:35,due:1,empti:[36,30],implicit:14,mercuri:[7,9,8,29],newinst:[22,1],nois:1,pushnew:7,strategi:[9,11,6],addison:[22,11],versa:33,execfil:10,clariti:[13,20],imag:[13,30],great:[2,19,10,21],coordin:36,changeimp:35,understand:[21,10,12,13,28,33,22,18,14],demand:[2,33,35,1,4],makedir:6,fillablevisitor:22,look:[21,10,11,1,12,13,8,30,4,33,22,35,18,32,7,28,14,20,29],packag:[33,22,10,1,12],frozen:30,buildtabl:12,getquant:12,decrquant:12,ought:12,abov:[21,10,11,1,30,2,8,15,4,33,13,35,18,32,7,28,22,14,20],sublclass:18,fun:[14,18],anonym:[9,22,38],fum:10,everyon:[29,30,2,33,13,17],loop:[21,22,0,10,4,33],pack:10,argin5:10,propag:[21,22,30],pound:33,argin1:10,argin3:10,argin2:10,readi:[2,7,22,0,36],petal:30,itself:[21,10,11,12,13,22,14,36],orgpattern:22,coroutin:[3,9],chase:4,decor:[9,28,30,14,22,16,18,8,20],guido:29,restructur:[2,7,6,13,9],minim:[21,1,30],boxwidth:30,belong:2,on_openbackground:30,shorter:10,read:[21,9,10,0,1,12,31,2,3,22,33,6,18,30,14,36],conflict:[7,9,18],higher:7,cappucino:20,vertdir:36,optim:[10,22],painless:22,wherea:[33,10,11,22,12],wilson:14,setbackground:36,user:[9,10,30,12,2,4,16,22,7,28],stack:30,focal:21,recent:[10,1],lower:21,task:[7,13,30],lib:33,eleg:[21,28,22,33,35,14],entri:[13,8,10,14,36],localarrai:30,propog:30,parenthes:33,person:[7,10],testpythontojavaclass:10,chees:12,expens:[22,35],elev:[22,12],academ:1,imit:[7,33],propos:[7,21],explan:10,pyfloat:10,valueof:22,obscur:21,choru:35,world:[21,10,11,14,1],"67f":22,dumpclassinfo:10,move:[21,10,11,1,12,2,22,13,36,7,30,8,29],dirlist:11,cut:[22,37,30],indexof:[10,22],mydecor:14,getreturntyp:1,bick:18,snag:30,win:[32,10,23],input:[3,0,12],subsequ:[33,18,12],brainstorm:21,bin:[7,22,10,1],tomap:10,vendor:[32,22],format:[2,7,33,13],big:[33,14],intuit:10,pymeta3:18,alias:35,insert:[33,22,28,6,18],verion:7,bit:[33,10,30,2,22,4,16,35,14],characterist:0,formal:[33,14],lost:[10,22],docutil:[],signal:10,resolv:22,fluf:13,collect:[21,22,11,1,12,28,37],"__new__":[9,28,18],sizeabl:20,javabean:10,encount:[22,1,30,10,4,16],sketch:13,often:[21,10,11,1,12,2,32,15,22,33,13,5,17,18,30,37,14,20],acknowledg:[21,33],creation:[21,9,10,22,1,12,2,30,4,33,16,13,18,28,14],some:[0,1,2,3,4,5,7,8,10,11,12,13,14,17,18,36,21,23,22,29,30,31,33,37],back:[21,10,11,1,12,2,22,30,14,36],global:[10,1,18],understood:[10,1],wxpython:30,mirror:21,sprint:2,mindview:10,mousepress:30,syndrom:22,rien:21,scale:[3,10,1],chocol:20,mousemov:12,though:[22,1,30,28,18,14],per:[21,30,20,12,33],usernam:7,substitut:[33,14],mathemat:[11,23],larg:[10,12,2,3,22,34],market:32,fornam:[22,1],reproduc:2,norvig:30,machin:[7,9,12,31],addel:36,run:[21,9,10,0,1,12,22,33,11,6,18,7,30,14,36,35],martin:[22,14],agreement:10,stem:10,step:[21,33,10,1,2,4,16,22,18,7],initialst:12,subtract:21,impos:[16,12],sellimaginaryproduct:32,constraint:[21,33,22,12,2,16,14],materi:[2,13,10,17],memori:1,libero:12,dialog:10,cappuccinodrywhip:20,block:[13,6],plan:10,predat:32,repair:22,"__future__":[32,4,23],emphasi:18,pythonpath:33,within:[21,10,30,12,4,33,22,18,14],oreilli:33,"caf\u00e9":20,contributor:[2,9,8,29],chang:[21,9,10,0,1,12,13,32,30,4,22,34,35,6,18,7,28,37,14,20],artifici:1,connector:21,inclus:[21,33],institut:1,spam:[33,28,30],valuminum:22,question:[7,21,10,22,12],submit:1,custom:[7,10,0,22,20],clip3:22,clip2:22,adjac:30,arithmet:36,pocoo:[8,29],clip4:22,forward:[21,10],jarrai:10,blueprint:[2,7],properli:[22,10,14,23],hawaiian:20,sc_nprocessors_onln:31,link:[7,13,11,8],translat:[21,9,10,22,1,12,2,4,23,16,13,30,8,36],delta:6,line:[9,10,0,1,12,8,15,22,33,11,5,6,7,30,14,36],talli:22,info:[22,5,30],concaten:33,consist:[21,22,1,30,13,4,33,18,20],balabanov:28,strang:[33,4,12],jpython:10,priveleg:10,fillrect:[36,30],readlin:[10,22,12,36],similar:[21,10,11,1,12,22,33,35,18,30,14],toomuchaccess:1,parser:22,chao:1,doesn:[21,10,22,30,12,2,8,28,23,33,13,6,18,37,14],repres:[33,22,12],"char":[10,36],guarante:[7,12],cafe:20,fulful:11,titl:[10,30],water:[10,18],windowi:7,appendic:13,intvalu:10,create_exec:18,"_imag":13,addmouselisten:30,getbound:36,cappuccinoextraespresso:20,nice:[2,7,33],draw:[0,4,36,23],getdeclaredclass:1,cappuccinoextraespressowhip:20,state_d:35,topydictionari:10,eval:[4,23],itemavail:12,pymeta2:18,pricevisitor:22,lang:[10,22,18],algorithm:[21,9,22,11,30,4,16,36],vice:33,downcast:22,actionlisten:10,entryset:10,normpath:6,tradeoff:20,depth:18,greenhousecontrol:10,mindlessli:22,karma:[2,13],far:[21,33,22,1,18],java2pi:10,hello:[10,14,12],prototyp:[21,9,10,22],code:[0,1,4,6,7,8,9,10,11,12,14,15,16,17,18,20,21,22,30,32,33,35,36,38],partial:33,hashmap:[10,22,12],scratch:[10,14],tclone:22,ellips:18,overlap:30,edu:[22,14],benevol:2,privat:[28,0,1,30,10,7],successfuli:10,elsewher:13,friendli:1,send:[2,33,10,35,22],simplemeta1:18,granular:1,becam:1,paperscissorsrock2:23,sens:[21,10,11,1,4,33,22,5,18,14,20],junit:1,sent:10,func2:14,func1:14,cheapli:[10,22],mainstream:14,sausag:28,mous:[30,12],testdemo:1,electron:[2,13],chdir:1,volum:[2,13],whatius:37,implicitli:[21,33,10,4],kitti:4,tri:[10,11,22],troup:33,magic:28,succeed:11,counterproduct:22,knight:35,button:[7,10,4],fewer:18,"try":[21,10,11,1,30,13,22,37,7,14,36],session:12,mousetraptest:12,pleas:[2,7,8,19],boxobserv:[1,30],fortun:22,readabl:33,natur:[22,1,30,13,33,14,36],verbiag:33,elisp:7,jump:14,slithi:10,binset:22,singletondecor:28,download:[2,7,10,16,30],odd:[35,20],click:[7,13,30],append:[10,11,1,30,33,6,18,7],compat:29,index:[9,10,11,13,22,5,7,8],pymeta:18,compar:[22,11,1,10,18,7],espresso:20,access:[28,1,30,4,33,35,14],deleteobserv:30,runuculu:32,mouseadapt:30,spoken:22,whatev:[13,22,1],ibid:21,absolut:33,mikewatkin:18,len:[11,36,1,30,6],closur:14,intercept:[9,18],let:[10,1,12,13,4,22,14,20],becom:[21,33,10,1,12,22,16,18,30,20],sinc:[21,10,11,1,12,4,33,22,35,18,30,14,20],convert:[10,0,12,30,16,8],talent:2,convers:10,musser:16,larger:[22,29],makec:37,makeb:37,makea:37,fetch:[22,30],staticmethod:[28,18,4,6,37,14],earli:[13,19,10,1],typic:[21,22,11,1,12,33,0,5,18,14,20],ratcanmov:36,evalrock:23,chanc:11,boxi:18,appli:[21,22,12,1,30,33,37,14],app:30,foundat:[9,18,24],"_updat":6,pyton:10,fillablecollect:22,hennei:21,"boolean":[10,22,12,36],notenough:12,limb:14,newimp:35,puriti:10,fee:10,from:[0,1,2,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,28,30,31,32,33,35,36,37,38],sysconf:31,zip:[7,6],commun:[2,10,36],doubl:[9,22,32,10,4,33,23,28],addtrash:22,whatihave3:37,whatihave2:37,implic:20,few:[5,20],camera:2,usr:[7,1],stage:[21,22,20],remaind:[7,9,22,8],sort:[21,33,10,11,22,16,18],clever:[21,18],src:7,trait:18,tplus1:14,impress:[10,22],train:2,bufferedread:36,iii:[9,26],starter:36,account:[7,1,20],alik:2,retriev:[],when:[21,10,11,1,12,2,32,37,4,23,33,19,35,36,18,7,30,22,14,20],annot:[14,12],thin:4,meet:[32,22,12],scatter:22,aquamac:7,proof:22,control:[21,9,10,11,30,12,13,4,33,22,35,7,28],cafemochawet:20,process:[21,33,10,0,1,12,13,4,23,16,22,11,18,7,14,20],lock:[2,14],trap:12,high:[21,22],tag:[13,4,12],trashvisitor:22,csum:22,onlin:[13,30,18],transitiona:12,kevlin:21,delai:[10,12],friendlier:7,comedi:33,georg:7,shapenamegen:4,sig:10,feta:20,subdirectori:[22,10,1,6],instead:[21,10,11,1,12,4,23,22,18,7,30,14,20],sin:10,stock:7,everywher:18,overridden:[33,22,0,1,12],pyarrai:10,hazard:11,callback:[22,11,30],rmtree:6,multipl:[9,10,11,30,13,32,28,23,33,22,7],"120dpi":7,cheaper:21,physic:36,alloc:1,drop:22,essenti:[21,22,11,1,10,33],seriou:1,newvsinit:18,correspond:[22,5,1,20],element:[21,10,1,12,22,33,18,14],issu:[13,21,28,22,18],allow:[21,10,11,30,12,32,4,22,0,18,14,29,35],subtyp:[22,18],horizdir:36,espressodecor:20,insight:[21,22],cleverdevil:18,evolutionari:22,comma:33,ponder:21,perfect:[2,13,22,21],outer:[28,10,37,1,30],chosen:[2,30,18],settitl:30,gnomesandfairi:4,newsgroup:7,repetet:18,decaf:20,criterion:30,tst:1,typemap:22,rat:[9,36],factor:[21,33,10,1],greater:10,"__getitem__":10,handl:[21,33,22,0,8],auto:7,spell:2,dai:[2,10,18],ctor:22,devel:7,dat:22,mention:[2,22,11,1,4],snake:33,front:[9,35,20],mylist:18,strive:22,multiprocess:3,somewher:[7,4,30],anyth:[21,10,1,30,2,22,13,14],edit:[9,22,16,33,18,7],tran:12,quest:21,mode:[2,7,10,6],isclass:6,batch:33,reserv:1,newtonsmethod:11,psum:22,flair:13,subset:[22,20],chung:28,tolist:10,openobserv:30,transitionb:12,transitionc:12,nodecor:20,"static":[21,9,10,1,12,4,33,22,6,18,28,37,20],"_delta":6,whet:21,our:[10,14,22,18],patch:[7,30],transitiont:12,special:[22,10,4,33,35,18,7],out:[21,9,10,22,1,12,31,2,30,4,23,33,13,18,7,28,14,19],variabl:[7,33,28,12],matt:14,contigu:30,cwr:36,dongwoo:7,hive:28,stub:35,texliv:7,suitabl:10,rel:22,leverag:[10,18],ref:7,"23f":22,math:[10,22,30],clarifi:2,insid:[10,1,12,4,33,22,37,7,30,14],sortintobin:22,manipul:[16,10,18],standalon:7,dictionari:[10,37,12,4,23,33,5,18,8],tempt:35,releas:[30,1,12],embarrass:1,correcton:2,could:[21,10,11,1,12,2,30,4,33,22,35,5,28],ask:[21,10,30,4,16,22,36,7,20],membership:22,keep:[21,10,22,1,12,2,4,13,35,5,18,7,30],length:[22,12,1,30,13,10,36],enforc:1,outsid:[33,22,10,4],south:36,softwar:[7,1],getclass:[16,32,10,22,12],qualiti:[21,1],scene:35,echo:[],date:10,set:[9,10,0,1,12,2,30,4,23,33,22,11,6,18,7,28,37,14,20],flyweight:12,newsingleton:28,facil:2,redund:11,cafemochaextraespressowhip:20,prioriti:7,"long":[10,22,2,4,33,13,35,7,28,14,20],start:[21,9,10,0,1,30,31,2,28,23,13,18,7,22,14,36],unknown:[22,23],licens:[2,9,10,28,17],perfectli:12,mkdir:10,fascin:18,messag:[21,10,12,1,30,33,7],attach:[13,9],termin:[33,11,1,36],"final":[21,9,10,0,1,30,2,32,22,13,36,18,7,14,20],shell:[7,33,10],rsa:7,exit_on_clos:[10,30],slider:4,rst:[2,7,8,6],exactli:[33,10,22,20],readlinelib:10,haven:[13,22],python3pattern:[7,8],cpython:10,embodi:21,split:[30,6,18],see:[0,1,2,4,6,7,8,10,11,12,14,16,18,19,20,21,22,28,30,33,35,37,38],structur:[21,9,10,11,1,12,22,16,33,35,36,20],charact:[10,4],bind:[2,22,23],steer:36,imho:33,aggreg:22,isstat:1,clearli:[21,22,20,1,12],have:[0,1,2,4,6,7,14,10,11,12,13,15,16,17,18,19,20,21,22,23,28,29,30,32,33,35,37],tabl:[9,12,32,23,16,33,35,38],need:[0,1,2,4,5,7,8,10,11,13,14,17,18,20,21,22,23,28,29,30,32,33,35,37],imatix:12,turn:[21,10,1,12,2,22,33,35,36,30,8,20],gentli:14,lightgrai:[36,30],messeng:[9,22,11,12,5,6],rout:21,rmic:35,mix:22,discret:10,sei:1,which:[0,1,2,3,4,5,6,7,14,10,11,12,13,15,16,18,20,21,22,23,28,30,32,33,35,36],linda:16,singl:[10,11,30,12,13,4,23,33,22,35,7,28,14],uppercas:0,entry_exit:14,"5b0":10,htmlhelp:7,who:[22,29,30,2,13,17,18,7,8],minimasolv:11,discov:[21,9,22,1,31,13,4,7],rigor:[33,1],textui:[],mactex:7,"class":[0,1,4,5,6,14,9,10,11,12,16,18,36,21,28,23,22,30,32,33,35,20,37,38],changealgorithm:11,wikic:22,gather:21,request:[21,11,36,12],face:22,pipe:10,"__slots__":18,bui:2,michel:[14,18],determin:[33,22,11,12,4,23,16,36],fowler:[22,14],occasion:1,constrain:1,fact:[21,28,1,30,10,33,22,14],statemachine2:12,dbm:12,text:[9,12,2,15,33,13,6,7,36],whatiuse2:37,bring:[21,10,2,22,33,14,36],developerguid:8,debat:13,trivial:[22,10,1,12],anywai:[13,33,11],pythoncardprototyp:30,redirect:[28,10,1],textual:30,locat:[10,11,1,12,22,7,8],launchpad:[2,13],createbox:30,hadn:12,winner:32,jar:10,mug:20,should:[21,33,10,11,1,12,13,3,4,16,22,36,18,7,30,14,20],smallest:[22,20],suppos:[22,1,30,10,4,33,14],esqu:33,disciplin:14,inhabit:32,local:[21,22,30,2,18,7,20],hope:[21,8,17],overidden:12,contribut:[2,7,29,13,9],espinc:22,ludicr:22,familiar:[7,16,22],disagre:6,autom:[10,1,12,13,15,22,18],regularli:[22,20],piecewis:11,bean:10,increas:1,applicationframework:0,triangl:4,extract:[22,10,1,6],enabl:[10,14],organ:[21,22,1,2,18,7],bisect:11,coplien:[22,11],mertz:18,grai:30,stuff:13,integr:[33,22,11,1,30],contain:[21,9,10,30,12,4,33,16,22,6,37,7,28],grab:22,ddglass:22,view:[13,30],conform:20,"0079e10c":28,frame:[10,36],knowledg:[33,1,4],popen2:31,dynatrash:22,temporarili:10,distract:10,py2int:10,syntact:32,polymorph:[9,22,32,4,23,33],statu:22,error:[10,1,12,13,22,6,18,30],dlg:10,correctli:[7,1],pattern:[21,9,10,11,1,12,32,30,4,16,22,26,6,37,7,28,14,20,35],boundari:[7,10],misus:[21,22],tend:[21,33,22,1,18],favor:21,state:[21,9,28,11,30,12,4,33,22,35],"__bases__":18,japplet:0,progress:[7,8,14],bunch:22,email:[7,21],pazzaglia:16,bed:30,kei:[22,12,32,10,23,33,37,7,20],p2j:10,itertool:[27,9],job:[2,33,22,0],entir:[21,10,30,22,33,14],measur:13,cafelattedecafwhip:20,addit:[10,1,12,2,22,33,35,18,7,30,14],exclaim:33,boxheight:30,admin:13,invulner:22,equal:[21,22,10,1,33],etc:[22,11,2,4,23,19,0,7,14,20],admit:[21,22],instanc:[28,1,12,10,23,18,20],equat:14,section:[21,10,32,22,4,34,37,7,8],freeli:[16,10,1],comment:[7,33,10,1],make_fil:6,interp2:10,"0076c54c":28,simpleclass:33,wall:36,guidelin:[13,33,22],kungfugui:4,arriv:22,chmod:10,walk:[21,10,1,6],distinguish:[22,10,8,1],incess:29,respect:22,labor:21,quit:[10,1,12,13,4,33,18,14,20],htmldiff:6,decent:21,obstacl:4,compon:[16,30,10,22,20],treat:[22,10,1,12],nextto:30,immedi:[22,14,1,36,4],interactwith:4,assert:[37,18,1,12,4],espressoconpanna:20,togeth:[10,11,22,33,35,37],present:[21,22,1,12,10,37,20],multi:12,main:[10,0,1,30,2,22,33,7,36],plain:[7,20],align:33,harder:10,defin:[21,33,10,0,1,12,30,4,16,22,5,18,28,14,20],aarrgggh:36,decept:10,observ:[21,9,28,1,12,22,30],cafemocha:20,htmlbutton:10,layer:[21,20],almost:[21,10,30,32,33,14],site:[2,22,11],motiv:[2,9,10,21,1],fiddl:35,incom:2,revis:22,cafemochadecaf:20,whatihav:37,bolder:1,mousemovelist:12,began:[21,1],classpath:[33,10,1],cross:[2,13,10],member:[22,1,30,2,32,23],python:[1,2,4,6,7,8,9,10,11,12,13,14,15,18,19,20,21,22,23,28,29,30,31,33,34,35],tendenc:22,fill:[10,22],infer:33,difficult:[21,10,12,2,22,33,20],competit:30,http:[10,11,1,12,8,22,29,18,7,30,14,36],original_new:28,denot:33,expans:[10,12],drink:20,upon:[32,10,14,22,18],effect:[28,11,1,12,4,23,22,18,30,37,20],coffe:[9,20],handi:30,issuccess:11,tribut:23,pdf:[2,7,13,9],canva:36,decoupl:[16,9,11,30],misappl:22,pull:[7,22,10,8,6],off:[21,10,30,2,15,22,33,18],center:10,albin:22,firstli:20,builder:[],well:[21,10,1,30,2,22,13,5,36,18,14,20],difflib:6,numerical_integr:11,thought:[21,28,11,29,22,16],scissor:23,weblog:[14,18],exampl:[0,1,2,4,6,7,8,9,10,11,12,13,14,18,20,21,22,23,28,29,30,32,33,35,36,37,38],command:[9,10,0,1,15,33,11,6,7],setq:7,choos:[9,10,11,1,2,4,22,18,7,8,20],breaker:21,latest:7,test1:[10,1],classset:18,test3:[10,1],test2:[10,1],test4:10,librari:[9,10,11,1,30,31,37,16,33,5,18],less:[21,22,1,13,5,18,14,20],hybrid:10,trust:1,heavili:[16,22],cafelatt:20,simultan:[7,22],gliffi:13,web:[2,33],rapid:10,newbrain:11,field:[9,10,1,12,13,33,18,30],bell:[10,22,18],makefil:[10,8,1,29],knew:[1,18],proxydemo2:35,add:[1,2,4,6,7,8,10,11,12,13,14,15,17,18,20,21,22,23,28,30,32,33,35,36],jython_hom:10,wet:20,collis:36,smart:[10,35,12],confront:28,jython:[9,10,8,18],royalti:[2,10],elementat:36,fate:22,sumvalu:22,caller:[22,4,18],piec:[21,22,28,6],arguabl:[10,22],testa:1,camelcas:13,realiz:[16,21,22,1,33],know:[10,22,1,30,2,8,23,13,7,14],press:[33,10],redesign:22,height:[36,30],recurs:[22,11,4],loss:20,trash:[21,9,22],resid:33,like:[1,2,4,7,14,10,11,12,13,16,17,18,36,21,23,22,29,30,32,33,35,20],success:[21,10,11,1,22,16],incred:33,paperbin:22,necessari:[22,0,1,12,10,33,35,37,7],lose:[22,10,23,32],resiz:[33,0],boxdesc:30,page:[7,9,11,14,33],poor:22,sum:[33,22],trashbin:22,captur:[10,14],suppli:10,phenomena:30,cafemochaextraespresso:20,growth:20,"export":[7,10],superclass:10,flush:1,proper:[10,22,12],simple4:18,peter:30,simple1:18,simple3:18,simple2:[33,18],tmp:1,"__setattr__":28,est:21,leaf:18,lead:21,bintyp:22,avoid:[7,21,22],setlayout:30,slide:17,"__getattr__":[28,35],leav:[22,30],itemnotavail:12,speak:[2,35],getnam:[22,1],myfunct:33,hinder:33,weslei:[22,11],slower:[21,10],investig:36,usag:[21,9,22,1],facilit:[22,30],host:[2,7],although:[21,10,22,1,2,4,13,5,7,14],offset:30,beneath:0,simpler:[21,22,1,30,28,35,18,14],about:[21,9,10,22,1,12,31,2,8,4,23,16,13,36,18,7,37,14,20,33],quarter:12,actual:[21,33,10,11,1,12,4,23,16,22,35,6,30,14],column:30,purist:22,javaclass:10,mindviewinc:[],bridg:10,constructor:[9,10,0,1,12,30,4,33,22,18,28,14],wxcommandev:30,"0076b7ac":28,own:[21,10,30,1,12,2,15,4,23,33,22,34,35,6,18,7,28,8,20,36],fillov:36,bashrc:10,automat:[9,10,11,1,12,13,15,4,33,22,35,5,6,18,7,30,37,29],guard:21,getpric:12,awhil:21,rectifi:[22,14],pitfal:33,forget:22,mere:10,merg:[7,9,8],prozac:12,val:[33,22,10,28,30],transfer:[9,5,12],inner:[9,10,1,30,28,22,37,38,14],arg1:[33,14],maze:[9,36],typenum:22,arg2:[33,14],"function":[9,10,11,1,12,33,3,30,4,23,16,22,5,18,32,7,28,14],mailer:7,north:36,pythontojavaclass:10,subscrib:21,triangular:18,bodi:[33,22,11,14],gain:[2,18],eas:[22,20,12],inlin:18,bug:[7,32,22,1],count:[33,1,12],made:[22,12,30,13,10,29,18],cleanup:1,newval:22,whether:[22,11,30,12,2,10,18,36],wish:[10,1,20],scroll:10,displai:[33,10,14,1,6],troubl:[7,33,10],record:36,below:[7,10,11,30,20],limit:[33,10,14,28,18],testfil:6,trepid:14,otherwis:[21,22,11,1,30,2,18],problem:[21,33,10,11,1,12,3,30,4,23,16,22,35,18,32,28,37,14,20],jdialog:10,evalu:12,"int":[22,12,1,30,31,10,8,36],rather:[33,10,1,30,31,13,32,4,16,22,35,18,37,14,20],dure:[10,1,12,2,22,16,35,14],twist:22,implement:[21,9,10,11,1,12,32,4,33,22,35,36,18,30,37,14,20],decorator_function_with_argu:14,ing:18,eric:[35,30],probabl:[21,10,11,30,13,23,33,22,35,5,18,14],typemapadapt:22,nonetheless:14,entry_exit_funct:14,detail:[21,9,28,11,30,31,32,22,7],virtual:[22,0,12,32,4,33,35,7],preinstal:7,other:[0,1,2,4,7,8,9,10,11,12,13,14,15,16,18,20,21,22,23,28,30,32,33,35,36,37],lookup:[32,23],futur:[2,10],branch:[7,9,22,8,36],bazzar:13,repeat:[21,11,30,4,7,20],star:28,fulli:33,multipledispatch:23,cafelatteextraespressowhip:20,singleton:[21,9,28,18,12,37],lightoff:[10,18],mazework:36,stai:[21,22,11],experienc:33,sphinx:[9,29,2,13,7,8],interp1:10,came:[16,21,22],indirectli:22,rule:[21,9,10,1,13,33],fillabl:22,portion:1,klass:[28,30,18],cookbook:18},titles:["Building Application Frameworks","Unit Testing &amp; Test-Driven Development","Introduction","Coroutines &amp; Concurrency","Factory: Encapsulating Object Creation","Messenger/Data Transfer Object","Comprehensions","Developer Guide","ToDo List","Python 3 Patterns, Recipes and Idioms","Jython","Function Objects","StateMachine","Book Development Rules","Decorators","A Canonical Form for Command-Line Programs","Iterators: Decoupling Algorithms from Containers","Teaching Support","Metaclasses","A Note To Readers","Decorator: Dynamic Type Selection","The Pattern Concept","Pattern Refactoring","Multiple Dispatching","Part I: Foundations","Part II: Idioms","Part III: Patterns","Generators, Iterators, and Itertools","The Singleton","Contributors","Observer","Discovering the Details About Your Platform","Visitor","Quick Python for Programmers","Python 3 Language Changes","Fronting for an Implementation","Projects","Changing the Interface","Table-Driven Code: Configuration Flexibility"],modules:{},descrefs:{},filenames:["AppFrameworks","UnitTesting","Introduction","CoroutinesAndConcurrency","Factory","Messenger","Comprehensions","DeveloperGuide","ToDo","index","Jython","FunctionObjects","StateMachine","Rules","PythonDecorators","CanonicalScript","Iterators","TeachingSupport","Metaclasses","NoteToReaders","Decorator","PatternConcept","PatternRefactoring","MultipleDispatching","Part1","Part2","Part3","GeneratorsIterators","Singleton","Contributors","Observer","MachineDiscovery","Visitor","QuickPython","LanguageChanges","Fronting","Projects","ChangeInterface","TableDriven"]})
+Search.setIndex({desctypes:{},terms:{defaultcloseoper:10,orthogon:21,yellow:[30,18],four:[13,36,12],secondli:20,prefix:30,sleep:[36,30],dirnam:[1,6],"00798f9c":28,browse_thread:7,gladiolu:32,evalscissor:23,whose:[16,22,11,23,30],authorit:18,typeerror:18,pprint:18,selen:7,concret:[22,1,4],swap:[35,30],under:[21,10,11,1,12,2,16,35,7],testabl:1,worth:[22,10,4,18],lure:12,everi:[21,33,10,1,12,2,4,16,22,30,14,20],risk:29,inventfeatur:32,matchobj:6,rise:21,lurk:10,voic:[2,13,1],penchant:33,decorator_without_argu:14,govern:12,affect:[22,30,18],rare:21,vast:18,disturb:[22,4],nestedshapefactori:4,metaclass:[9,28,14,18],decorator_with_argu:14,correct:[10,22,12],"__templatemethod":0,getdeclaredmethod:1,technolog:[13,1],verif:1,unpredictableperson:12,cappuccinowhip:20,c02:1,categori:[21,14,30],cmp:[18,12],storag:28,"10f":22,direct:[21,9,10,12,4,14,36],sourceforg:[10,30],nail:22,second:[33,10,11,30,28,23,16,22,35,14],classcastexcept:16,ill:22,"__finditem__":10,even:[10,11,1,13,28,33,19,35,18,7,22,14,20],rewritten:[13,19],hide:[21,22,37],createshap:4,canvasheight:36,item1:23,weren:28,shallowai:11,firstdigit:12,"new":[0,1,2,3,4,6,7,8,10,11,12,13,15,16,18,20,21,23,22,32,33,36],net:[10,1,30,2,13,7],ever:[16,22,23],succumb:1,liberti:37,told:4,getsiz:30,widget:30,behavior:[21,10,11,30,12,28,23,16,22,18,37,14,36],never:[2,28,10,22,1],here:[1,2,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,28,30,31,33,36,37],"__hash__":12,debugg:7,gridlayout:30,path:[22,1,12,10,6,7,30],cardboard:22,interpret:[21,9,10,11,22],dry:20,sweeet:7,haschang:[30,12],credit:[13,9],errmsg:1,studi:[21,22,1,30,4,18],readlinesetup:10,portabl:[10,4],tremend:10,golden:21,argin4:10,"_test":6,brought:[7,33,10],substr:22,unix:31,ratsandmaz:36,wateron:[10,18],total:[10,22,12],unit:[9,10,1],getchar:10,plot:30,redon:13,describ:[21,33,10,1,12,2,32,22,16,35,5,18,7,20],would:[33,10,0,1,12,2,30,4,16,22,11,17,28,14,20],quickpython:33,suit:1,call:[21,9,10,0,1,12,33,32,30,4,23,16,22,11,6,18,7,28,37,14,35],typo:13,recommend:22,type:[21,9,10,11,1,12,33,32,30,4,23,16,22,6,18,7,28,37,20],until:[21,10,11,12,32,22,33,6,19,14],looni:11,remark:[33,10,22],relat:[21,35],notic:[10,1,30,32,23,4,33,22,14],hurt:30,warn:[21,10,8,22],glass:22,"__iter__":18,flowervisitor:32,moin:14,hole:1,hold:[10,11,12,13,22,16],unpack:[22,10,6],must:[10,11,1,12,2,32,30,4,23,33,22,5,36,18,7,28,37,14,20],join:[10,6,18],err:[22,1],setup:[7,1,4],work:[21,9,10,22,1,30,33,2,8,4,23,16,13,35,6,18,7,28,14,20,19],worm:32,contentpan:10,root:[22,1],overrid:[22,0,1,12,33,18,7,30],walk_comprehens:10,give:[21,10,1,31,2,22,33,13,18,7,14,36],digit:12,indic:[9,10,30,12,22,4,33,29,14],doublevalu:22,setvis:[10,36,30],unavail:12,unassign:7,david:[21,33,18],addtobin:22,end:[21,10,11,30,2,23,33,13,18,22,8,36],quot:33,ordinari:[22,1,30,10,4,18],classifi:[21,9],revisit:[22,4],how:[21,33,10,11,1,30,2,32,15,4,23,16,13,7,28,22,20],hot:20,disappear:[19,36],env:1,answer:[7,22,1,23],verifi:[10,1],changeinterfac:37,perspect:[21,22],"void":[10,1],updat:[30,29,6,7,8,36],my_new:28,recogn:[],lai:1,mess:2,coffeeshop:20,after:[21,10,11,1,12,8,28,33,22,36,18,7,14,20],implementation1:35,lump:35,implementation2:35,diagram:[9,22,12,13,35,7,8,20],befor:[21,33,10,11,1,12,2,22,16,18,30,14,20],wrong:[22,10,1],beauti:[22,35],law:21,parallel:[21,3],demonstr:[10,0,1,30,12,32,23,33,35],beanmeup:20,chere:7,profess:17,attempt:[21,22,1],third:22,classmethod:[28,18],revolv:21,exclud:1,wink:0,maintain:[21,22,11,12,13,23,36,14,20],environ:[7,32,22,4,31],incorpor:[10,11,14,1],enter:[10,14,30,12,36],lambda:[10,18],someplac:7,order:[33,10,0,30,12,2,4,16,22,11,5,18,7,8,20,35],origin:[10,1,30,14,22,16,36,8,20],composit:21,os_walk_comprehens:6,over:[21,33,10,11,1,2,22,16,18,14],fall:[14,1,31],orang:30,becaus:[21,33,10,22,1,12,2,32,28,16,13,35,18,7,30,37,14,19],run_ev:18,paperscissorsrock:[32,23],flexibl:[21,9,10,11,12,23,33,22,18,38,20],vari:[21,11],fit:[21,22,11,1,30,2,35],fix:[28,29,30,13,32,22,7,8,20],avocado:20,"__class__":[10,11,32,23,18,20],bytecod:10,better:[21,10,11,1,12,2,22,13,30,14],imp:[16,35],blemang:33,comprehens:[9,10,6,18],hidden:[33,22,0,35],schmidt:22,easier:[21,10,1,12,32,5,18,7,30,14],glassbin:22,them:[21,33,10,11,1,30,2,32,23,16,13,36,6,18,7,22,14,20,17],thei:[21,33,10,11,1,12,2,32,37,28,16,13,6,18,30,22,14,20],proce:7,safe:[16,9,10,14],stringformat:33,"break":[22,1,29,20,36,6],promis:22,setvalu:22,"instanceof":22,choic:[22,11,30,2,32,4,23,13,36,18,7,20],grammat:2,alex:28,brough:[],getvalu:[10,22,12],closeobserv:30,each:[21,9,10,0,1,12,32,30,4,23,33,22,11,36,6,18,28,8,20,35],debug:[10,8,29],side:[7,13,10,22,1],mean:[21,33,10,11,1,12,13,32,22,16,35,18,30,14,20],prohibit:22,setdefaultcloseoper:[10,30],nochang:12,enorm:14,arduou:20,taught:11,makecharact:4,receptacl:22,collector:10,whip:20,goe:[13,33,22,20],langug:10,gof:[21,11,35],content:22,rewrit:[10,2,8,22,16,13,35,37,7,14,20],dsl:10,vector:[21,22,36,12],adapt:[7,9,22,37],reader:[9,1,13,16,33,5,19],got:[13,1,37],washer:12,forth:10,dsc:18,linear:21,barrier:21,written:[33,30,11,1,18],situat:[28,1,10,33,22,18],free:[7,13,21,12],standard:[21,10,11,1,30,33,14],ncpu:31,println:[22,10,1],mousemovegener:12,quickinstal:7,sheet:[7,1],kit:10,acrobat:7,uiuc:22,puzzl:4,angl:21,openssh:7,filter:18,mvc:30,isn:[21,10,0,30,2,22,33,35],subtl:[21,22],onto:21,bite:1,rang:[10,0,30,32,4,23,33],isassignablefrom:1,gradi:22,hoop:14,independ:[21,22,30,18],wast:[33,4,30],system:[21,10,11,1,12,31,2,32,15,4,23,13,18,7,22,36,19],restrict:[2,10,14,28,30],"__tojava__":10,unlik:[33,22,11,1],alreadi:[21,10,11,1,30,2,22,16,18,7,36],wrapper:[10,22],wasn:22,getmemb:6,thick:4,agre:33,primari:[22,11,1,3,18,32],hood:10,brillig:10,vendingmachinetest:12,metanewvsinit:18,"__implement":35,spinach:20,top:20,sometim:[21,10,0,37,13,22,18,7,14],cardboardbin:22,rsrc:30,gnureadlin:10,master:[10,22,12],too:[21,10,1,13,22,34,19,14,20],similarli:10,john:18,consol:[10,1],namespac:18,tool:[9,10,11,1,12,2,4,13,7,30,22,8],propon:22,getcontentpan:30,somewhat:2,conserv:18,technic:13,trek:28,silli:22,target:[10,30],keyword:[33,30,10,4,18],provid:[21,33,10,0,1,12,30,4,16,22,11,37,7,28,14,20,35],"__onlyon":28,tree:[10,1],hors:33,prong:22,project:[21,9,10,1,2,32,22,13,17,7,8,36],matter:[21,22,11,13,4,18],pressur:1,foamedmilk:20,fashion:[33,22,14],mind:[13,28,1,6],mine:7,raw:33,aforement:21,cohes:[21,22],"__main__":[28,1,30,10,33,6,18],seen:[21,33,10,11,30,12,2,4,16,35,18,14],seem:[21,10,1,12,14,4,33,22,35,8],seek:[22,12],seminar:2,innerclass:10,realm:[16,21],respectjavaaccess:10,terrif:10,latter:[21,10],cope:22,thorough:10,alreadyopen:30,staticinnerclass:10,client:[22,0,1,12,2,35,37],alldecor:20,thoroughli:2,wherebi:12,simplifi:[7,28,10,4],shall:[10,11,1],bruce:7,glob:[10,1],object:[1,4,5,8,9,10,11,12,14,16,18,36,21,28,23,22,30,32,33,35,20,37],deleg:[28,35,22],regular:[33,10,1,20],letter:0,phase:[21,22,14],coin:11,brien:22,tradit:21,simplic:[21,32,10,12,33],don:[21,9,10,22,37,30,2,3,4,23,33,13,34,35,18,7,14,19],simplif:[10,18],pythoninterpreterset:10,doc:7,flow:[13,10],doe:[21,10,11,1,12,8,30,4,33,22,0,18,28,14,29,35],bash_profil:7,dummi:11,declar:[33,1,18],wildcard:10,itemslot:12,notion:35,dot:10,marvel:33,has_kei:[22,4,12,31],class_nam:18,endear:10,visitor:[21,9,22,1,30,32],"__str__":[28,11,12,32,23,18],random:[21,22,30,32,4,23],syntax:[10,1,28,33,22,5,18,14],"2008v1":7,involv:[21,28,15,22,16,18,7],despit:22,layout:[2,13,10],acquir:30,field2:18,menu:[7,15,4,20],explain:[35,14,1,18,4],configur:[9,10,30,12,13,23,22,18,7,38],restaur:20,sugar:14,theme:11,busi:32,"__call__":[28,11,14,18],priveledg:[],oct:10,edict:32,cappuccino:20,vener:7,stop:[22,1],next:[10,11,1,12,4,16,22,18,28,36],on_mouseup:30,report:[7,1,36],rosettacod:11,bat:10,bar:[13,3,28,18],isopen:30,emb:[33,10],baz:[3,18],shape:[22,4,18],method:[21,9,10,0,1,12,32,30,4,23,33,22,11,6,18,28,37,14,20,35],twice:[1,30],bad:[13,4],steam:20,fair:11,decoratortalk:14,elimin:[10,22],mandatori:21,result:[21,33,10,11,1,30,22,16,6,18,14,20,36],respons:[9,22,0,12,33,11,36,20],fail:[22,10,14,1,12],themselv:[21,33,30],bee:[32,35,30],hammer:22,best:[21,10,2,33,13,7,14],brazil:2,awar:[22,10,30,4,18],said:2,alsum:22,databas:28,hgrc:7,red3d:36,discoveri:[21,22],figur:[2,13,10,22,31],emptor:19,simplest:[21,28,10,1,30],awai:[21,22,20,12],getkei:10,approach:[21,9,10,30,12,32,4,16,22,18,7,28,37,14,20],attribut:[21,10,2,5,18,14],accord:[16,22,1],extend:[16,32,22,1,4],xrang:10,weak:33,extens:[7,13,10,22,18],lazi:[28,35,12],preprocessor:14,backgroundcolor:30,rtti:[9,22],aparat:22,protect:[10,35,1,30],accident:[21,22,18],expos:[22,37],howev:[21,33,10,11,1,12,13,32,30,4,16,22,35,5,36,18,7,28,37,14,20],pitt:14,against:[32,10,14,22],logic:[21,30,20],countri:11,com:[21,10,1,12,13,22,16,18,7,14,36],con:20,compromis:[9,20],kwd:28,notifyobserv:30,elf:32,excess:12,coconut:33,"2nd":10,diff:7,guid:[7,9],assum:[7,33,28,22],panel:30,duplic:[21,6],light:[10,18],testsynchron:30,ianbick:18,three:[21,10,12,32,18,14,20],been:[21,10,22,30,12,2,28,33,13,35,18,19,14],chrysanthemum:32,much:[21,10,22,1,30,2,3,4,33,13,18,32,7,14,19],interest:[21,10,1,30,2,28,22,18,14],basic:[21,9,10,1,12,2,4,33,16,22,35,18,30,37,14,20],"__doc__":6,"__len__":10,quickli:[10,12],life:30,mcl:18,deeper:[22,10,4],spit:18,getval:10,xxx:31,isfunct:6,dave:16,alreadyclos:30,bookstor:2,ugli:[22,37],exception:[33,10],ident:[28,37,22,12],occam:21,gnu:1,servic:[2,13],properti:10,commerci:[13,10],air:[4,12],employ:2,calcul:[11,30],aid:33,vagu:21,dizzi:21,enlev:21,seconddigit:12,player:30,kwarg:[5,6],indent:[13,33,6],tediou:[10,30],sever:[22,10,4,12],valgen:10,quand:21,perform:[21,10,11,1,12,32,4,23,22,0,18,30,14,20],suggest:[21,28,1,13,22,33,7],make:[1,2,4,5,6,7,8,9,10,11,12,13,14,17,18,20,21,22,23,28,29,30,32,33,35],transpar:[10,1,20],complex:[9,10,11,1,30,4,6,14],descend:1,tackl:22,complet:[21,10,1,12,22,35,7,30,14,36],inheritor:[30,18],blue:[30,18],listperform:38,hand:[21,33,28,11,30,13,4,16,22,18,14],fairli:[21,22,1,30,10,23,18],nix:10,rais:[2,22,18,12],garlic:20,refin:[10,8,22],techniqu:[9,28,33,3,4,16,22,6,32],qualif:10,jframe:[10,30],kept:[2,1],thu:[21,33,10,11,1,12,4,23,16,22,0,18,14,20],getbyt:36,game:[4,30],inherit:[21,9,10,11,1,12,30,4,33,22,0,18,28,20],runtimeexcept:[16,12],academia:11,shortli:[33,1],greatest:[21,22],thi:[0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,18,19,20,21,22,23,28,29,30,32,33,34,35,36,37],programm:[21,9,10,0,1,12,2,28,33,35,37,14],everyth:[10,30,31,2,22,33,13,18,19,14],isomorph:21,left:[21,22,30,13,32,15,6,7],agon:2,identifi:[7,33,10,4],setcolor:[36,30],just:[1,2,4,5,6,7,14,10,11,12,13,18,19,20,21,22,23,28,30,31,33,35],"__dict__":[28,5,6,30],kdiff3:7,yet:[33,10,1,30,13,28,16,22,6,18,19,36],languag:[21,9,10,11,1,12,3,4,33,22,34,6,18,14,29],previous:[22,4,18],easi:[21,10,1,23,33,22,7,20],had:[21,33,10,11,1,12,2,32,22,16,36,14,20],keyset:[10,22],spread:[4,23],prison:36,falter:1,els:[21,10,1,12,31,28,33,22,6,7,36],functionobject:11,explanatori:10,gave:[2,22],applic:[21,9,10,0,12,4,35,7,14],larman:37,mayb:[13,8,1],metabas:18,ajout:21,background:30,elabor:22,shadow:21,unten:14,readlineconsol:10,apart:21,maxval:10,specif:[21,10,11,1,12,4,16,22,35,18,7,30,8],arbitrari:[33,22],nudg:0,hunt:[22,30,18,36],manual:[22,23],doubledispatch:22,tymciurak:7,night:[2,10,18],ocbox:30,unnecessari:[10,35,4,12],singletonpattern:28,underli:21,www:[21,33,10,11,1,12,22,16,18,7,30,14,36],right:[21,10,30,2,22,33,13,6,18,7,19],old:22,deal:[22,10,6,37,23],printf:33,interp:10,somehow:[10,35,22,18],dead:36,intern:[16,22,1,4],borg:28,unless:[2,33,35,1,6],indirect:22,successfulli:[7,22,1],atteint:21,txt:[36,12],clash:22,bottom:[33,11],test_x_z:18,suffici:10,condit:[9,11,1,12,4,33,36],foo:[10,13,3,28,33,18,14],core:[7,33,10],sensibl:[4,18,23],steamedmilk:20,confer:[2,13,22],promot:[2,22],repositori:2,pylist:10,post:[7,14],"super":[33,28,30,18],create_mc:18,meyer:36,chapter:[33,10,11,1,2,8,22,16,13,34,36,18,38,14,20],unpackag:10,alexand:16,eat:32,getparametertyp:1,slightli:[9,1,12,5,18,30,14],py2float:10,surround:[33,22,36,30],unfortun:10,commit:[7,8],produc:[21,10,22,1,12,2,32,4,23,16,13,18,37,14],makeobstacl:4,dilemma:[32,22],thermostat:[10,18],javac:10,curiou:19,basenam:6,"float":10,encod:23,bound:[2,32,10,22],mocha:20,down:[10,11,1,30,4,36,20],creativ:[2,22,17],weightvisitor:22,bizarr:14,cappuccinodecafwhip:20,wrap:[10,11,30,28,16,22,14,20],opportun:22,clearchang:30,javax:10,testdumpclassinfo:10,east:36,accordingli:13,wai:[1,2,4,5,7,14,10,11,12,13,18,20,21,22,28,29,30,31,32,33,35,37],frustrat:10,support:[9,10,1,12,2,3,4,33,22,17,7,30],evalpap:23,why:[21,33,22,14,18],avail:[21,10,11,1,2,22,33,18],stuck:1,reli:[16,22,5],editor:[7,13],fork:7,head:[21,11],medium:21,autonom:36,form:[21,9,22,1,30,2,15,4,16,33,18],offer:20,forc:[21,33,10,1,30,2,4,16,35,6,18],forg:1,heat:12,hear:1,percentag:2,heap:[22,35],hashtabl:[],"true":[22,1,12,10,4,33,18],analyst:22,"6dd415847e5cbf7c":7,entryexit:14,pragu:22,setsuccess:11,maximum:[21,33],tell:[10,11,1,12,4,33,22,7,36],singletonmetaclass:28,absenc:1,fundament:[11,21,0,1,33],trim:22,developerwork:18,classif:21,featur:[21,10,1,2,15,22,33,34,7,14],setxi:36,semicolon:33,classic:[22,12],howdi:[10,18],stronger:33,"abstract":[21,9,22,4,37],flaw:1,sale:2,exist:[22,0,4,16,6,18],door:12,cleverli:13,mold:[22,37],trip:2,assembl:20,inde:[28,10,22,14,1],surpris:[33,14],metamethod:[9,18],excel:[16,18],refactor:[9,22,1,29],tij:38,test:[21,9,10,11,1,12,22,19,6,18,7,30,8],tie:21,presum:[22,4],smell:12,realiti:10,getsizetupl:30,notif:[21,30],intend:[2,10,1],felt:10,intent:[16,21,32],consid:[21,9,10,11,1,23,22,35,36,18,14,20],phthaloblu:18,bitbucket:[7,9,8,29],receiv:[10,14,30],longer:[10,13,22,33,14,20],furthermor:11,home:[7,10],intimaci:22,ignor:[22,28,1,18],inexpens:22,time:[21,33,10,0,1,12,2,30,4,16,13,11,6,18,28,22,14,20,36],push:7,backward:[36,29],osx:[7,31],concept:[21,9,10,0,11],chain:[9,11,12],nextstat:12,skip:1,consum:[10,5,20],focus:4,invent:[10,35],cafelattedecaf:20,objcount:1,subclass:[9,10,12,4,22,18,20],primer:18,milk:20,row:[30,12],decid:[22,12,30,32,10,4,33,35,20],depend:[21,10,30,12,4,22,18,8,29],decim:33,intermedi:2,certainli:[21,22,30,12,10,4,35,20],decis:[13,16,36,33],jvm:10,mainloop:30,jtextarea:10,isinst:[16,18,31],"__metaclass__":[28,18],sourc:[21,10,1,12,2,22,13,7,30,36],string:[9,10,11,1,12,4,33,22,18,30,36],brazillian:2,onlyon:28,"fa\u00e7ad":[9,37],broadli:22,word:[10,11,1,12,0,37,14],exact:[22,4,12,23],valuabl:22,level:[21,22,1,30,4,33,6,18,14],did:[33,10,6],die:36,gui:[0,4,30],iter:[21,9,10,1,12,4,33,16,22,27,18],vein:14,item:[30,10,4,12,23],team:[2,7,29,9],quick:[9,10,1,33,7,20],round:[35,18],dir:[10,1,18,6],dict:[28,10,5,6,18],prevent:[9,22,1,30,4,35,18],plaincap:20,paintcompon:30,htm:36,compens:21,sign:[7,10,8],bondag:14,cost:[21,20,12],cafelattewetwhip:20,patient:10,corba:10,appear:[21,10,11,1,12,13,8,30,4,33,22,18,28,14,29],filler:22,scaffold:4,current:[21,33,10,1,12,22,16,8,36],suspect:4,newalgorithm:11,shapefact2:4,deriv:[22,1,12,10,4,33,35,18,30],cappuccinodri:20,gener:[1,2,4,6,7,8,9,10,11,12,14,16,18,36,21,28,23,27,22,29,30,32,33,35,37],satisfi:[21,22,11,12,35],modif:[33,22,14,20,18],chainlink:11,address:35,along:[21,33,10,1,12,22,16,35],viabl:21,teacher:17,wait:[30,10,22,12],box:[9,10,1,30,4],messengeridiom:5,nextb:12,alti:30,shift:6,queue:11,behav:[10,14,22,12],extrem:[7,22,10,14,1],commonli:[10,22],nmspc:18,trashtyp:22,semant:[33,1],regardless:[22,35],mazegen:36,extra:[22,1,30,33,18,20],activ:[13,32,22,4],modul:[9,10,30,3,33,18,14],prefer:[13,18],toarrai:10,visibl:[33,10],codemark:6,instal:[9,10,1,30,22,7],forefront:1,gsum:22,anounc:7,red:[30,18,36],newslett:21,prove:[22,14],univers:[21,4],visit:[32,10,22],recycleap:22,subvers:10,everybodi:30,live:10,handler:30,msg:33,scope:33,checkout:[7,8],testid:1,trustworthi:6,capit:18,testpyutil:10,afford:11,peopl:[21,22,1,29,2,32,33,13,17,18,7,14],claus:[33,30,4,12],clue:22,visual:[7,9,30,13],appendix:2,rigid:10,oop:[21,22,1,30],examin:[10,22],obj:[16,33],jlabel:10,effort:[9,10,11,1,2,22,17],easiest:[7,9,10,32],simplemeta2:18,simplemeta3:18,fly:32,graphic:[36,1,30,4],ibm:18,prepar:14,dmitri:28,battl:[32,4],focu:[13,3,22],flowlayout:10,problemsolv:11,can:[1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,28,30,32,33,35,36,37],purpos:[21,22,11,4],problemat:16,claim:11,encapsul:[21,9,22,11,12,4],stream:10,predict:14,wrapped_f:14,statet:12,backslash:[33,10],topic:[2,33,28],heard:22,chih:28,abort:[1,6],proxydemo:35,recycl:[9,22],simul:[21,9,22],occur:[21,22,11,1,12,13,4,23,30],pink:30,alwai:[21,28,0,1,29,10,33,22,8],killanddismemb:4,variou:[21,10,11,1,12,32,4,23,22,0,20],distinctli:12,ping:10,write:[21,9,10,0,1,12,2,4,33,16,13,11,6,18,30,22,35],anyon:[2,36],pure:[10,12],"0x00798900":28,parameter:22,ensconc:10,map:[10,12,32,22,33,36],product:[13,33,10,1],modal:10,book:[21,9,28,0,1,2,8,37,4,33,13,11,17,18,32,7,22,14,36,19],max:30,thermostatdai:[10,18],gradient:21,spot:[13,4],usabl:12,wantmor:12,inputb:12,inputc:12,mac:7,inputa:12,mymethod:30,aop:14,mai:[21,33,10,11,1,12,2,30,4,16,13,34,36,7,28,22,20],underscor:[13,33,28],data:[9,10,11,30,12,4,33,16,22,5,28],grow:34,newlin:33,my_login:7,practic:[33,18],johnson:21,secur:[10,14],explicit:[21,11,14,23],cafelattewhip:20,inform:[10,11,1,12,31,8,30,4,23,33,22,5,18,7,28,14,36],"switch":[22,11,36,35],preced:20,combin:[9,10,11,30,2,23,18,20],gamma:21,callabl:[14,30,18],talk:[7,21,10,22],vike:33,extractor:[8,1],dojo:17,mouseact:12,countobserv:30,greenhouselanguag:[10,18],brain:[33,11],lst:10,codemanag:[6,18],still:[21,10,22,30,12,2,4,33,13,6,18,7,8],skeleton:35,stringlist:22,dynam:[21,9,10,11,30,32,4,23,33,22,35,14,20],rosetta:17,group:[21,22,11,30,2,32,33,6,18,7,36,17],thank:[9,29],polici:0,jim:[22,11],platform:[9,10,31],window:[9,10,31,13,15,7,8],curli:33,borgsingleton:28,jtextfield:10,ddtrash:22,non:[21,10,1,2,22,33,18],dispens:12,halt:1,halv:33,sysconf_nam:31,alist:7,initi:[21,10,0,30,12,4,33,22,35,18,7,28,8,36],sorter:22,underneath:7,typedbinmemb:22,pyinteg:10,aesthet:22,therebi:1,half:35,javaclassinpython:10,now:[21,10,1,12,32,4,22,36,18,7,14,29],discuss:[21,22,36],introduct:[9,2,33,18,7,14],term:[21,22,11,1,12,35,37,14],name:[21,10,0,1,12,13,8,30,4,23,33,22,35,5,6,18,7,28,14,20],ppr:22,getweapon:32,didn:[21,33,8,1],oliv:20,phyast:14,separ:[21,10,0,1,12,32,4,33,22,11,18,7,30,35],rock:23,cafemochadecafwhip:20,pizza:20,jmap:10,compil:[21,10,11,1,30,22,33,35,6,18,19,14],domain:10,replac:[10,11,1,13,32,33,14],individu:[7,22,36,20],arg3:14,continu:[22,1,12,10,33,6],tag3_method:18,ensur:[7,21,35,1,6],parsetrash:22,significantli:14,begun:21,year:[16,21,22,1],happen:[21,10,22,1,12,2,4,13,18,30,14,20],dispos:10,troll:32,shown:[21,22,11,32,10,4,33,20],accomplish:[22,37,30,10,33,35,18,28],cafemochawhip:20,"3rd":[16,20],space:[22,13,10,33,35,6,36],profit:[2,10],antoin:21,profil:10,internet:[1,36],returnstr:10,factori:[21,9,22,12,4,37],"0x7ed70":18,overidden:12,earlier:22,"goto":22,occupi:33,getcwd:1,argu:[13,3,16,14,21],argv:6,lab:22,org:[10,11,1,30,14,33,29,18,7,8],"byte":[10,36],care:[13,33,22,4],reusabl:[16,22],couldn:[22,11,1],yarko:[7,8,29],synchron:30,recov:22,thing:[21,10,11,1,30,2,23,33,13,35,18,7,22,14],place:[33,10,22,1,12,2,4,16,13,5,17,7,30,14,20,19],greenhous:[38,10,18],principl:[21,9,22,1,12,37],think:[21,33,10,11,1,30,2,23,16,22,7,14,20],frequent:22,first:[21,9,10,0,1,12,33,30,4,23,16,22,35,6,18,7,28,37,14,20,36],oper:[21,9,10,11,33,12,32,15,4,23,16,22,18,7,14],directli:[28,0,1,2,10,33,22,18],carri:[22,11,12],onc:[21,10,30,22,6,18,7,14,20],arrai:[21,22,12,10,4,33,37,36],getcost:20,crib:31,yourself:[10,12,2,22,33,7],fast:[13,33,10,1],ring:[10,18],open:[10,0,1,12,2,22,13,6,18,7,30],size:[2,30,10,1,20],given:[22,0,12,30,10,4,35,36],ian:18,"__subclasses__":[32,4,23],convent:18,width:[36,30],teardown:1,caught:12,clip1:22,plastic:22,necessarili:[13,0],circl:[18,4,12],showdigit:12,white:[9,22,1,30],conveni:[28,30,13,10,4,35,18,20],cite:36,includ:[21,33,10,1,12,15,28,16,22,17,7,30,14,20,29],simionato:[14,18],changeneighbor:30,especi:[21,22,29,10,33,17],copi:[22,12,30,2,35,6,7],specifi:[10,1,12,2,4,33,7],broadcast:12,newcolor:30,enclos:20,enigma:22,changeavail:12,registerleafclass:18,holder:22,than:[21,33,10,11,1,30,13,32,4,23,16,22,35,18,14,20],png:7,serv:[21,4],setattr:28,min:30,applet:0,were:[10,1,12,4,33,22,18,14],posit:[36,30],surrog:[11,37,20,35],seri:14,analysi:21,sai:[21,33,10,11,30,12,13,32,23,16,22,0,6,18,7,14],jythonc:10,nicer:[7,37,30],svnroot:10,argument:[21,9,10,11,1,12,4,33,22,5,18,30,14],ant:10,prt:10,larri:22,deliv:10,breakfast:30,kevin:30,leastsquar:11,engin:[32,0,1],squar:[30,4,18],patternrefactor:[22,11],note:[1,4,6,7,14,9,10,11,12,13,15,16,18,19,20,21,22,28,29,30,33,34,35,36],altogeth:[21,22],ideal:10,take:[21,33,10,0,1,12,2,32,30,4,16,22,11,18,7,28,37,14,20,29],green:[30,18],wonder:18,noth:[21,22,11,1,30,13,36],begin:[21,10,29,13,22,33,7,14],sure:[2,33,10],trace:[14,1,30],normal:[21,28,11,1,32,4,33,22,18],track:[22,12,30,2,35,5],price:[2,22,20,12],setchang:30,beta:10,wire:[28,22],pair:[22,37],neatli:35,televis:28,latex:[7,13,8,29],synonym:21,later:[21,10,11,1,4,22,18,7,28,14,20],drive:0,quantiti:[30,28,22,12],addbranch:7,runtim:[9,10,11,4],parseint:30,quiescent:12,shop:[2,20],shot:[22,20],linedata:11,show:[21,33,10,11,1,13,3,15,4,16,22,6,18,7,28,14],cheat:7,cheap:[21,22],subprocess:10,mousetrap2test:12,concurr:[3,9],permiss:[10,1],hack:[7,8],ground:10,xml:[10,37,18],onli:[0,1,2,4,6,7,14,10,11,12,13,16,18,20,21,22,23,28,30,32,33,35,37],explicitli:[22,10,4,33,18,14],nexta:12,fenc:21,nextc:12,transact:21,observedflow:30,enough:[10,1,30,13,22,4,7],doubleespresso:20,printstacktrac:[22,1],black:[9,1,30],analyz:21,jaroslav:22,clearselect:12,startswith:[6,18],proxy2:35,nearli:1,viewpoint:22,get:[1,2,23,6,7,14,9,10,11,12,13,16,17,18,19,20,21,22,30,32,33,37],ddaluminum:22,cannot:[21,33,10,0,12,32,28,16,22],ssh:7,afunct:14,gen:4,requir:[21,33,10,1,12,4,16,22,34,5,6,37,7,30,14,20],truli:[],prime:[22,1,30],reveal:36,isemptyxi:36,aluminum:22,dramat:1,yield:[3,32,4,23],spameggssausageandspam:10,expedi:1,pynam:10,scott:21,where:[21,10,11,30,12,2,4,23,33,19,5,6,7,22,14,36],vision:2,summari:[9,10,22],wiki:[10,11,29,22,7,14],"__module__":18,onlamp:18,pydictionari:10,booch:22,cafelattewet:20,testcas:[],rmi:35,purest:11,concern:[22,14,1],timeit:10,detect:[22,23,36,31],charat:10,review:[7,9,14,1],enumer:[16,18,6,12,23],label:[10,8,29],getattr:[28,35],trashbinset:22,between:[21,10,1,12,22,35,18,7,30],"import":[21,10,0,1,12,2,3,4,23,33,13,5,6,18,32,30,22],item2:23,across:[10,4],aslist:10,assumpt:[32,22],parent:[7,10],tup:10,screen:[22,0,1,30],inflex:20,cycl:33,pythoncardapp:30,findminima:11,come:[21,10,1,12,2,30,4,33,22,6,7,28,36],pythoncard:30,tug:7,newbyt:36,pepperdew:20,quiet:22,contract:2,inconsist:14,improv:[9,28,29,12,2,22,33,13,7],somecondit:1,minima:11,color:[13,30,18,36],overview:[7,9,22],unittest:[22,10,1,12],period:33,dispatch:[9,22,30,32,4,23],yearli:22,jeremi:36,colon:[33,10],exuperi:21,mousetrap:12,coupl:[21,9,22],games2:4,west:36,rebuild:10,mark:[21,33],appframework:0,quiesec:12,reflex:21,procedur:22,runal:12,spare:33,pythondecor:14,emphas:[13,22,10,4,18],test_x:18,nameless:10,trantabl:12,cafelatteextraespresso:20,findal:6,rememb:[33,22,10,23],lectur:17,"__eq__":[23,12],former:[16,28,18],those:[21,10,1,30,2,4,23,33,22,5,17,18,7,14],ispubl:1,sound:[2,14],myself:[14,17],tostr:10,keygen:7,trick:[10,5,22],cast:[10,22,37],invok:[10,1,23,33,22,18,7,14,20],outcom:[4,23],invoc:20,anytim:[13,30],advantag:[16,22,10,28,12],stdout:10,canon:[9,15],ivi:7,worri:[2,13,16],endswith:[10,6],eras:[1,4],myapp:0,couplet:22,shutil:6,fame:22,"__init__":[9,10,0,1,12,33,37,30,4,23,16,22,11,5,6,18,28,36,14,20,35],develop:[21,9,10,1,2,13,18,7],author:[11,30,18],blackboxtest:1,same:[21,33,10,11,1,12,13,30,4,23,16,22,35,18,28,14,20],check:[10,1,12,30,4,33,22,6,18,7,28,8],binari:7,html:[10,29,13,8,22,33,6,18,7,14],testrunn:[],customize1:0,pai:[2,10,22],document:[10,1,30,13,8,33,7,14],martelli:28,number_of_processor:31,nest:[33,28,4,20],foam:20,someon:[7,8,30],driven:[38,9,1,12,36],artima:18,mani:[10,1,12,2,28,33,22,18,7,30,14,20],extern:[9,22,1,12,6],tosynch:30,tradition:[33,1],hummingbird:30,appropri:[21,10,11,1,12,32,4,33,22],macro:[9,11,14],facad:37,pep8:13,gameenviron:4,without:[21,9,10,22,1,30,2,4,33,16,13,7,14,20],temptat:18,model:[21,32,22,30,20],dimension:[37,12],arrays2:33,execut:[9,10,11,1,30,4,23,33,22,7,14],tip:7,thermostatnight:[10,18],rest:[21,10,0,1,12,2,4,22,6,7,14],recyclea:22,aspect:[21,10,14,4,30],recycleb:22,touch:[32,22],monei:[2,12],flavor:11,speed:10,pythondecoratorlibrari:14,except:[10,0,1,12,23,22,18,14],littl:[21,10,1,12,22,33,7,14,36],blog:[7,18],tbinlist:22,pile:21,treatment:22,exercis:[9,10,11,1,12,32,30,4,22,0,17,37,28,20],frontmatt:8,mouseclick:30,real:[10,11,36,35],around:[21,22,1,30,13,32,4,33,35,5,36,14,20],todolist:[8,29],"0079ef2c":28,repaint:[36,30],grid:30,pop:[10,22,18],amp:[3,1],rununittest:1,appetit:21,returnarrai:10,mod:36,saniti:1,colorbox:30,stranger:21,vend:[9,12],chainofrespons:11,integ:[33,10,30],benefit:[10,30,2,22,33,13,35,20],either:[21,10,11,30,23,33,18,20],output:[10,0,1,12,13,8,28,33,29,18,7,14,20],margherita:20,manag:[21,10,11,12,30,32,28],fulfil:[21,11,35],tulach:22,satisfactori:22,adequ:[21,33],constitut:30,nonzero:1,regina:20,slice:10,mood:12,chronicl:21,boxobserverpythoncard:30,highest:7,definit:[22,0,1,2,10,33,35,14],evolv:[13,21,10,22,1],exit:[36,14,1,30,6],inject:[10,14,18],complic:[22,35,1,20],ratcount:36,refer:[21,28,22,1,12,2,4,23,33,13,35,36,18,7,20,19],power:[7,22,10,14,28],pythoninterpreterget:10,garbag:[10,1],inspect:[7,9,6,18],typedbin:22,standpoint:1,"__name__":[10,11,1,30,32,4,23,33,6,18,14,20],"throw":[16,10,1,12,4],comparison:[10,18,4,12],central:[16,22,12],greatli:22,max_num:22,firstnam:7,camembert:18,conditionc:12,panna:20,splitlin:6,currentlin:36,stand:[21,32,22,35],neighbor:30,act:[21,22,11,14],routin:35,effici:22,activest:18,lastli:[16,10],val2:33,quietli:10,"75f":20,strip:[22,20,1,12,6],counterintuit:22,your:[0,1,2,4,6,7,9,10,11,12,13,15,16,18,20,21,22,23,28,30,31,32,33,35],wustl:22,log:30,aren:[21,18,1,13,33,37],commenttag:6,overwrit:6,hee:35,stealth:10,interfac:[21,9,10,11,30,12,32,4,33,16,22,35,37,20],low:[21,22],lot:[21,10,1,12,2,22,33,18],pollin:32,strictli:22,unam:10,svn:10,tupl:[33,10,5,6,23],bundl:37,regard:21,vendingmachin:12,stepanov:16,conciev:12,"0076aa3c":28,functor:11,mice:12,conclus:16,faster:[10,1],notat:10,tripl:33,jc2:10,impenetr:1,possibl:[21,10,22,1,12,2,4,33,13,35,36,18,28,14,20],"default":[22,11,1,30,31,10,18,7,36],asynchronizedmethod:30,grasp:33,embed:10,clone:[7,22],expect:[21,10,22,23,33,19,14],gone:[10,11],creat:[0,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23,28,29,30,32,33,35,36,37],certain:[22,12,15,10,18,20],strongli:33,intro:[8,18],file:[9,10,0,1,12,13,15,22,33,11,6,7,30,8,36],jargon:32,rearrang:16,cream:20,incorrect:16,again:[2,22,10,1,33],setval:10,googl:7,want:[21,33,10,11,1,12,2,30,4,23,16,13,35,5,37,7,28,22,14,20,29],discrimin:33,my_decor:14,compel:[21,10,6],jpanel:30,awt:10,orient:[21,22,11,10,4,33,14],idiom:[21,9,11,30,25,35,7],valid:[10,1],compet:23,jset:10,you:[0,1,2,4,5,6,7,14,9,10,11,12,13,15,16,18,19,20,21,22,23,28,30,31,32,33,35,36,37],getdescript:20,inneradapt:37,architectur:[2,21,10,30],check_result:6,critic:10,registri:[10,18],sequenc:[21,33,10,11,12,22,16],tbin:22,vocabulari:21,pool:28,reduc:[1,20],bulk:[13,22],differentreturn:33,opennotifi:30,directori:[10,1,13,22,6,7,8],descript:[10,1,12,28,22,6,18,7,8,20],showmsg:33,lighton:[10,18],mass:30,potenti:[21,30],escap:12,cpu:31,represent:12,all:[0,1,2,4,6,7,14,10,11,12,13,16,18,19,20,21,22,23,28,30,32,33,35],dist:10,consider:[9,22,20],messi:[22,23,31],recip:[9,18],lack:[10,1],dollar:12,sanitycheck:1,monti:33,abil:[21,30,2,32,13,18,14],follow:[21,10,22,1,12,2,4,23,33,13,35,5,18,7,30,14,20],princ:21,unclassifi:22,uses_metaclass:18,edong:7,"__cmp__":[10,18,12],init:0,program:[21,9,10,11,30,1,12,33,2,15,4,23,16,13,6,18,28,22,14],hasattr:[18,31],rstrip:6,cgi:[33,22],introduc:[21,10,1,2,22,13,18],"case":[33,10,11,1,30,2,4,23,16,22,35,5,18,28,14,36],liter:[33,23],straightforward:[21,10,22],fals:[22,10,6,12],checkin:[7,8],faq:7,util:[33,10,1,30,16,7],defvar:7,candid:[16,21],mechan:[9,22,0,13,23,16,33,11,18,14,35],failur:[21,11,1],veri:[21,9,10,11,1,30,2,4,23,33,13,7,28,14,36],bottleneck:10,bruceeckel:[7,16,10,21,1],lisp:14,list:[21,9,10,0,1,12,2,8,4,23,33,22,11,5,6,18,7,30,14,29],signific:[13,16,22,1,36],emul:[30,18],asingleton:18,small:[2,13,21,20],everth:15,dimens:30,tag1:18,tag2:18,tag3:18,pyobject:10,tea:20,tee:35,tex:7,zero:[10,1],shapefactori:4,design:[21,9,10,11,1,12,13,32,30,4,33,16,22,35,6,37,28,14,20],pass:[10,11,1,12,32,30,4,23,33,22,35,5,18,7,28,37,14,20],whene:35,further:[9,10,1,30,13,3,22,33,18,14],new_f:14,what:[1,2,3,4,6,7,14,9,10,11,12,13,16,18,19,20,21,22,28,30,33,35,37],sub:6,ntotal:22,hashset:10,abl:[21,10,0,1,12,2,4,23,16,13,11,22,36,35],brief:33,overload:[33,10,22,18],version:[10,22,30,12,2,8,4,23,33,13,18,7,28,37,14,19],succinct:[10,14],fillbin:22,"public":[21,10,1,2,22,13],contrast:33,movement:[21,22,11],hasn:[22,30,18],full:[7,33,10,35,6],hash:[16,33,12],variat:[21,28,37,22,12],sophist:[33,10,1,4],rlock:30,shouldn:[7,11],trunk:[7,9,10],demet:21,rudimentari:33,modifi:[10,22,1,12,2,32,30,4,23,33,13,18,7,28,14],valu:[10,1,12,23,33,22,5,6,18,37,14],search:[9,22,0,1,33,18,7],upcast:[22,4],ahead:[33,1],vegetarian:20,popen:10,prior:22,amount:[22,11,1,12,15,10],"0076daac":28,pick:22,action:[21,9,10,11,12,4,22,35,18],introductori:[9,10,2,33,7,14],scurri:36,pytupl:10,via:[10,2,22,23,18,7],shorthand:10,primit:[10,22],transit:[9,12],"while":[21,10,11,1,12,2,22,33,35,18,36],readili:21,filenam:[22,6,36],inappropri:[10,1],ystart:36,famili:[22,11,23],viewpost:18,establish:[16,33,22,1,12],jbutton:10,select:[21,9,10,11,30,12,13,22,7,20],kittiesandpuzzl:4,aggress:33,twa:10,proceed:22,distinct:[21,22,11,12,10,35,28],regist:[7,30],two:[10,0,1,12,2,32,30,4,23,33,22,35,6,18,28,37,14],coverag:[8,29,18],getweight:22,repetiti:15,machinediscoveri:31,taken:[13,22,10,1,4],automati:[],showtot:12,minor:30,more:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,20,21,22,23,28,29,30,32,33,35,36,37],visitabledecor:22,desir:[10,11,5,22,30],mydialog:10,apologet:14,reconfigur:32,convinc:1,ddcardboard:22,flag:[10,30],stick:[14,18],particular:[21,33,10,11,1,12,2,4,16,22,35,36,18,7,28,20],known:22,compani:[2,10],cach:10,dictat:2,none:[28,12,1,30,10,33,18],pyprog:1,jdk:[10,1,30],dev:7,histori:[7,9,14,6],testdemo2:1,remain:[16,22,12],caveat:[19,1],learn:[21,22,2,33,13,7],returnchang:12,statedemo:35,dee:35,def:[0,1,4,5,6,14,10,11,12,16,18,36,28,23,22,30,31,32,33,35,20,37],prompt:7,scan:13,challeng:36,registr:[9,18],share:[2,7,28],accept:[10,32,22,16,18,7],prose:13,minimum:[7,33,10,30],explor:16,explos:22,phrase:1,magenta:30,condemn:22,huge:20,cours:[21,10,1,29,2,4,22,35,37,20],goal:[21,9,10,1,12,2,22,33,14,36],awkward:10,divid:1,programmat:[20,18],anoth:[21,10,11,30,12,32,4,33,22,35,18,7,28,14,20],comfort:[1,37],myratno:36,ish:[13,33],smalltalk:[21,30],simpl:[9,10,0,1,12,4,33,22,35,18,7,30,37],css:[8,29],distro:10,plant:22,resourc:[9,1,30,37,8,36],algebra:16,variant:22,reflect:[9,10,22,1],associ:[33,10,22],"short":[33,31],waysid:1,ani:[21,33,10,22,1,12,2,30,4,16,13,35,36,18,7,28,14,20],confus:[22,37,30,32,33,18,14],ambigu:10,caus:[21,10,1,12,32,4,33,22,7,30],flwr:32,"0x7ecf0":18,drinkcompon:20,egg:[33,28],sysctl:31,help:[21,22,30,2,3,13,35,17,7],soon:1,held:[21,35,12],pythondialog:10,paper:[22,23],through:[21,33,10,11,1,12,2,30,4,23,16,13,35,18,28,22,14],cyan:30,hierarchi:[21,22,11,32,4,23,33,35],taxonomi:[21,9],makeschang:12,paramet:11,latt:20,style:[11,1,12,13,33,29,18,8],conjugategradi:11,alli:17,late:[22,20],rapidli:[10,30],astonish:21,bypass:18,match:[32,22,11,23,30],might:[21,10,11,1,30,2,4,23,16,22,14,36],attch:[],currentst:12,wouldn:[22,1,4],good:[21,10,1,12,2,22,33,13],"return":[33,10,11,1,12,31,32,30,4,23,16,22,35,5,6,18,28,37,14,20,36],pollut:21,ringbel:18,ttbinlist:22,framework:[21,9,10,0,1,12],somebodi:[2,7],placehold:12,complain:33,bigger:[10,12],whatiw:37,intricaci:4,customize2:0,hook:[9,30,18],solver:11,instruct:[7,1],refresh:[8,6],easili:[21,10,11,1,12,28,23,22,5,18,37],achiev:[28,10,22,18,14,20],compris:14,getmodifi:1,found:[21,22,1,14,36,7,8,20],strategypattern:11,proxyadapt:37,harm:[9,22,12],weight:22,hard:[13,16,22,4,32],idea:[21,10,11,12,2,8,4,13,35,17,7,22,14],ndiff:6,realli:[21,22,11,12,10,33,37,28],finish:[21,10,1,12,7,14],connect:[21,22,11,30,12,10,28],windowadapt:30,ddpaper:22,detect_cpu:31,todo:[9,10,29,6,7,8],event:[21,10,0,30,18,36],flower:[9,30,32],safeti:[33,1],classvariablesingleton:28,multiplejython:10,actionperform:10,setsiz:[36,30],publish:[2,22,10,1],research:[2,10,37],footnot:[21,10,11,1,12,28,22,8],gameelementfactori:4,print:[0,1,2,4,5,6,8,9,10,11,12,13,14,18,20,22,23,28,30,32,33,35,36],qualifi:[33,1],lutz:33,proxi:[21,9,10,12,28,16,35,37,20],advanc:[2,11,18],pub:18,reason:[21,10,11,1,12,2,4,33,22,35,18,37,14,20],base:[21,10,0,1,12,2,32,30,4,23,33,22,11,18,7,28,36,35],put:[21,9,10,22,1,12,2,8,4,33,13,5,6,18,7,28,14,17],teach:[2,9,1,17],bash:1,basi:[1,30],thrown:22,thread:[7,30,18,36],script:[13,9,10,11,33],struggl:21,revolutionari:1,perhap:[22,1,13,32,10,4,37],pythonsw:10,ascher:33,trashsort:22,lifetim:35,clump:5,assign:[10,33,5,18,7,14],major:[33,14,18],notifi:30,obviou:[16,22],blush:22,feel:[7,13,21,1],articl:[3,15,18],lastnam:7,number:[21,10,11,1,12,31,13,28,23,33,22,35,36,37,7,30,14,20],evolut:[21,22],sayhello:14,done:[10,11,1,30,2,4,33,13,18,7,8,29],construct:[16,10,14,1,18],colorboxestest:30,stabl:10,miss:[21,22,10,6],fanci:12,gpl:10,razor:21,differ:[21,33,10,11,1,12,8,4,23,16,22,35,6,18,32,7,30,14,20],php:30,exponenti:[21,20],interact:[32,10,4,37,23],tove:10,least:[21,10,1,22,33,7],addfactori:4,paint:[13,36],toi:18,expand:[7,35],statement:[10,11,1,12,4,33,22,35,30,14],scheme:[32,22,30],syrup:20,store:[14,1,12],itempairgen:23,imperfect:13,option:[21,11,30,2,33,6,7,20],relationship:[21,18],behind:[21,35],checklist:21,bsingleton:18,shapefactory1:4,shapefactory2:4,convieni:18,pars:[33,9,22,23],consult:2,closenotifi:30,eventu:[21,1],tortoisehg:7,albeit:[21,33,10,22],kind:[21,33,10,1,12,2,32,4,23,16,22,35,30,14],plop:22,whenev:[21,22,0,30,4,5,7,14],remot:35,gotten:12,remov:[21,22,30,12,2,16,18],kapow:10,pythoninterpret:10,reus:[21,28,0,12,10,22,11],getconstructor:[10,22],toward:[21,1],danc:35,weapon:32,runsawai:12,comput:[10,22,18],nastyweapon:4,ardent:1,requisit:1,"null":[35,1,12,36],gettotalcost:20,sell:2,imagin:[22,4],"0x7ed30":18,built:[21,9,10,11,1,30,2,22,33,35,7],equival:[22,1,30,10,33,18],restfil:[10,6],self:[0,1,4,5,6,14,9,10,11,12,16,18,36,21,28,23,22,30,32,33,35,20,37],violat:10,typediter:16,also:[21,33,10,11,1,12,2,30,4,16,13,36,17,18,38,7,28,22,14,20,29],bgboxobserv:30,build:[9,10,0,1,33,2,32,37,4,16,13,18,7,22,8],mouseev:30,brace:33,distribut:[7,13,10,4],exec:[10,18],blackboard:36,eater:32,previou:[22,12,2,4,14,20],reach:[21,11,36],mixtur:20,addobserv:30,most:[21,10,0,1,30,2,4,22,11,5,14,20],plai:[32,22,4],jsp:18,cygwin:7,eaten:32,thidiscuss:11,maco:31,alpha:10,amaz:[10,14,36],fileread:36,clear:[21,12,30,2,18,14],cover:[2,13,34,0,1],roughli:[1,12],"_shared_st":28,ext:[8,29],part:[21,9,10,0,1,30,2,8,22,26,33,24,25,11,6,18,7,14,20,36],clean:[33,22,10,1],jython2:10,xstart:36,usual:[21,10,0,1,22,33,5,18,14],mousetrap2:12,mousetrap1:12,ccolor:30,flowergen:32,canvaswidth:36,particularli:[13,33,22,23],uncov:10,font:[2,10],fine:[22,4,18],find:[21,10,11,1,2,4,33,13,18,7,22,14,20],impact:[22,14],flesh:10,solut:[21,10,11,1,12,30,4,23,22,18,28,20],pyutil:10,templat:[9,10,0,12,2,4,33,16,13,11,22,14],darkgrai:[36,30],shapefact1:4,affirm:[33,1],unus:21,cappuccinodecaf:20,express:[21,10,1,13,23,33],entry_exit_class:14,swing:10,nativ:[7,10],mainten:[22,20],wateroff:[10,18],ineffici:30,doubli:30,cyclic:12,stl:[16,10,11],common:[21,10,1,12,2,4,33,22,35,17,30],wrote:[10,1],commod:22,cafemochawetwhip:20,pyexcept:10,adopt:1,creator:[7,11,29],overwhelm:[7,18],startup:[7,10],potent:10,emac:[7,9,8],bare:30,aluminumbin:22,arg:[28,1,30,10,33,22,18,7,14,36],close:[30,1,12,36],horizont:36,skill:11,analog:33,dwarf:32,expert:[13,11],someth:[21,10,11,1,12,2,32,23,33,13,17,37,30,22,14,20],particip:7,conditionb:12,conditiona:12,weakli:[],testb:1,won:[10,30,2,22,33,13,18],mutex:30,autogener:[8,29],experi:[2,21,10,14,1],nope:1,birkenfeld:7,altern:[21,10,1,3,22,18,14],signatur:[33,10],str:[33,30,18],numer:[0,5,11,23],hasnext:[16,22,10,1,12],complement:21,sole:11,isol:[21,22,11,4],statemachin:[9,12],disallow:[4,18],cachedir:10,getmethod:[10,22],solv:[21,10,11,1,12,3,23,33,22,35,18,32,30,37,36],extraespresso:20,both:[21,10,30,13,4,23,33,22,35,36,18,7,28,14,20],"__instanc":28,last:[32,10,0,22,18],hyperlink:8,arraylist:[10,22],alon:[22,30],undetermin:0,context:[9,11,8],forgotten:15,commandpattern:11,whole:[22,11,1,12,2,10,30],load:[22,10,4,37,7,36],randomli:[32,1],simpli:[21,33,10,0,30,12,32,22,16,29,35,5,37],point:[21,28,11,1,12,31,2,4,33,13,18,7,30,22,14,36,19],instanti:18,schedul:[32,10],sweep:1,ceruleanblu:18,arbitrarili:[35,18],header:7,templatemethod:0,loveandtheft:14,param:10,linux:[7,8,18,31],throughout:[21,22,0,1,13,4],identif:22,java:[9,10,1,12,33,4,23,16,22,35,6,18,19,30,14,36],dum:35,due:1,empti:[36,30],implicit:14,mercuri:[7,9,8,29],newinst:[22,1],nois:1,pushnew:7,strategi:[9,11,6],addison:[22,11],versa:33,execfil:10,clariti:[13,20],imag:[13,30],great:[2,19,10,21],coordin:36,changeimp:35,understand:[21,10,12,13,28,33,22,18,14],demand:[2,33,35,1,4],makedir:6,fillablevisitor:22,look:[21,10,11,1,12,13,8,30,4,33,22,35,18,32,7,28,14,20,29],packag:[33,22,10,1,12],frozen:30,buildtabl:12,getquant:12,decrquant:12,ought:12,abov:[21,10,11,1,30,2,8,15,4,33,13,35,18,32,7,28,22,14,20],sublclass:18,fun:[14,18],anonym:[9,22,38],fum:10,everyon:[29,30,2,33,13,17],loop:[21,22,0,10,4,33],pack:10,argin5:10,propag:[21,22,30],pound:33,argin1:10,argin3:10,argin2:10,readi:[2,7,22,0,36],petal:30,itself:[21,10,11,12,13,22,14,36],orgpattern:22,coroutin:[3,9],chase:4,decor:[9,28,30,14,22,16,18,8,20],guido:29,restructur:[2,7,6,13,9],minim:[21,1,30],boxwidth:30,belong:2,on_openbackground:30,shorter:10,read:[21,9,10,0,1,12,31,2,3,22,33,6,18,30,14,36],conflict:[7,9,18],higher:7,cappucino:20,vertdir:36,optim:[10,22],painless:22,wherea:[33,10,11,22,12],wilson:14,setbackground:36,user:[9,10,30,12,2,4,16,22,7,28],stack:30,focal:21,recent:[10,1],lower:21,task:[7,13,30],lib:33,eleg:[21,28,22,33,35,14],entri:[13,8,10,14,36],localarrai:30,propog:30,parenthes:33,person:[7,10],testpythontojavaclass:10,chees:12,expens:[22,35],elev:[22,12],academ:1,imit:[7,33],propos:[7,21],explan:10,pyfloat:10,valueof:22,obscur:21,choru:35,world:[21,10,11,14,1],"67f":22,dumpclassinfo:10,dirlist:11,cut:[22,37,30],indexof:[10,22],mydecor:14,getreturntyp:1,bick:18,snag:30,win:[32,10,23],input:[3,0,12],subsequ:[33,18,12],brainstorm:21,bin:[7,22,10,1],tomap:10,vendor:[32,22],format:[2,7,33,13],big:[33,14],intuit:10,pymeta3:18,alias:35,insert:[33,22,28,6,18],verion:7,bit:[33,10,30,2,22,4,16,35,14],characterist:0,formal:[33,14],lost:[10,22],docutil:[],signal:10,resolv:[22,18],fluf:13,collect:[21,22,11,1,12,28,37],"__new__":[9,28,18],sizeabl:20,javabean:10,encount:[22,1,30,10,4,16],sketch:13,often:[21,10,11,1,12,2,32,15,22,33,13,5,17,18,30,37,14,20],acknowledg:[21,33],creation:[21,9,10,22,1,12,2,30,4,33,16,13,18,28,14],some:[0,1,2,3,4,5,7,8,10,11,12,13,14,17,18,36,21,23,22,29,30,31,33,37],back:[21,10,11,1,12,2,22,30,14,36],global:[10,1,18],understood:[10,1],wxpython:30,mirror:21,sprint:2,mindview:10,mousepress:30,syndrom:22,rien:21,scale:[3,10,1],chocol:20,mousemov:12,though:[22,28,14,1,30],per:[21,30,20,12,33],usernam:7,substitut:[33,14],mathemat:[11,23],larg:[10,12,2,3,22,34],market:32,fornam:[22,1],reproduc:2,norvig:30,machin:[7,9,12,31],futuer:[],addel:36,run:[21,9,10,0,1,12,22,33,11,6,18,7,30,14,36,35],martin:[22,14],agreement:10,stem:10,step:[21,33,10,1,2,4,16,22,18,7],initialst:12,subtract:[21,18],impos:[16,12],sellimaginaryproduct:32,constraint:[21,33,22,12,2,16,14],materi:[2,13,10,17],memori:1,libero:12,dialog:10,cappuccinodrywhip:20,block:[13,6],plan:10,predat:32,repair:22,"__future__":[32,4,23],emphasi:18,pythonpath:33,within:[21,10,30,12,4,33,22,18,14],oreilli:33,"caf\u00e9":20,contributor:[2,9,8,29],chang:[21,9,10,0,1,12,13,32,30,4,22,34,35,6,18,7,28,37,14,20],artifici:1,connector:21,inclus:[21,33],institut:1,spam:[33,28,30],valuminum:22,question:[7,21,10,22,12],submit:1,custom:[7,10,0,22,20],clip3:22,clip2:22,adjac:30,arithmet:36,pocoo:[8,29],clip4:22,forward:[21,10],jarrai:10,blueprint:[2,7],properli:[22,10,14,23],hawaiian:20,sc_nprocessors_onln:31,link:[7,13,11,8],translat:[21,9,10,22,1,12,2,4,23,16,13,30,8,36],delta:6,line:[9,10,0,1,12,8,15,22,33,11,5,6,7,30,14,36],talli:22,info:[22,5,30],concaten:33,consist:[21,22,1,30,13,4,33,18,20],balabanov:28,strang:[33,4,12],jpython:10,priveleg:10,fillrect:[36,30],readlin:[10,22,12,36],similar:[21,10,11,1,12,22,33,35,18,30,14],toomuchaccess:1,parser:22,chao:1,doesn:[21,10,22,30,12,2,8,28,23,33,13,6,18,37,14],repres:[33,22,12],"char":[10,36],guarante:[7,12],cafe:20,fulful:11,titl:[10,30],water:[10,18],windowi:7,appendic:13,intvalu:10,create_exec:18,"_imag":13,addmouselisten:30,getbound:36,cappuccinoextraespresso:20,nice:[2,7,33],draw:[0,4,36,23],getdeclaredclass:1,cappuccinoextraespressowhip:20,state_d:35,topydictionari:10,eval:[4,23],itemavail:12,pymeta2:18,pricevisitor:22,lang:[10,22,18],algorithm:[21,9,22,11,30,4,16,36],vice:33,downcast:22,actionlisten:10,entryset:10,normpath:6,tradeoff:20,depth:18,greenhousecontrol:10,mindlessli:22,karma:[2,13],far:[21,33,22,1,18],java2pi:10,hello:[10,14,12],prototyp:[21,9,10,22],code:[0,1,4,6,7,8,9,10,11,12,14,15,16,17,18,20,21,22,30,32,33,35,36,38],partial:33,hashmap:[10,22,12],scratch:[10,14],tclone:22,ellips:18,overlap:30,edu:[22,14],benevol:2,privat:[28,0,1,30,10,7],successfuli:10,elsewher:13,friendli:1,send:[2,33,10,35,22],simplemeta1:18,granular:1,becam:1,paperscissorsrock2:23,sens:[21,10,11,1,4,33,22,5,18,14,20],junit:1,sent:10,func2:14,func1:14,cheapli:[10,22],mainstream:14,sausag:28,mous:[30,12],testdemo:1,electron:[2,13],chdir:1,volum:[2,13],whatius:37,implicitli:[21,33,10,4],kitti:4,tri:[10,11,22],troup:33,magic:28,succeed:11,counterproduct:22,knight:35,button:[7,10,4],fewer:18,"try":[21,10,11,1,30,13,22,37,7,14,36],session:12,mousetraptest:12,pleas:[2,7,8,19],boxobserv:[1,30],fortun:22,readabl:33,natur:[22,1,30,13,33,14,36],verbiag:33,elisp:7,jump:14,slithi:10,binset:22,singletondecor:28,download:[2,7,10,16,30],odd:[35,20],click:[7,13,30],append:[10,11,1,30,33,6,18,7],compat:29,index:[9,10,11,13,22,5,7,8],pymeta:18,compar:[22,11,1,10,18,7],espresso:20,access:[28,1,30,4,33,35,14],deleteobserv:30,runuculu:32,mouseadapt:30,spoken:22,whatev:[13,22,1],ibid:21,all_nam:6,mikewatkin:18,len:[11,36,1,30,6],closur:14,intercept:[9,18],let:[10,1,12,13,4,22,14,20],becom:[21,33,10,1,12,22,16,18,30,20],sinc:[21,10,11,1,12,4,33,22,35,18,30,14,20],convert:[10,0,30,12,16,18,8],talent:2,convers:10,musser:16,larger:[22,29],makec:37,makeb:37,makea:37,fetch:[22,30],staticmethod:[28,18,4,6,37,14],earli:[13,19,10,1],typic:[21,22,11,1,12,33,0,5,18,14,20],ratcanmov:36,evalrock:23,chanc:11,boxi:18,appli:[21,22,12,1,30,33,37,14],app:30,foundat:[9,18,24],"_updat":6,pyton:10,fillablecollect:22,hennei:21,"boolean":[10,22,12,36],notenough:12,limb:14,newimp:35,puriti:10,fee:10,from:[0,1,2,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,28,30,31,32,33,35,36,37,38],sysconf:31,zip:[7,6],commun:[2,10,36],doubl:[9,22,32,10,4,33,23,28],addtrash:22,whatihave3:37,whatihave2:37,implic:20,few:[5,20],camera:2,usr:[7,1],stage:[21,22,20],remaind:[7,9,22,8],sort:[21,33,10,11,22,16,18],clever:[21,18],src:7,trait:18,tplus1:14,impress:[10,22],train:2,bufferedread:36,iii:[9,26],starter:36,account:[7,1,20],alik:2,retriev:[],when:[21,10,11,1,12,2,32,37,4,23,33,19,35,36,18,7,30,22,14,20],annot:[14,12],thin:4,meet:[32,22,12],scatter:22,aquamac:7,proof:22,control:[21,9,10,11,30,12,13,4,33,22,35,7,28],cafemochawet:20,process:[21,33,10,0,1,12,13,4,23,16,22,11,18,7,14,20],lock:[2,14],trap:12,high:[21,22],tag:[13,4,12],trashvisitor:22,csum:22,onlin:[13,30,18],transitiona:12,kevlin:21,delai:[10,12],friendlier:7,comedi:33,georg:7,shapenamegen:4,sig:10,feta:20,subdirectori:[22,10,1,6],instead:[21,10,11,1,12,4,23,22,18,7,30,14,20],sin:10,stock:7,everywher:18,overridden:[33,22,0,1,12],singular:18,pyarrai:10,hazard:11,callback:[22,11,30],rmtree:6,multipl:[9,10,11,30,13,32,28,23,33,22,6,18,7],"120dpi":7,cheaper:21,physic:36,alloc:1,drop:22,essenti:[21,22,11,1,10,33],seriou:[33,1],newvsinit:18,correspond:[22,5,1,20],element:[21,10,1,12,22,33,6,18,14],issu:[13,21,28,22,18],allow:[21,10,11,30,12,32,4,22,0,18,14,29,35],subtyp:[22,18],horizdir:36,espressodecor:20,move:[21,10,11,1,12,2,22,13,36,7,30,8,29],cleverdevil:18,evolutionari:22,comma:33,ponder:21,perfect:[2,13,22,21],outer:[28,10,37,1,30],chosen:[2,30,18],settitl:30,gnomesandfairi:4,newsgroup:7,repetet:18,decaf:20,criterion:30,tst:1,typemap:22,rat:[9,36],factor:[21,33,10,1],greater:10,"__getitem__":10,handl:[21,33,22,0,8],auto:[7,6],spell:2,dai:[2,10,18],ctor:22,devel:7,dat:22,mention:[2,22,11,1,4],snake:33,front:[9,35,20],mylist:18,strive:22,multiprocess:3,somewher:[7,4,30],anyth:[21,10,1,30,2,22,13,14],edit:[9,22,16,33,18,7],tran:12,quest:21,mode:[2,7,10,6],isclass:6,batch:33,reserv:1,newtonsmethod:11,psum:22,flair:13,subset:[22,20],chung:28,tolist:10,openobserv:30,transitionb:12,transitionc:12,nodecor:20,"static":[21,9,10,1,12,4,33,22,6,18,28,37,20],"_delta":6,whet:21,our:[10,14,22,18],patch:[7,30],transitiont:12,special:[22,10,4,33,35,18,7],out:[21,9,10,22,1,12,31,2,30,4,23,33,13,18,7,28,14,19],variabl:[7,33,28,12],matt:14,contigu:30,cwr:36,dongwoo:7,hive:28,stub:35,texliv:7,suitabl:10,rel:22,leverag:[10,18],ref:7,"23f":22,math:[10,22,30],clarifi:2,insid:[10,1,12,4,33,22,37,7,30,14],sortintobin:22,manipul:[16,10,18],standalon:7,dictionari:[10,37,12,4,23,33,5,18,8],tempt:35,releas:[30,1,12],embarrass:1,correcton:2,could:[21,10,11,1,12,2,30,4,33,22,35,5,28],ask:[21,10,30,4,16,22,36,7,20],membership:22,keep:[21,10,22,1,12,2,4,13,35,5,18,7,30],length:[22,12,1,30,13,10,36],enforc:1,outsid:[33,22,10,4],south:36,softwar:[7,1],getclass:[16,32,10,22,12],qualiti:[21,1],scene:35,echo:[],all_slot:6,date:[10,18],set:[9,10,0,1,12,2,30,4,23,33,22,11,6,18,7,28,37,14,20],flyweight:12,newsingleton:28,facil:2,redund:11,cafemochaextraespressowhip:20,prioriti:7,"long":[10,22,2,4,33,13,35,7,28,14,20],start:[21,9,10,0,1,30,31,2,28,23,13,18,7,22,14,36],unknown:[22,23],licens:[2,9,10,28,17],perfectli:12,mkdir:10,fascin:18,messag:[21,10,12,1,30,33,7],attach:[13,9,18],termin:[33,11,1,36],"final":[21,9,10,0,1,30,2,32,22,13,36,18,7,14,20],shell:[7,33,10],rsa:7,exit_on_clos:[10,30],slider:4,rst:[2,7,8,6],exactli:[33,10,22,20],readlinelib:10,haven:[13,22],python3pattern:[7,8],cpython:10,embodi:21,split:[30,6,18],see:[0,1,2,4,6,7,8,10,11,12,14,16,18,19,20,21,22,28,30,33,35,37,38],structur:[21,9,10,11,1,12,22,16,33,35,36,20],charact:[10,4],bind:[2,22,23],steer:36,imho:33,aggreg:22,isstat:1,clearli:[21,22,20,1,12],have:[0,1,2,4,6,7,14,10,11,12,13,15,16,17,18,19,20,21,22,23,28,29,30,32,33,35,37],tabl:[9,12,32,23,16,33,35,38],need:[0,1,2,4,5,7,8,10,11,13,14,17,18,20,21,22,23,28,29,30,32,33,35,37],imatix:12,turn:[21,10,1,12,2,22,33,35,36,30,8,20],gentli:14,lightgrai:[36,30],messeng:[9,22,11,12,5,6],rout:21,rmic:35,mix:22,discret:10,sei:1,which:[0,1,2,3,4,5,6,7,14,10,11,12,13,15,16,18,20,21,22,23,28,30,32,33,35,36],linda:16,singl:[10,11,30,12,13,4,23,33,22,35,7,28,14],uppercas:0,entry_exit:14,"5b0":10,htmlhelp:7,who:[22,29,30,2,13,17,18,7,8],minimasolv:11,discov:[21,9,22,1,31,13,4,7],rigor:[33,1],textui:[],mactex:7,"class":[0,1,4,5,6,14,9,10,11,12,16,18,36,21,28,23,22,30,32,33,35,20,37,38],changealgorithm:11,wikic:22,gather:21,request:[21,11,36,12],face:22,pipe:10,"__slots__":18,bui:2,michel:[14,18],determin:[33,22,11,12,4,23,16,36],fowler:[22,14],occasion:1,constrain:1,fact:[21,28,1,30,10,33,22,14],statemachine2:12,dbm:12,text:[9,12,2,15,33,13,6,7,36],whatiuse2:37,bring:[21,10,2,22,33,14,36],developerguid:8,debat:13,trivial:[22,10,1,12],anywai:[13,33,11],pythoncardprototyp:30,redirect:[28,10,1],textual:30,locat:[10,11,1,12,22,7,8],launchpad:[2,13],createbox:30,hadn:12,winner:32,jar:10,mug:20,should:[21,33,10,11,1,12,13,3,4,16,22,36,18,7,30,14,20],smallest:[22,20],suppos:[22,1,30,10,4,33,14],esqu:33,disciplin:14,inhabit:32,local:[21,22,30,2,33,18,7,20],hope:[21,8,17],insight:[21,22],contribut:[2,7,29,13,9],espinc:22,ludicr:22,familiar:[7,16,22],disagre:6,autom:[10,1,12,13,15,22,18],regularli:[22,20],piecewis:11,bean:10,increas:1,applicationframework:0,triangl:4,extract:[22,10,1,6],enabl:[10,14],organ:[21,22,1,2,18,7],bisect:11,coplien:[22,11],mertz:18,grai:30,stuff:13,integr:[33,22,11,1,30],contain:[21,9,10,30,12,4,33,16,22,6,37,7,28],grab:22,ddglass:22,view:[13,30],conform:20,"0079e10c":28,frame:[10,36],knowledg:[33,1,4],popen2:31,dynatrash:22,temporarili:10,distract:10,py2int:10,syntact:32,polymorph:[9,22,32,4,23,33],statu:22,error:[10,1,12,13,22,6,18,30],dlg:10,correctli:[7,1],pattern:[21,9,10,11,1,12,32,30,4,33,16,22,26,6,37,7,28,14,20,35],boundari:[7,10],misus:[21,22],tend:[21,33,22,1,18],favor:21,state:[21,9,28,11,30,12,4,33,22,35],"__bases__":18,japplet:0,progress:[7,8,14],bunch:22,email:[7,21],pazzaglia:16,bed:30,kei:[22,12,32,10,23,33,37,7,20],p2j:10,itertool:[27,9],job:[2,33,22,0],entir:[21,10,30,22,33,14],measur:13,cafelattedecafwhip:20,addit:[10,1,12,2,22,33,35,18,7,30,14],exclaim:33,boxheight:30,admin:13,invulner:22,equal:[21,22,10,1,33],etc:[22,11,2,4,23,33,19,0,7,14,20],admit:[21,22],instanc:[28,1,12,10,23,18,20],equat:14,section:[21,10,32,22,4,34,37,7,8],freeli:[16,10,1],comment:[7,33,10,1],make_fil:6,interp2:10,"0076c54c":28,simpleclass:33,wall:36,guidelin:[13,33,22],kungfugui:4,arriv:22,chmod:10,walk:[21,10,1,6],distinguish:[22,10,8,1],incess:29,respect:22,labor:21,quit:[10,1,12,13,4,33,18,14,20],htmldiff:6,decent:21,obstacl:4,compon:[16,30,10,22,20],treat:[22,10,1,12],nextto:30,immedi:[22,14,1,36,4],interactwith:4,assert:[37,18,1,12,4],espressoconpanna:20,togeth:[10,11,22,33,35,37],present:[21,22,1,12,10,37,20],multi:12,main:[10,0,1,30,2,22,33,7,36],plain:[7,20],align:33,harder:10,defin:[21,33,10,0,1,12,30,4,16,22,5,18,28,14,20],aarrgggh:36,decept:10,observ:[21,9,28,1,12,22,30],cafemocha:20,htmlbutton:10,layer:[21,20],almost:[21,10,30,32,33,14],site:[2,22,11],motiv:[2,9,10,21,1],fiddl:35,incom:2,revis:22,cafemochadecaf:20,whatihav:37,bolder:1,mousemovelist:12,began:[21,1],classpath:[33,10,1],cross:[2,13,10],member:[22,1,30,2,32,23],python:[1,2,4,6,7,8,9,10,11,12,13,14,15,18,19,20,21,22,23,28,29,30,31,33,34,35],tendenc:22,fill:[10,22],infer:33,difficult:[21,10,12,2,22,33,20],competit:30,http:[10,11,1,12,8,22,29,18,7,30,14,36],original_new:28,denot:33,expans:[10,12],drink:20,upon:[32,10,14,22,18],effect:[28,11,1,12,4,23,22,18,30,37,20],coffe:[9,20],handi:30,issuccess:11,tribut:23,pdf:[2,7,13,9],canva:36,decoupl:[16,9,11,30],misappl:22,pull:[7,22,10,8,6],off:[21,10,30,2,15,22,33,18],center:10,albin:22,firstli:20,builder:[],nonetheless:14,well:[21,10,1,30,2,22,13,5,36,18,14,20],difflib:6,numerical_integr:11,thought:[21,28,11,29,22,16],scissor:23,weblog:[14,18],exampl:[0,1,2,4,6,7,8,9,10,11,12,13,14,18,20,21,22,23,28,29,30,32,33,35,36,37,38],command:[9,10,0,1,15,33,11,6,7],setq:7,choos:[9,10,11,1,2,4,22,18,7,8,20],breaker:21,latest:7,test1:[10,1],classset:[],test3:[10,1],test2:[10,1],test4:10,librari:[9,10,11,1,30,31,37,16,33,5,18],less:[21,22,1,13,5,18,14,20],hybrid:10,trust:1,heavili:[16,22],cafelatt:20,simultan:[7,22],gliffi:13,web:[2,33],rapid:10,newbrain:11,field:[9,10,1,12,13,33,18,30],bell:[10,22,18],makefil:[10,8,1,29],knew:[1,18],proxydemo2:35,add:[1,2,4,6,7,8,10,11,12,13,14,15,17,18,20,21,22,23,28,30,32,33,35,36],jython_hom:10,wet:20,collis:36,smart:[10,35,12],confront:28,jython:[9,10,8,18],royalti:[2,10],elementat:36,fate:22,sumvalu:22,caller:[22,4,18],piec:[21,22,28,6],arguabl:[10,22],testa:1,camelcas:13,realiz:[16,21,22,1,33],know:[10,22,1,30,2,8,23,13,7,14],press:[33,10],redesign:22,height:[36,30],recurs:[22,11,4],loss:20,trash:[21,9,22],resid:33,like:[1,2,4,7,14,10,11,12,13,16,17,18,36,21,23,22,29,30,32,33,35,20],success:[21,10,11,1,22,16],incred:33,paperbin:22,necessari:[22,0,1,12,10,33,35,37,7],lose:[22,10,23,32],resiz:[33,0],boxdesc:30,page:[7,9,11,14,33],poor:22,sum:[33,22],trashbin:22,captur:[10,14],suppli:10,phenomena:30,cafemochaextraespresso:20,growth:20,"export":[7,10],superclass:10,flush:1,proper:[10,22,12],simple4:18,peter:30,simple1:18,simple3:18,simple2:[33,18],tmp:1,"__setattr__":28,est:21,leaf:18,lead:21,bintyp:22,avoid:[7,21,22],setlayout:30,slide:17,"__getattr__":[28,35],leav:[22,30],itemnotavail:12,speak:[2,35],getnam:[22,1],myfunct:33,hinder:33,weslei:[22,11],slower:[21,10],investig:36,usag:[21,9,22,1],facilit:[22,30],host:[2,7],although:[21,10,22,1,2,4,13,5,7,14],offset:30,beneath:0,simpler:[21,22,1,30,28,35,18,14],about:[21,9,10,22,1,12,31,2,8,4,23,16,13,36,18,7,37,14,20,33],quarter:12,actual:[21,33,10,11,1,12,4,23,16,22,35,6,30,14],column:30,purist:22,javaclass:10,mindviewinc:[],bridg:10,constructor:[9,10,0,1,12,30,4,33,22,18,28,14],wxcommandev:30,"0076b7ac":28,own:[21,10,30,1,12,2,15,4,23,33,22,34,35,6,18,7,28,8,20,36],absolut:33,fillov:36,bashrc:10,automat:[9,10,11,1,12,13,15,4,33,22,35,5,6,18,7,30,37,29],guard:21,getpric:12,awhil:21,rectifi:[22,14],pitfal:33,forget:22,mere:10,merg:[7,9,8],prozac:12,val:[33,22,10,28,30],transfer:[9,5,12],inner:[9,10,1,30,28,22,37,38,14],arg1:[33,14],maze:[9,36],typenum:22,arg2:[33,14],"function":[9,10,11,1,12,33,3,30,4,23,16,22,5,18,32,7,28,14],mailer:7,north:36,pythontojavaclass:10,subscrib:21,triangular:18,bodi:[33,22,11,14],gain:[2,18],eas:[22,20,12],inlin:18,bug:[7,32,22,1],count:[33,1,12],made:[22,12,30,13,10,29,18],cleanup:1,newval:22,whether:[22,11,30,12,2,10,18,36],wish:[10,1,20],scroll:10,displai:[33,10,14,1,6],troubl:[7,33,10],record:36,below:[7,10,11,30,20],limit:[33,10,14,28,18],testfil:6,trepid:14,otherwis:[21,22,11,1,30,2,18],problem:[21,33,10,11,1,12,3,30,4,23,16,22,35,18,32,28,37,14,20],jdialog:10,evalu:12,"int":[22,12,1,30,31,10,8,36],rather:[33,10,1,30,31,13,32,4,16,22,35,18,37,14,20],dure:[10,1,12,2,22,16,35,14],twist:22,implement:[21,9,10,11,1,12,32,4,33,22,35,36,18,30,37,14,20],decorator_function_with_argu:14,ing:18,eric:[35,30],probabl:[21,10,11,30,13,23,33,22,35,5,18,14],typemapadapt:22,inevit:22,entry_exit_funct:14,detail:[21,9,28,11,30,31,32,22,7],virtual:[22,0,12,32,4,33,35,7],preinstal:7,other:[0,1,2,4,7,8,9,10,11,12,13,14,15,16,18,20,21,22,23,28,30,32,33,35,36,37],lookup:[32,23],futur:[2,10],branch:[7,9,22,8,36],bazzar:13,repeat:[21,11,30,4,7,20],star:28,fulli:33,multipledispatch:23,cafelatteextraespressowhip:20,singleton:[21,9,28,37,12,33,18],lightoff:[10,18],mazework:36,stai:[21,22,11],experienc:33,sphinx:[9,29,2,13,7,8],interp1:10,came:[16,21,22],indirectli:22,rule:[21,9,10,1,13,33],fillabl:22,portion:1,klass:[28,30,18],cookbook:18},titles:["Building Application Frameworks","Unit Testing &amp; Test-Driven Development","Introduction","Coroutines &amp; Concurrency","Factory: Encapsulating Object Creation","Messenger/Data Transfer Object","Comprehensions","Developer Guide","ToDo List","Python 3 Patterns, Recipes and Idioms","Jython","Function Objects","StateMachine","Book Development Rules","Decorators","A Canonical Form for Command-Line Programs","Iterators: Decoupling Algorithms from Containers","Teaching Support","Metaclasses","A Note To Readers","Decorator: Dynamic Type Selection","The Pattern Concept","Pattern Refactoring","Multiple Dispatching","Part I: Foundations","Part II: Idioms","Part III: Patterns","Generators, Iterators, and Itertools","The Singleton","Contributors","Observer","Discovering the Details About Your Platform","Visitor","Quick Python for Programmers","Python 3 Language Changes","Fronting for an Implementation","Projects","Changing the Interface","Table-Driven Code: Configuration Flexibility"],modules:{},descrefs:{},filenames:["AppFrameworks","UnitTesting","Introduction","CoroutinesAndConcurrency","Factory","Messenger","Comprehensions","DeveloperGuide","ToDo","index","Jython","FunctionObjects","StateMachine","Rules","PythonDecorators","CanonicalScript","Iterators","TeachingSupport","Metaclasses","NoteToReaders","Decorator","PatternConcept","PatternRefactoring","MultipleDispatching","Part1","Part2","Part3","GeneratorsIterators","Singleton","Contributors","Observer","MachineDiscovery","Visitor","QuickPython","LanguageChanges","Fronting","Projects","ChangeInterface","TableDriven"]})

src/Comprehensions.rst

 
 What makes them so compelling (once you 'get it')?
 
+Techniques
+==============================================================================
+
+Using ``zip()`` and dealing with two or more elements at a time::
+
+    ['%s=%s' % (n, v) for n, v in zip(self.all_names, self)]
+
+Multiple types (auto unpacking of a tuple)::
+
+    [f(v) for (n, f), v in zip(cls.all_slots, values)]
+
 A two-level list comprehension using ``os.walk()``::
 
     # Comprehensions/os_walk_comprehension.py

src/Metaclasses.rst

 Metaclasses
 ********************************************************************************
 
+..  Note:: This chapter is written using Python 2.6 syntax; it will be
+    	   converted to Python 3 at a later date.
+
 Objects are created by other objects: special objects called "classes"
 that we can set up to spit out objects that are configured to our
-liking. What creates these special "class" objects, though? Class
-objects are created by other special objects, called metaclasses.
+liking. 
+
+Classes are just objects, and they can be modified the same
+way::
+
+    >>> class Foo: pass
+    ... 
+    >>> Foo.field = 42
+    >>> x = Foo()
+    >>> x.field
+    42
+    >>> Foo.field2 = 99
+    >>> x.field2
+    99
+    >>> Foo.method = lambda self: "Hi!"
+    >>> x.method()
+    'Hi!'
+
+To modify a class, you perform operations on it like any other
+object. You can add and subtract fields and methods, for example. The
+difference is that any change you make to a class affects all the
+objects of that class, even the ones that have already been instantiated.
+
+What creates these special "class" objects? Other special objects,
+called metaclasses.
 
 The default metaclass is called ``type`` and in the vast majority of
 cases it does the right thing. In some situations, however, you can
 gain leverage by modifying the way that classes are produced --
 typically by performing extra actions or injecting code. When this is
-the case, you can use *metaclass* programming to modify the way that
+the case, you can use *metaclass programming* to modify the way that
 some of your class objects are created.
 
 It's worth re-emphasizing that in *the vast majority of cases, you
 In Python 2.x, the metaclass hook is a static field in the class
 called ``__metaclass__``. In the ordinary case, this is not assigned
 so Python just uses ``type`` to create the class. But if you define
-``__metaclass__`` to point to a callable that takes four arguments,
-Python will call ``__metaclass__()`` after the initial creation of the
-class object, passing in the class object, the class name, the list of
-base classes and the namespace dictionary.
+``__metaclass__`` to point to a callable, Python will call
+``__metaclass__()`` after the initial creation of the class object,
+passing in the class object, the class name, the list of base classes
+and the namespace dictionary.
 
 Thus, the basic process of metaclass programming looks like this::
 
 
 Python 3 changes the metaclass hook. It doesn't disallow the
 ``__metaclass__`` field, but it ignores it. Instead, you use a keyword
-argument in the base-class list:
+argument in the base-class list::
+
+    class Simple1(object, metaclass = SimpleMeta1):
+	...
 
 This means that none of the (clever) alternative ways of defining
 ``__metaclass__`` directly as a class or function are available in
 classes. This is probably just as well, as it makes metaclass programs
 more consistent and thus easier to read and understand.
 
-
-
-
 .. Possible example: simplification of XML creation via operator
    overloading.
 
-
 Example: Self-Registration of Subclasses
 ================================================================================
 
 
     # Metaclasses/RegisterLeafClasses.py
 
-    class ClassSet(set):
-        "Simplify printing a set of classes"
-        def __str__(self):
-            return "(" + ", ".join([c.__name__ for c in self]) + ")"
-
     class RegisterLeafClasses(type):
         def __init__(cls, name, bases, nmspc):
             super(RegisterLeafClasses, cls).__init__(name, bases, nmspc)
             if not hasattr(cls, 'registry'):
-                cls.registry = ClassSet()
+                cls.registry = set()
             cls.registry.add(cls)
             cls.registry -= set(bases) # Remove base classes
+        # Metamethods, called on class objects:
+        def __iter__(cls):
+            return iter(cls.registry)
+        def __str__(cls):
+            if cls in cls.registry:
+                return cls.__name__
+            return cls.__name__ + ": " + ", ".join([sc.__name__ for sc in cls])
 
     class Color(object):
         __metaclass__ = RegisterLeafClasses
     class Red(Color): pass
     class Green(Color): pass
     class Yellow(Color): pass
-    print(Color.registry)
+    print(Color)
     class PhthaloBlue(Blue): pass
     class CeruleanBlue(Blue): pass
-    print(Color.registry)
+    print(Color)
+    for c in Color: # Iterate over subclasses
+        print(c)
 
     class Shape(object):
         __metaclass__ = RegisterLeafClasses
     class Square(Shape): pass
     class Triangular(Shape): pass
     class Boxy(Shape): pass
-    print(Shape.registry)
+    print(Shape)
     class Circle(Round): pass
     class Ellipse(Round): pass
-    print(Shape.registry)
+    print(Shape)
 
     """ Output:
-    (Red, Blue, Yellow, Green)
-    (Red, CeruleanBlue, Yellow, PhthaloBlue, Green)
-    (Square, Round, Boxy, Triangular)
-    (Square, Ellipse, Boxy, Circle, Triangular)
+    Color: Red, Blue, Green, Yellow
+    Color: Red, CeruleanBlue, Green, PhthaloBlue, Yellow
+    Red
+    CeruleanBlue
+    Green
+    PhthaloBlue
+    Yellow
+    Shape: Square, Round, Boxy, Triangular
+    Shape: Square, Ellipse, Circle, Boxy, Triangular
     """
 
 Two separate tests are used to show that the registries are
 level of leaf classes are added -- the former leaf becomes a base
 class, and so is removed from the registry.
 
+This also introduces *metamethods*, which are defined in the metaclass
+so that they become methods of the class. That is, you call them on
+the class rather than object instances, and their first argument is
+the class object rather than ``self``.
+
 Using Class Decorators
 --------------------------------------------------------------------------------
 
 Metaclass Conflicts
 ================================================================================
 
+Note that the ``metaclass`` argument is singular -- you can't attach
+more than one metaclass to a class. However, through multiple
+inheritance you can *accidentally* end up with more than one
+metaclass, and this produces a conflict which must be resolved.
+
 http://code.activestate.com/recipes/204197/
 
 Further Reading

src/QuickPython.rst

 	>>> f2.x
 	'b'
 
+If you assign, you get a new one. If it's modifiable, then unless you
+assign you are working on a singleton. So a typical pattern is::
+
+       class Foo:
+           something = None # Static: visible to all classes
+	   def f(self, x):
+	       if not self.something:
+	       	   self.something = [] # New local version for this object
+	       self.something.append(x)
+
+This is not a serious example because you would naturally just
+initialize ``something`` in ``Foo``\'s constructor.
+
+Useful Techniques
+=======================================================================
+
+- You can turn a list into function arguments using ``*``::
+
+      def f(a,b,c): print a, b, c
+      x = [1,2,3]
+      f(*x)
+      f(*(1,2,3))
+
+- Basic functional programming with ``map()`` etc.
+
 
 .. note:: Suggest Further Topics for inclusion in the introductory chapter
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.