Commits

Bruce Eckel committed bf31277

More Metaclasses work.

Comments (0)

Files changed (22)

code/Metaclasses/SingletonDecorator.py

+# Metaclasses/SingletonDecorator.py
+
+def singleton(klass):
+    "Simple replacement of object creation operation"
+    def getinstance(*args, **kw):
+        if not hasattr(klass, 'instance'):
+            klass.instance = klass(*args, **kw)
+        return klass.instance
+    return getinstance
+
+def singleton(klass):
+    """
+    More powerful approach: Change the behavior
+    of the instances AND the class object.
+    """
+    class Decorated(klass):
+        def __init__(self, *args, **kwargs):
+            if hasattr(klass, '__init__'):
+                klass.__init__(self, *args, **kwargs)
+        def __repr__(self) : return klass.__name__ + " obj"
+        __str__ = __repr__
+    Decorated.__name__ = klass.__name__
+    class ClassObject:
+        def __init__(cls):
+            cls.instance = None
+        def __repr__(cls): 
+            return klass.__name__
+        __str__ = __repr__
+        def __call__(cls, *args, **kwargs):
+            print str(cls) + " __call__ "
+            if not cls.instance:
+                cls.instance = Decorated(*args, **kwargs)
+            return cls.instance
+    return ClassObject()
+
+@singleton
+class ASingleton: pass
+
+a = ASingleton()
+b = ASingleton()
+print(a, b)
+print a.__class__.__name__
+print ASingleton
+assert a is b
+
+@singleton
+class BSingleton:
+    def __init__(self, x):
+        self.x = x
+
+c = BSingleton(11)
+d = BSingleton(22)
+assert c is d
+assert c is not a
+
+""" Output:
+ASingleton __call__ 
+ASingleton __call__ 
+(ASingleton obj, ASingleton obj)
+ASingleton
+ASingleton
+BSingleton __call__ 
+BSingleton __call__ 
+"""

html/Decorator.html

 <p>Tradeoff: coding is more complicated when using decorators</p>
 <div class="section" id="basic-decorator-structure">
 <h2>Basic Decorator Structure<a class="headerlink" href="#basic-decorator-structure" title="Permalink to this headline">¶</a></h2>
-<img alt="_images/decorator.gif" src="_images/decorator.gif" />
+<img alt="_images/decorator1.gif" src="_images/decorator1.gif" />
 </div>
 <div class="section" id="a-coffee-example">
 <h2>A Coffee Example<a class="headerlink" href="#a-coffee-example" title="Permalink to this headline">¶</a></h2>
 <p>One solution is to create an individual class for every combination. Each class
 describes the drink and is responsible for the cost etc. The resulting menu is
 huge, and a part of the class diagram would look something like this:</p>
-<img alt="_images/coffeeExplosion.gif" src="_images/coffeeExplosion.gif" />
+<img alt="_images/coffeeExplosion1.gif" src="_images/coffeeExplosion1.gif" />
 <p>The key to using this method is to find the particular combination you want.
 So, once you&#8217;ve found the drink you would like, here is how you would use it, as
 shown in the <strong>CoffeeShop</strong> class in the following code:</p>
 adds responsibility to a component by wrapping it, but the Decorator conforms to
 the interface of the component it encloses, so the wrapping is transparent.
 Decorators can also be nested without the loss of this transparency.</p>
-<img alt="_images/decoratedCoffee.gif" src="_images/decoratedCoffee.gif" />
+<img alt="_images/decoratedCoffee1.gif" src="_images/decoratedCoffee1.gif" />
 <p>Methods invoked on the Decorator can in turn invoke methods in the component,
 and can of course perform processing before or after the invocation.</p>
 <p>So if we added <strong>getTotalCost()</strong> and <strong>getDescription()</strong> methods to the
 they are, but if you wanted to decorate them (whipped cream, decaf etc.) then
 you would use decorators to make the modifications. This is the type of menu you
 are presented with in most coffee shops.</p>
-<img alt="_images/compromiseDecoration.gif" src="_images/compromiseDecoration.gif" />
+<img alt="_images/compromiseDecoration1.gif" src="_images/compromiseDecoration1.gif" />
 <p>Here is how to create a basic selection, as well as a decorated selection:</p>
 <div class="highlight-python"><pre># Decorator/compromise/CoffeeShop.py
 # Coffee example with a compromise of basic
 need to change a method in each class, and thus maintain many classes. By using
 decorators, maintenance is reduced by defining the logic in one place.</p>
 </div>
+<div class="section" id="further-reading">
+<h2>Further Reading<a class="headerlink" href="#further-reading" title="Permalink to this headline">¶</a></h2>
+<blockquote>
+<p>Philip Eby introduces decorators: <a class="reference external" href="http://www.ddj.com/web-development/184406073">http://www.ddj.com/web-development/184406073</a></p>
+<dl class="docutils">
+<dt>Class Decorators:</dt>
+<dd><ul class="first last simple">
+<li><a class="reference external" href="http://www.informit.com/articles/article.aspx?p=1309289&amp;seqNum=4">http://www.informit.com/articles/article.aspx?p=1309289&amp;seqNum=4</a></li>
+</ul>
+</dd>
+</dl>
+</blockquote>
+</div>
 <div class="section" id="exercises">
 <h2>Exercises<a class="headerlink" href="#exercises" title="Permalink to this headline">¶</a></h2>
 <ol class="arabic simple">
 <li><a class="reference external" href="#the-decorator-approach">The Decorator Approach</a></li>
 <li><a class="reference external" href="#compromise">Compromise</a></li>
 <li><a class="reference external" href="#other-considerations">Other Considerations</a></li>
+<li><a class="reference external" href="#further-reading">Further Reading</a></li>
 <li><a class="reference external" href="#exercises">Exercises</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 24, 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-41"></span><h1>Metaclasses<a class="headerlink" href="#metaclasses" title="Permalink to this headline">¶</a></h1>
+<span id="index-42"></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
 class-specific <tt class="docutils literal"><span class="pre">instance</span></tt> field (thus <tt class="docutils literal"><span class="pre">instance</span></tt> is not somehow
 being &#8220;inherited&#8221; from the metaclass).</p>
 </div>
+<div class="section" id="a-class-decorator-singleton">
+<h3>A Class Decorator Singleton<a class="headerlink" href="#a-class-decorator-singleton" title="Permalink to this headline">¶</a></h3>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># Metaclasses/SingletonDecorator.py</span>
+
+<span class="k">def</span> <span class="nf">singleton</span><span class="p">(</span><span class="n">klass</span><span class="p">):</span>
+    <span class="s">&quot;Simple replacement of object creation operation&quot;</span>
+    <span class="k">def</span> <span class="nf">getinstance</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</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">klass</span><span class="p">,</span> <span class="s">&#39;instance&#39;</span><span class="p">):</span>
+            <span class="n">klass</span><span class="o">.</span><span class="n">instance</span> <span class="o">=</span> <span class="n">klass</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span>
+        <span class="k">return</span> <span class="n">klass</span><span class="o">.</span><span class="n">instance</span>
+    <span class="k">return</span> <span class="n">getinstance</span>
+
+<span class="k">def</span> <span class="nf">singleton</span><span class="p">(</span><span class="n">klass</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">    More powerful approach: Change the behavior</span>
+<span class="sd">    of the instances AND the class object.</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="k">class</span> <span class="nc">Decorated</span><span class="p">(</span><span class="n">klass</span><span class="p">):</span>
+        <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+            <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">klass</span><span class="p">,</span> <span class="s">&#39;__init__&#39;</span><span class="p">):</span>
+                <span class="n">klass</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+        <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="p">:</span> <span class="k">return</span> <span class="n">klass</span><span class="o">.</span><span class="n">__name__</span> <span class="o">+</span> <span class="s">&quot; obj&quot;</span>
+        <span class="n">__str__</span> <span class="o">=</span> <span class="n">__repr__</span>
+    <span class="n">Decorated</span><span class="o">.</span><span class="n">__name__</span> <span class="o">=</span> <span class="n">klass</span><span class="o">.</span><span class="n">__name__</span>
+    <span class="k">class</span> <span class="nc">ClassObject</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">cls</span><span class="o">.</span><span class="n">instance</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="n">cls</span><span class="p">):</span>
+            <span class="k">return</span> <span class="n">klass</span><span class="o">.</span><span class="n">__name__</span>
+        <span class="n">__str__</span> <span class="o">=</span> <span class="n">__repr__</span>
+        <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="n">cls</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+            <span class="k">print</span> <span class="nb">str</span><span class="p">(</span><span class="n">cls</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot; __call__ &quot;</span>
+            <span class="k">if</span> <span class="ow">not</span> <span class="n">cls</span><span class="o">.</span><span class="n">instance</span><span class="p">:</span>
+                <span class="n">cls</span><span class="o">.</span><span class="n">instance</span> <span class="o">=</span> <span class="n">Decorated</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
+            <span class="k">return</span> <span class="n">cls</span><span class="o">.</span><span class="n">instance</span>
+    <span class="k">return</span> <span class="n">ClassObject</span><span class="p">()</span>
+
+<span class="nd">@singleton</span>
+<span class="k">class</span> <span class="nc">ASingleton</span><span class="p">:</span> <span class="k">pass</span>
+
+<span class="n">a</span> <span class="o">=</span> <span class="n">ASingleton</span><span class="p">()</span>
+<span class="n">b</span> <span class="o">=</span> <span class="n">ASingleton</span><span class="p">()</span>
+<span class="k">print</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="k">print</span> <span class="n">a</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">__name__</span>
+<span class="k">print</span> <span class="n">ASingleton</span>
+<span class="k">assert</span> <span class="n">a</span> <span class="ow">is</span> <span class="n">b</span>
+
+<span class="nd">@singleton</span>
+<span class="k">class</span> <span class="nc">BSingleton</span><span class="p">:</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">x</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">x</span> <span class="o">=</span> <span class="n">x</span>
+
+<span class="n">c</span> <span class="o">=</span> <span class="n">BSingleton</span><span class="p">(</span><span class="mf">11</span><span class="p">)</span>
+<span class="n">d</span> <span class="o">=</span> <span class="n">BSingleton</span><span class="p">(</span><span class="mf">22</span><span class="p">)</span>
+<span class="k">assert</span> <span class="n">c</span> <span class="ow">is</span> <span class="n">d</span>
+<span class="k">assert</span> <span class="n">c</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">a</span>
+
+<span class="sd">&quot;&quot;&quot; Output:</span>
+<span class="sd">ASingleton __call__</span>
+<span class="sd">ASingleton __call__</span>
+<span class="sd">(ASingleton obj, ASingleton obj)</span>
+<span class="sd">ASingleton</span>
+<span class="sd">ASingleton</span>
+<span class="sd">BSingleton __call__</span>
+<span class="sd">BSingleton __call__</span>
+<span class="sd">&quot;&quot;&quot;</span>
+</pre></div>
+</div>
+</div>
 </div>
 <div class="section" id="metaclass-conflicts">
 <h2>Metaclass Conflicts<a class="headerlink" href="#metaclass-conflicts" title="Permalink to this headline">¶</a></h2>
 <li><a class="reference external" href="#using-init-vs-new-in-metaclasses">Using <tt class="docutils literal"><span class="pre">__init__</span></tt> vs. <tt class="docutils literal"><span class="pre">__new__</span></tt> in Metaclasses</a></li>
 <li><a class="reference external" href="#class-methods-and-metamethods">Class Methods and Metamethods</a><ul>
 <li><a class="reference external" href="#intercepting-class-creation">Intercepting Class Creation</a></li>
+<li><a class="reference external" href="#a-class-decorator-singleton">A Class Decorator Singleton</a></li>
 </ul>
 </li>
 <li><a class="reference external" href="#metaclass-conflicts">Metaclass Conflicts</a></li>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 23, 2009.
+      Last updated on Jan 24, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

html/PatternConcept.html

 handful of fundamental ideas that can be held in your head while you analyze a
 problem. However, other ideas that come from this list may end up being useful
 as a checklist while walking through and analyzing your design.</p>
+</div>
+<div class="section" id="further-reading">
+<h2>Further Reading<a class="headerlink" href="#further-reading" title="Permalink to this headline">¶</a></h2>
+<blockquote>
+Alex Martelli&#8217;s Video Lectures on Design Patterns in Python:
+<a class="reference external" href="http://www.catonmat.net/blog/learning-python-design-patterns-through-video-lectures/">http://www.catonmat.net/blog/learning-python-design-patterns-through-video-lectures/</a></blockquote>
 <p class="rubric">Footnotes</p>
 <table class="docutils footnote" frame="void" id="id7" rules="none">
 <colgroup><col class="label" /><col /></colgroup>
 <li><a class="reference external" href="#pattern-taxonomy">Pattern Taxonomy</a></li>
 <li><a class="reference external" href="#design-structures">Design Structures</a></li>
 <li><a class="reference external" href="#design-principles">Design Principles</a></li>
+<li><a class="reference external" href="#further-reading">Further Reading</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 24, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

html/QuickPython.html

 </pre></div>
 </div>
 </li>
+<li><p class="first">You can compose classes using <tt class="docutils literal"><span class="pre">import</span></tt>. Here&#8217;s a method that can
+be reused by multiple classes:</p>
+<blockquote>
+<p># QuickPython/utility.py
+def f(self): print &#8220;utility.f()!!!&#8221;</p>
+</blockquote>
+<p>Here&#8217;s how you compose that method into a class:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="c"># QuickPython/compose.py</span>
+
+<span class="k">class</span> <span class="nc">Compose</span><span class="p">:</span>
+     <span class="kn">from</span> <span class="nn">utility</span> <span class="kn">import</span> <span class="n">f</span>
+
+<span class="n">Compose</span><span class="p">()</span><span class="o">.</span><span class="n">f</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>
 <p class="last">Suggest Further Topics for inclusion in the introductory chapter</p>
 </div>
 </div>
+<div class="section" id="further-reading">
+<h2>Further Reading<a class="headerlink" href="#further-reading" title="Permalink to this headline">¶</a></h2>
+<blockquote>
+Python Programming FAQ:
+<a class="reference external" href="http://www.python.org/doc/faq/programming/">http://www.python.org/doc/faq/programming/</a></blockquote>
+</div>
 </div>
 
 
 </ul>
 </li>
 <li><a class="reference external" href="#useful-techniques">Useful Techniques</a></li>
+<li><a class="reference external" href="#further-reading">Further Reading</a></li>
 </ul>
 </li>
 </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 23, 2009.
+      Last updated on Jan 24, 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 23, 2009.
+      Last updated on Jan 24, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>
Add a comment to this file

html/_images/coffeeExplosion1.gif

Added
New image
Add a comment to this file

html/_images/compromiseDecoration1.gif

Added
New image
Add a comment to this file

html/_images/decoratedCoffee1.gif

Added
New image
Add a comment to this file

html/_images/decorator1.gif

Added
New image

html/_sources/Decorator.txt

 need to change a method in each class, and thus maintain many classes. By using
 decorators, maintenance is reduced by defining the logic in one place.
 
+Further Reading
+=======================================================================
+
+    Philip Eby introduces decorators: http://www.ddj.com/web-development/184406073
+
+    Class Decorators:
+    	  - http://www.informit.com/articles/article.aspx?p=1309289&seqNum=4
+
 Exercises
 =======================================================================
 

html/_sources/Metaclasses.txt

 class-specific ``instance`` field (thus ``instance`` is not somehow
 being "inherited" from the metaclass).
 
-.. class decorator version that modifies __new__().
+A Class Decorator Singleton
+--------------------------------------------------------------------------------
+
+::
+
+    # Metaclasses/SingletonDecorator.py
+
+    def singleton(klass):
+        "Simple replacement of object creation operation"
+        def getinstance(*args, **kw):
+            if not hasattr(klass, 'instance'):
+                klass.instance = klass(*args, **kw)
+            return klass.instance
+        return getinstance
+
+    def singleton(klass):
+        """
+        More powerful approach: Change the behavior
+        of the instances AND the class object.
+        """
+        class Decorated(klass):
+            def __init__(self, *args, **kwargs):
+                if hasattr(klass, '__init__'):
+                    klass.__init__(self, *args, **kwargs)
+            def __repr__(self) : return klass.__name__ + " obj"
+            __str__ = __repr__
+        Decorated.__name__ = klass.__name__
+        class ClassObject:
+            def __init__(cls):
+                cls.instance = None
+            def __repr__(cls): 
+                return klass.__name__
+            __str__ = __repr__
+            def __call__(cls, *args, **kwargs):
+                print str(cls) + " __call__ "
+                if not cls.instance:
+                    cls.instance = Decorated(*args, **kwargs)
+                return cls.instance
+        return ClassObject()
+
+    @singleton
+    class ASingleton: pass
+
+    a = ASingleton()
+    b = ASingleton()
+    print(a, b)
+    print a.__class__.__name__
+    print ASingleton
+    assert a is b
+
+    @singleton
+    class BSingleton:
+        def __init__(self, x):
+            self.x = x
+
+    c = BSingleton(11)
+    d = BSingleton(22)
+    assert c is d
+    assert c is not a
+
+    """ Output:
+    ASingleton __call__ 
+    ASingleton __call__ 
+    (ASingleton obj, ASingleton obj)
+    ASingleton
+    ASingleton
+    BSingleton __call__ 
+    BSingleton __call__ 
+    """
+
 
 Metaclass Conflicts
 ================================================================================

html/_sources/PatternConcept.txt

 problem. However, other ideas that come from this list may end up being useful
 as a checklist while walking through and analyzing your design.
 
+Further Reading
+==================================================================================
+
+    Alex Martelli's Video Lectures on Design Patterns in Python:
+    http://www.catonmat.net/blog/learning-python-design-patterns-through-video-lectures/
+
 .. rubric:: Footnotes
 
 .. [#] From Mark Johnson.

html/_sources/QuickPython.txt

       f(*x)
       f(*(1,2,3))
 
+- You can compose classes using ``import``. Here's a method that can
+  be reused by multiple classes:
+
+      # QuickPython/utility.py                                                        
+      def f(self): print "utility.f()!!!"
+
+  Here's how you compose that method into a class::
+
+      # QuickPython/compose.py                                                        
+
+      class Compose:
+      	   from utility import f
+
+      Compose().f()
+
 - Basic functional programming with ``map()`` etc.
 
 
 .. note:: Suggest Further Topics for inclusion in the introductory chapter
 
+Further Reading
+===========================================================================
 
+	Python Programming FAQ:
+	http://www.python.org/doc/faq/programming/
 
-
+	

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

src/Decorator.rst

 need to change a method in each class, and thus maintain many classes. By using
 decorators, maintenance is reduced by defining the logic in one place.
 
+Further Reading
+=======================================================================
+
+    Philip Eby introduces decorators: http://www.ddj.com/web-development/184406073
+
+    Class Decorators:
+    	  - http://www.informit.com/articles/article.aspx?p=1309289&seqNum=4
+
 Exercises
 =======================================================================
 

src/Metaclasses.rst

 class-specific ``instance`` field (thus ``instance`` is not somehow
 being "inherited" from the metaclass).
 
-.. class decorator version that modifies __new__().
+A Class Decorator Singleton
+--------------------------------------------------------------------------------
+
+::
+
+    # Metaclasses/SingletonDecorator.py
+
+    def singleton(klass):
+        "Simple replacement of object creation operation"
+        def getinstance(*args, **kw):
+            if not hasattr(klass, 'instance'):
+                klass.instance = klass(*args, **kw)
+            return klass.instance
+        return getinstance
+
+    def singleton(klass):
+        """
+        More powerful approach: Change the behavior
+        of the instances AND the class object.
+        """
+        class Decorated(klass):
+            def __init__(self, *args, **kwargs):
+                if hasattr(klass, '__init__'):
+                    klass.__init__(self, *args, **kwargs)
+            def __repr__(self) : return klass.__name__ + " obj"
+            __str__ = __repr__
+        Decorated.__name__ = klass.__name__
+        class ClassObject:
+            def __init__(cls):
+                cls.instance = None
+            def __repr__(cls): 
+                return klass.__name__
+            __str__ = __repr__
+            def __call__(cls, *args, **kwargs):
+                print str(cls) + " __call__ "
+                if not cls.instance:
+                    cls.instance = Decorated(*args, **kwargs)
+                return cls.instance
+        return ClassObject()
+
+    @singleton
+    class ASingleton: pass
+
+    a = ASingleton()
+    b = ASingleton()
+    print(a, b)
+    print a.__class__.__name__
+    print ASingleton
+    assert a is b
+
+    @singleton
+    class BSingleton:
+        def __init__(self, x):
+            self.x = x
+
+    c = BSingleton(11)
+    d = BSingleton(22)
+    assert c is d
+    assert c is not a
+
+    """ Output:
+    ASingleton __call__ 
+    ASingleton __call__ 
+    (ASingleton obj, ASingleton obj)
+    ASingleton
+    ASingleton
+    BSingleton __call__ 
+    BSingleton __call__ 
+    """
+
 
 Metaclass Conflicts
 ================================================================================

src/PatternConcept.rst

 problem. However, other ideas that come from this list may end up being useful
 as a checklist while walking through and analyzing your design.
 
+Further Reading
+==================================================================================
+
+    Alex Martelli's Video Lectures on Design Patterns in Python:
+    http://www.catonmat.net/blog/learning-python-design-patterns-through-video-lectures/
+
 .. rubric:: Footnotes
 
 .. [#] From Mark Johnson.

src/QuickPython.rst

 
 .. note:: Suggest Further Topics for inclusion in the introductory chapter
 
+Further Reading
+===========================================================================
 
+	Python Programming FAQ:
+	http://www.python.org/doc/faq/programming/
+
+	
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.