Commits

Bruce Eckel  committed 421a6cf

Many random changes but I'm just doing this because I'm switching from my laptop to my desktop.

  • Participants
  • Parent commits bf31277

Comments (0)

Files changed (45)

File code/Metaclasses/Final.py

 
 class final(type):
     def __init__(cls, name, bases, namespace):
+        super(final, cls).__init__(name, bases, namespace)
         for klass in bases:
             if isinstance(klass, final):
                 raise TypeError(str(klass.__name__) + " is final")
-        super(final, cls).__init__(name, bases, namespace)
 
 class A(object):
     pass
 class B(A):
     __metaclass__= final
 
+print B.__bases__
+print isinstance(B, final)
+
 # Produces compile-time error:
 class C(B):
     pass
 
 """ Output:
+(<class '__main__.A'>,)
+True
 ...
 TypeError: B is final
 """

File code/Metaclasses/FinalDecorator.py

+# Metaclasses/FinalDecorator.py
+
+"""
+class final(type):
+    def __init__(cls, name, bases, namespace):
+        super(final, cls).__init__(name, bases, namespace)
+        for klass in bases:
+            if isinstance(klass, final):
+                raise TypeError(str(klass.__name__) + " is final")
+"""
+class Final(object): pass
+
+def final(cls):
+    cls.__bases__ += (Final,)
+    print cls.__bases__
+    def __init__(cls, name, bases, namespace):
+        super(Final, cls).__init__(name, bases, namespace)
+        for klass in bases:
+            if isinstance(klass, Final):
+                raise TypeError(str(klass.__name__) + " is Final")
+    cls.__class__ = Final
+    return cls
+
+class A(object): pass
+
+@final
+class B(A): pass
+
+
+# Produces compile-time error:
+class C(B):
+    pass
+
+""" Output:
+...
+TypeError: B is final
+"""

File code/PythonForProgrammers/ForgottenInitialization.py

+# QuickPython/ForgottenInitialization.py
+
+class Base(object):
+     def __init__(self, x):
+          self.x = x
+     def f(self):
+          print(self.x)
+
+class Derived1(Base):
+     # Base __init__() is passed through
+     pass
+
+Derived1(11).f()
+
+class Derived2(Base):
+     def __init__(self, y):
+          "Init redefined, but forgot to call base-class init"
+          self.y = y
+     def f2(self):
+          print(self.y)
+
+d = Derived2(22)
+d.f2()
+try:
+     d.f()
+except:
+     print "call to f() failed"
+
+class Derived3(Base):
+     def __init__(self, y):
+          "Base-class call remembered"
+          super(Derived3, self).__init__(y)
+
+d = Derived3(33)
+d.f()

File code/PythonForProgrammers/Initialization.py

+# QuickPython/Initialization.py
+"""
+For text:
+1) Doesn't automatically call base class constructor except in 1 special case.
+2) Doesn't force base-class constructor call to happen first.
+3) __new__ is always called
+4) __new__ isn't always called first except in default case.
+
+Do the python syntax checkers check for this?
+PyChecker, pylint, PyFlakes
+"""
+
+def trace(msg, self_dscr, self, *args, **kwargs):
+     print (msg + "\n" 
+            + self_dscr + ": " + str(self) 
+            + ", args: " + str(args) 
+            + ", kwargs: " + str(kwargs))
+
+class Foo(object):
+     def __new__(cls, *args, **kwargs):
+          trace("in Foo new", "cls", cls, *args, **kwargs) 
+          return super(Foo, cls).__new__(cls)
+     def __init__(self, *args, **kwargs):
+          super(Foo, self).__init__()
+          trace("in Foo init", "self", self, *args, **kwargs)
+
+print "Creating Foo object:"
+f = Foo()
+
+class Bar(Foo):
+    def __init__(self, x):
+         print "in Bar init"
+
+print "Creating Bar object:"
+b = Bar(1) 
+
+class Baz(Foo):
+    def __init__(self, x):
+         super(Baz, self).__init__(self, x)
+         print "in Baz init"
+
+print "Creating Baz object:"
+b = Baz(1) 
+
+class DefaultInit(object):
+     def __init__(self):
+          print "in DefaultInit"
+
+class Derived(DefaultInit): pass
+
+d = Derived()
+
+class Derived2(DefaultInit):
+     def __init__(self):
+          print "in Derived2 init"
+
+d2 = Derived2()

File code/PythonForProgrammers/Simple2.py

+# QuickPython/Simple2.py
+from SimpleClass import Simple
+
+class Simple2(Simple):
+    def __init__(self, str):
+        print("Inside Simple2 constructor")
+        # You must explicitly call
+        # the base-class constructor:
+        Simple.__init__(self, str)
+    def display(self):
+        self.showMsg("Called from display()")
+    # Overriding a base-class method
+    def show(self):
+        print("Overridden show() method")
+        # Calling a base-class method from inside
+        # the overridden method:
+        Simple.show(self)
+
+class Different:
+    def show(self):
+        print("Not derived from Simple")
+
+if __name__ == "__main__":
+    x = Simple2("Simple2 constructor argument")
+    x.display()
+    x.show()
+    x.showMsg("Inside main")
+    def f(obj): obj.show() # One-line definition
+    f(x)
+    f(Different())

File code/PythonForProgrammers/SimpleClass.py

+# QuickPython/SimpleClass.py
+class Simple:
+    def __init__(self, str):
+        print("Inside the Simple constructor")
+        self.s = str
+    # Two methods:
+    def show(self):
+        print(self.s)
+    def showMsg(self, msg):
+        print(msg + ':',
+        self.show()) # Calling another method
+
+if __name__ == "__main__":
+    # Create an object:
+    x = Simple("constructor argument")
+    x.show()
+    x.showMsg("A message")

File code/PythonForProgrammers/differentReturns.py

+# QuickPython/differentReturns.py
+def differentReturns(arg):
+    if arg == 1:
+        return "one"
+    if arg == "one":
+        return True
+
+print(differentReturns(1))
+print(differentReturns("one"))

File code/PythonForProgrammers/if.py

+# QuickPython/if.py
+response = "yes"
+if response == "yes":
+    print("affirmative")
+    val = 1
+print("continuing...")

File code/PythonForProgrammers/list.py

+# QuickPython/list.py
+list = [ 1, 3, 5, 7, 9, 11 ]
+print(list)
+list.append(13)
+for x in list:
+    print(x)

File code/PythonForProgrammers/myFunction.py

+# QuickPython/myFunction.py
+def myFunction(response):
+    val = 0
+    if response == "yes":
+        print("affirmative")
+        val = 1
+    print("continuing...")
+    return val
+
+print(myFunction("no"))
+print(myFunction("yes"))

File code/PythonForProgrammers/stringFormatting.py

+# QuickPython/stringFormatting.py
+val = 47
+print("The number is %d" % val)
+val2 = 63.4
+s = "val: %d, val2: %f" % (val, val2)
+print(s)

File code/PythonForProgrammers/strings.py

+# QuickPython/strings.py
+print("That isn't a horse")
+print('You are not a "Viking"')
+print("""You're just pounding two
+coconut halves together.""")
+print('''"Oh no!" He exclaimed.
+"It's the blemange!"''')
+print(r'c:\python\lib\utils')

File code/PythonForProgrammers/sum.py

+# QuickPython/sum.py
+def sum(arg1, arg2):
+    return arg1 + arg2
+
+print(sum(42, 47))
+print(sum('spam ', "eggs"))

File code/QuickPython/Simple2.py

-# QuickPython/Simple2.py
-from SimpleClass import Simple
-
-class Simple2(Simple):
-    def __init__(self, str):
-        print("Inside Simple2 constructor")
-        # You must explicitly call
-        # the base-class constructor:
-        Simple.__init__(self, str)
-    def display(self):
-        self.showMsg("Called from display()")
-    # Overriding a base-class method
-    def show(self):
-        print("Overridden show() method")
-        # Calling a base-class method from inside
-        # the overridden method:
-        Simple.show(self)
-
-class Different:
-    def show(self):
-        print("Not derived from Simple")
-
-if __name__ == "__main__":
-    x = Simple2("Simple2 constructor argument")
-    x.display()
-    x.show()
-    x.showMsg("Inside main")
-    def f(obj): obj.show() # One-line definition
-    f(x)
-    f(Different())

File code/QuickPython/SimpleClass.py

-# QuickPython/SimpleClass.py
-class Simple:
-    def __init__(self, str):
-        print("Inside the Simple constructor")
-        self.s = str
-    # Two methods:
-    def show(self):
-        print(self.s)
-    def showMsg(self, msg):
-        print(msg + ':',
-        self.show()) # Calling another method
-
-if __name__ == "__main__":
-    # Create an object:
-    x = Simple("constructor argument")
-    x.show()
-    x.showMsg("A message")

File code/QuickPython/differentReturns.py

-# QuickPython/differentReturns.py
-def differentReturns(arg):
-    if arg == 1:
-        return "one"
-    if arg == "one":
-        return True
-
-print(differentReturns(1))
-print(differentReturns("one"))

File code/QuickPython/if.py

-# QuickPython/if.py
-response = "yes"
-if response == "yes":
-    print("affirmative")
-    val = 1
-print("continuing...")

File code/QuickPython/list.py

-# QuickPython/list.py
-list = [ 1, 3, 5, 7, 9, 11 ]
-print(list)
-list.append(13)
-for x in list:
-    print(x)

File code/QuickPython/myFunction.py

-# QuickPython/myFunction.py
-def myFunction(response):
-    val = 0
-    if response == "yes":
-        print("affirmative")
-        val = 1
-    print("continuing...")
-    return val
-
-print(myFunction("no"))
-print(myFunction("yes"))

File code/QuickPython/stringFormatting.py

-# QuickPython/stringFormatting.py
-val = 47
-print("The number is %d" % val)
-val2 = 63.4
-s = "val: %d, val2: %f" % (val, val2)
-print(s)

File code/QuickPython/strings.py

-# QuickPython/strings.py
-print("That isn't a horse")
-print('You are not a "Viking"')
-print("""You're just pounding two
-coconut halves together.""")
-print('''"Oh no!" He exclaimed.
-"It's the blemange!"''')
-print(r'c:\python\lib\utils')

File code/QuickPython/sum.py

-# QuickPython/sum.py
-def sum(arg1, arg2):
-    return arg1 + arg2
-
-print(sum(42, 47))
-print(sum('spam ', "eggs"))

File 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/decorator1.gif" src="_images/decorator1.gif" />
+<img alt="_images/decorator2.gif" src="_images/decorator2.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/coffeeExplosion1.gif" src="_images/coffeeExplosion1.gif" />
+<img alt="_images/coffeeExplosion2.gif" src="_images/coffeeExplosion2.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/decoratedCoffee1.gif" src="_images/decoratedCoffee1.gif" />
+<img alt="_images/decoratedCoffee2.gif" src="_images/decoratedCoffee2.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/compromiseDecoration1.gif" src="_images/compromiseDecoration1.gif" />
+<img alt="_images/compromiseDecoration2.gif" src="_images/compromiseDecoration2.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
 </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>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 24, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/Jython.html

         <span class="n">Event</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
 
     <span class="k">def</span> <span class="nf">__cmp__</span> <span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span>
-        <span class="sd">&quot;&quot;&quot;</span>
-<span class="sd">        So sort() will compare only on time.</span>
-<span class="sd">        &quot;&quot;&quot;</span>
-        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">time</span> <span class="o">&lt;</span> <span class="n">other</span><span class="o">.</span><span class="n">time</span><span class="p">:</span> <span class="k">return</span> <span class="o">-</span><span class="mf">1</span>
-        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">time</span> <span class="o">&gt;</span> <span class="n">other</span><span class="o">.</span><span class="n">time</span><span class="p">:</span> <span class="k">return</span> <span class="mf">1</span>
-        <span class="k">return</span> <span class="mf">0</span>
+        <span class="s">&quot;So sort() will compare only on time.&quot;</span>
+        <span class="k">return</span> <span class="nb">cmp</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time</span><span class="p">,</span> <span class="n">other</span><span class="o">.</span><span class="n">time</span><span class="p">)</span>
 
     <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
         <span class="k">print</span><span class="p">(</span><span class="s">&quot;</span><span class="si">%.2f</span><span class="s">: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">time</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">action</span><span class="p">))</span>
 
+    <span class="nd">@staticmethod</span>
+    <span class="k">def</span> <span class="nf">run_events</span><span class="p">():</span>
+        <span class="n">Event</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">sort</span><span class="p">();</span>
+        <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">Event</span><span class="o">.</span><span class="n">events</span><span class="p">:</span>
+            <span class="n">e</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
+
 <span class="k">class</span> <span class="nc">LightOn</span><span class="p">(</span><span class="n">Event</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">time</span><span class="p">):</span>
         <span class="n">Event</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="s">&quot;Light on&quot;</span><span class="p">,</span> <span class="n">time</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">time</span><span class="p">):</span>
         <span class="n">Event</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="s">&quot;Ring bell&quot;</span><span class="p">,</span> <span class="n">time</span><span class="p">)</span>
 
-<span class="k">def</span> <span class="nf">run</span><span class="p">():</span>
-    <span class="n">Event</span><span class="o">.</span><span class="n">events</span><span class="o">.</span><span class="n">sort</span><span class="p">();</span>
-    <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">Event</span><span class="o">.</span><span class="n">events</span><span class="p">:</span>
-        <span class="n">e</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
-
 <span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
     <span class="n">ThermostatNight</span><span class="p">(</span><span class="mf">5.00</span><span class="p">)</span>
     <span class="n">LightOff</span><span class="p">(</span><span class="mf">2.00</span><span class="p">)</span>
     <span class="n">LightOn</span><span class="p">(</span><span class="mf">1.00</span><span class="p">)</span>
     <span class="n">ThermostatDay</span><span class="p">(</span><span class="mf">6.00</span><span class="p">)</span>
     <span class="n">Bell</span><span class="p">(</span><span class="mf">7.00</span><span class="p">)</span>
-    <span class="n">run</span><span class="p">()</span>
+    <span class="n">Event</span><span class="o">.</span><span class="n">run_events</span><span class="p">()</span>
 </pre></div>
 </div>
 <div class="admonition note">
 <span class="k">print</span><span class="p">(</span><span class="n">jc</span><span class="o">.</span><span class="n">val</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="admonition-todo admonition " id="todo-8">
+<div class="admonition-todo admonition " id="todo-43">
 <p class="first admonition-title">Todo</p>
 <p class="last">rewrite to distinguish python generator from above description, or
 choose different name.</p>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/Metaclasses.html

           <div class="body">
             
   <div class="section" id="metaclasses">
-<span id="index-42"></span><h1>Metaclasses<a class="headerlink" href="#metaclasses" title="Permalink to this headline">¶</a></h1>
+<span id="index-44"></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
 needed to be processed. Each <strong>Language</strong> subclass described specific
 processing traits for that language.</p>
 <p>To solve this problem, consider a system that automatically keeps a
-list of all of it&#8217;s &#8220;leaf&#8221; subclasses (only the classes that have no
+list of all of its &#8220;leaf&#8221; subclasses (only the classes that have no
 inheritors). This way we can easily enumerate through all the
 subtypes:</p>
 <div class="highlight-python"><div class="highlight"><pre><span class="c"># Metaclasses/RegisterLeafClasses.py</span>
 
 <span class="k">class</span> <span class="nc">final</span><span class="p">(</span><span class="nb">type</span><span class="p">):</span>
     <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="n">cls</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">namespace</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span class="n">final</span><span class="p">,</span> <span class="n">cls</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span>
         <span class="k">for</span> <span class="n">klass</span> <span class="ow">in</span> <span class="n">bases</span><span class="p">:</span>
             <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">klass</span><span class="p">,</span> <span class="n">final</span><span class="p">):</span>
                 <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">klass</span><span class="o">.</span><span class="n">__name__</span><span class="p">)</span> <span class="o">+</span> <span class="s">&quot; is final&quot;</span><span class="p">)</span>
-        <span class="nb">super</span><span class="p">(</span><span class="n">final</span><span class="p">,</span> <span class="n">cls</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span>
 
 <span class="k">class</span> <span class="nc">A</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
     <span class="k">pass</span>
 <span class="k">class</span> <span class="nc">B</span><span class="p">(</span><span class="n">A</span><span class="p">):</span>
     <span class="n">__metaclass__</span><span class="o">=</span> <span class="n">final</span>
 
+<span class="k">print</span> <span class="n">B</span><span class="o">.</span><span class="n">__bases__</span>
+<span class="k">print</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">B</span><span class="p">,</span> <span class="n">final</span><span class="p">)</span>
+
 <span class="c"># Produces compile-time error:</span>
 <span class="k">class</span> <span class="nc">C</span><span class="p">(</span><span class="n">B</span><span class="p">):</span>
     <span class="k">pass</span>
 
 <span class="sd">&quot;&quot;&quot; Output:</span>
+<span class="sd">(&lt;class &#39;__main__.A&#39;&gt;,)</span>
+<span class="sd">True</span>
 <span class="sd">...</span>
 <span class="sd">TypeError: B is final</span>
 <span class="sd">&quot;&quot;&quot;</span>
 </pre></div>
 </div>
+<p>During class object creation, we check to see if any of the bases are
+derived from <tt class="docutils literal"><span class="pre">final</span></tt>. Notice that using a metaclass makes the new
+type an instance of that metaclass, even though the metaclass doesn&#8217;t
+show up in the base-class list.</p>
+<p>Because this process of checking for finality must be installed to
+happen as the subclasses are created, rather than afterwards as
+performed by class decorators, it appears that this is an example of
+something that requires metaclasses and can&#8217;t be accomplished with
+class decorators.</p>
 </div>
 <div class="section" id="using-init-vs-new-in-metaclasses">
 <h2>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 class="headerlink" href="#using-init-vs-new-in-metaclasses" title="Permalink to this headline">¶</a></h2>
 </div>
 </div>
 </div>
+<div class="section" id="the-prepare-metamethod">
+<h2>The <tt class="docutils literal"><span class="pre">__prepare__()</span></tt> Metamethod<a class="headerlink" href="#the-prepare-metamethod" title="Permalink to this headline">¶</a></h2>
+<p>One of the things you <em>can&#8217;t</em> do with class decorators is to replace
+the default dictionary. In Python 3 this is enabled with the
+<tt class="docutils literal"><span class="pre">__prepare__()</span></tt> metamethod:</p>
+<div class="highlight-python"><div class="highlight"><pre><span class="nd">@classmethod</span>
+<span class="k">def</span> <span class="nf">__prepare__</span><span class="p">(</span><span class="n">mcl</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">bases</span><span class="p">):</span>
+    <span class="k">return</span> <span class="n">odict</span><span class="p">()</span>
+</pre></div>
+</div>
+<p>For an example of using both <tt class="docutils literal"><span class="pre">__prepare__()</span></tt> and <tt class="docutils literal"><span class="pre">__slots__</span></tt> in
+metaclasses, see <a class="reference external" href="http://www.artima.com/weblogs/viewpost.jsp?thread=236260">Michele Simionato&#8217;s article</a>.</p>
+</div>
+<div class="section" id="module-level-metaclass-assignment">
+<h2>Module-level <tt class="docutils literal"><span class="pre">__metaclass__</span></tt> Assignment<a class="headerlink" href="#module-level-metaclass-assignment" title="Permalink to this headline">¶</a></h2>
+<p>(Does this work in Python 3? If not is there an alternative?)</p>
+</div>
 <div class="section" id="metaclass-conflicts">
 <h2>Metaclass Conflicts<a class="headerlink" href="#metaclass-conflicts" title="Permalink to this headline">¶</a></h2>
 <p>Note that the <tt class="docutils literal"><span class="pre">metaclass</span></tt> argument is singular &#8211; you can&#8217;t attach
 <li><a class="reference external" href="#a-class-decorator-singleton">A Class Decorator Singleton</a></li>
 </ul>
 </li>
+<li><a class="reference external" href="#the-prepare-metamethod">The <tt class="docutils literal"><span class="pre">__prepare__()</span></tt> Metamethod</a></li>
+<li><a class="reference external" href="#module-level-metaclass-assignment">Module-level <tt class="docutils literal"><span class="pre">__metaclass__</span></tt> Assignment</a></li>
 <li><a class="reference external" href="#metaclass-conflicts">Metaclass Conflicts</a></li>
 <li><a class="reference external" href="#further-reading">Further Reading</a></li>
 </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 24, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/PythonDecorators.html

           <div class="body">
             
   <div class="section" id="decorators">
-<span id="index-12"></span><h1>Decorators<a class="headerlink" href="#decorators" title="Permalink to this headline">¶</a></h1>
+<span id="index-45"></span><h1>Decorators<a class="headerlink" href="#decorators" title="Permalink to this headline">¶</a></h1>
 <div class="admonition note">
 <p class="first admonition-title">Note</p>
 <p class="last">This chapter is a work in progress; it&#8217;s probably better if you don&#8217;t
 <dd>Matt Wilson&#8217;s <em>Decorators Are Fun</em>.</dd>
 <dt><a class="reference external" href="http://loveandtheft.org/2008/09/22/python-decorators-explained">http://loveandtheft.org/2008/09/22/python-decorators-explained</a></dt>
 <dd>Another introduction to decorators.</dd>
+<dt><a class="reference external" href="http://www.ddj.com/web-development/184406073">http://www.ddj.com/web-development/184406073</a></dt>
+<dd>Philip Eby introduces decorators.</dd>
+<dt><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></dt>
+<dd>Class Decorators.</dd>
 <dt><a class="reference external" href="http://www.phyast.pitt.edu/~micheles/python/documentation.html">http://www.phyast.pitt.edu/~micheles/python/documentation.html</a></dt>
 <dd>Michele Simionato&#8217;s decorator module wraps functions for you. The page
 includes an introduction and some examples.</dd>
+<dt><a class="reference external" href="http://www.blueskyonmars.com/projects/paver/">http://www.blueskyonmars.com/projects/paver/</a></dt>
+<dd>Kevin Djangoor&#8217;s replacement for <tt class="docutils literal"><span class="pre">make</span></tt>; heavy use of decorators.</dd>
+<dt><a class="reference external" href="http://blog.doughellmann.com/2009/01/converting-from-make-to-paver.html">http://blog.doughellmann.com/2009/01/converting-from-make-to-paver.html</a></dt>
+<dd>Doug Hellman describes the experience of converting from make to paver.</dd>
 </dl>
 </blockquote>
 </div>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 22, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/ToDo.html

 <p class="last">rewrite to distinguish python generator from above description, or
 choose different name.</p>
 </div>
-<p>(The original entry is located in Jython.rst, line 496 and can be found <a class="reference external" href="Jython.html#todo-8"><em>here</em></a>.)</p>
+<p>(The original entry is located in Jython.rst, line 493 and can be found <a class="reference external" href="Jython.html#todo-43"><em>here</em></a>.)</p>
 </div>
 
 
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 24, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/_sources/Decorator.txt

 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
 =======================================================================

File html/_sources/Jython.txt

             Event.events.append(self)
 
         def __cmp__ (self, other):
-	    """
-	    So sort() will compare only on time.
-	    """
-            if self.time < other.time: return -1
-            if self.time > other.time: return 1
-            return 0
+            "So sort() will compare only on time."
+            return cmp(self.time, other.time)
 
         def run(self):
             print("%.2f: %s" % (self.time, self.action))
 
+        @staticmethod
+        def run_events():
+            Event.events.sort();
+            for e in Event.events:
+                e.run()
+
     class LightOn(Event):
         def __init__(self, time):
             Event.__init__(self, "Light on", time)
         def __init__(self, time):
             Event.__init__(self, "Ring bell", time)
 
-    def run():
-        Event.events.sort();
-        for e in Event.events:
-            e.run()
-
     if __name__ == "__main__":
         ThermostatNight(5.00)
         LightOff(2.00)
         LightOn(1.00)
         ThermostatDay(6.00)
         Bell(7.00)
-        run()
+        Event.run_events()
 
 .. note:: To run this program say ``python GreenHouseLanguage.py`` or
    	  ``jython GreenHouseLanguage.py``.

File html/_sources/Metaclasses.txt

 processing traits for that language.
 
 To solve this problem, consider a system that automatically keeps a
-list of all of it's "leaf" subclasses (only the classes that have no
+list of all of its "leaf" subclasses (only the classes that have no
 inheritors). This way we can easily enumerate through all the
 subtypes::
 
 
     class final(type):
         def __init__(cls, name, bases, namespace):
+            super(final, cls).__init__(name, bases, namespace)
             for klass in bases:
                 if isinstance(klass, final):
                     raise TypeError(str(klass.__name__) + " is final")
-            super(final, cls).__init__(name, bases, namespace)
 
     class A(object):
         pass
     class B(A):
         __metaclass__= final
 
+    print B.__bases__
+    print isinstance(B, final)
+
     # Produces compile-time error:
     class C(B):
         pass
 
     """ Output:
+    (<class '__main__.A'>,)
+    True
     ...
     TypeError: B is final
     """
 
-.. can this be done with decorators?
+During class object creation, we check to see if any of the bases are
+derived from ``final``. Notice that using a metaclass makes the new
+type an instance of that metaclass, even though the metaclass doesn't
+show up in the base-class list.
+
+Because this process of checking for finality must be installed to
+happen as the subclasses are created, rather than afterwards as
+performed by class decorators, it appears that this is an example of
+something that requires metaclasses and can't be accomplished with
+class decorators.
 
 
 Using ``__init__`` vs. ``__new__`` in Metaclasses
     """
 
 
+The ``__prepare__()`` Metamethod
+================================================================================
+
+One of the things you *can't* do with class decorators is to replace
+the default dictionary. In Python 3 this is enabled with the
+``__prepare__()`` metamethod::
+
+    @classmethod
+    def __prepare__(mcl, name, bases):
+        return odict()
+
+For an example of using both ``__prepare__()`` and ``__slots__`` in
+metaclasses, see `Michele Simionato's article <http://www.artima.com/weblogs/viewpost.jsp?thread=236260>`_.
+
+Module-level ``__metaclass__`` Assignment
+================================================================================
+
+(Does this work in Python 3? If not is there an alternative?)
+
 Metaclass Conflicts
 ================================================================================
 

File html/_sources/PythonDecorators.txt

     http://loveandtheft.org/2008/09/22/python-decorators-explained
         Another introduction to decorators.
 
+    http://www.ddj.com/web-development/184406073
+	Philip Eby introduces decorators. 
+
+    http://www.informit.com/articles/article.aspx?p=1309289&seqNum=4
+	Class Decorators.
+
     http://www.phyast.pitt.edu/~micheles/python/documentation.html
         Michele Simionato's decorator module wraps functions for you. The page
         includes an introduction and some examples.
 
+    http://www.blueskyonmars.com/projects/paver/
+	Kevin Djangoor's replacement for ``make``; heavy use of decorators.
+
+    http://blog.doughellmann.com/2009/01/converting-from-make-to-paver.html
+	Doug Hellman describes the experience of converting from make to paver.
+

File html/_sources/index.txt

    Rules
    DeveloperGuide
    Part1
-   QuickPython
+   PythonForProgrammers
    UnitTesting
    LanguageChanges
    PythonDecorators

File html/genindex.html

 <table width="100%" class="indextable"><tr><td width="33%" valign="top">
 <dl>
 
-<dt><a href="PythonDecorators.html#index-12">@: Python decorators</a></dt></dl></td><td width="33%" valign="top"><dl>
+<dt><a href="PythonDecorators.html#index-45">@: Python decorators</a></dt></dl></td><td width="33%" valign="top"><dl>
 </dl></td></tr></table>
 
 <h2 id="C">C</h2>
   <dd><dl>
     <dt><a href="CanonicalScript.html#index-0">script command-line</a></dt>
   </dl></dd>
-<dt><a href="Metaclasses.html#index-42">class decorators</a></dt>
+<dt><a href="Metaclasses.html#index-44">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">data transfer object (messenger)</a></dt>
-<dt><a href="PythonDecorators.html#index-12">decorator: Python decorators</a></dt></dl></td><td width="33%" valign="top"><dl>
+<dt><a href="PythonDecorators.html#index-45">decorator: Python decorators</a></dt></dl></td><td width="33%" valign="top"><dl>
 </dl></td></tr></table>
 
 <h2 id="G">G</h2>
 <dl>
 
 <dt><a href="Messenger.html#index-10">messenger (data transfer object)</a></dt>
-<dt><a href="Metaclasses.html#index-42">Metaclasses</a></dt></dl></td><td width="33%" valign="top"><dl>
+<dt><a href="Metaclasses.html#index-44">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 24, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/index.html

 </ul>
 </li>
 <li class="toctree-l1"><a class="reference external" href="Part1.html">Part I: Foundations</a></li>
-<li class="toctree-l1"><a class="reference external" href="QuickPython.html">Quick Python for Programmers</a><ul>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#scripting-vs-programming">Scripting vs. Programming</a></li>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#built-in-containers">Built-In Containers</a></li>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#functions">Functions</a></li>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#strings">Strings</a></li>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#classes">Classes</a><ul>
-<li class="toctree-l3"><a class="reference external" href="QuickPython.html#inheritance">Inheritance</a></li>
-<li class="toctree-l3"><a class="reference external" href="QuickPython.html#constructor-calls">Constructor Calls</a></li>
-<li class="toctree-l3"><a class="reference external" href="QuickPython.html#static-fields">Static Fields</a></li>
+<li class="toctree-l1"><a class="reference external" href="PythonForProgrammers.html">Python for Programmers</a><ul>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.html#scripting-vs-programming">Scripting vs. Programming</a></li>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.html#built-in-containers">Built-In Containers</a></li>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.html#functions">Functions</a></li>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.html#strings">Strings</a></li>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.html#classes">Classes</a><ul>
+<li class="toctree-l3"><a class="reference external" href="PythonForProgrammers.html#inheritance">Inheritance</a></li>
+<li class="toctree-l3"><a class="reference external" href="PythonForProgrammers.html#constructor-calls">Constructor Calls</a></li>
+<li class="toctree-l3"><a class="reference external" href="PythonForProgrammers.html#static-fields">Static Fields</a></li>
 </ul>
 </li>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#useful-techniques">Useful Techniques</a></li>
-<li class="toctree-l2"><a class="reference external" href="QuickPython.html#further-reading">Further Reading</a></li>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.html#useful-techniques">Useful Techniques</a></li>
+<li class="toctree-l2"><a class="reference external" href="PythonForProgrammers.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-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#the-prepare-metamethod">The <tt class="docutils literal"><span class="pre">__prepare__()</span></tt> Metamethod</a></li>
+<li class="toctree-l2"><a class="reference external" href="Metaclasses.html#module-level-metaclass-assignment">Module-level <tt class="docutils literal"><span class="pre">__metaclass__</span></tt> Assignment</a></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="Metaclasses.html#further-reading">Further Reading</a></li>
 </ul>
     </div>
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 24, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   </body>

File html/search.html

   
     <div class="footer">
       &copy; Copyright 2008, Creative Commons Attribution-Share Alike 3.0.
-      Last updated on Jan 24, 2009.
+      Last updated on Jan 26, 2009.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.
     </div>
   <script type="text/javascript" src="searchindex.js"></script>

File html/searchindex.js

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

File src/CoroutinesAndConcurrency.rst

     ``multiprocessing`` supports -- is the more important problem to solve, and
     that functional languages don't help that much with this problem.
 
-        
+    http://jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/
+        

File src/Decorator.rst

 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
 =======================================================================

File src/DeveloperGuide.rst

 
 Details for people participating in the book development process.
 
+.. Great article with ideas for document automation, including paver and cog:
+.. http://feedproxy.google.com/~r/DougHellmann/~3/JOnbNzmhSNU/writing-technical-documentation-with.html
+
 Getting Started: The Easiest Approach
 ===============================================================================
 

File src/Jython.rst

             Event.events.append(self)
 
         def __cmp__ (self, other):
-	    """
-	    So sort() will compare only on time.
-	    """
-            if self.time < other.time: return -1
-            if self.time > other.time: return 1
-            return 0
+            "So sort() will compare only on time."
+            return cmp(self.time, other.time)
 
         def run(self):
             print("%.2f: %s" % (self.time, self.action))
 
+        @staticmethod
+        def run_events():
+            Event.events.sort();
+            for e in Event.events:
+                e.run()
+
     class LightOn(Event):
         def __init__(self, time):
             Event.__init__(self, "Light on", time)
         def __init__(self, time):
             Event.__init__(self, "Ring bell", time)
 
-    def run():
-        Event.events.sort();
-        for e in Event.events:
-            e.run()
-
     if __name__ == "__main__":
         ThermostatNight(5.00)
         LightOff(2.00)
         LightOn(1.00)
         ThermostatDay(6.00)
         Bell(7.00)
-        run()
+        Event.run_events()
 
 .. note:: To run this program say ``python GreenHouseLanguage.py`` or
    	  ``jython GreenHouseLanguage.py``.

File src/Metaclasses.rst

     print(ml.x)
     ml.howdy("John")
 
+    print(ml.__class__.__class__)
+
     """ Output:
     ['Camembert']
     42
     Howdy, John
     """
 
+Note that printing the class of the class produces the metaclass.
+
 The ability to generate classes programmatically using ``type`` opens
 up some interesting possibilities. Consider the GreenHouseLanguage.py
 example in the Jython chapter -- all the subclasses in that case were
 passing in the class object, the class name, the list of base classes
 and the namespace dictionary.
 
+Python 2.x also allows you to assign to the global ``__metaclass__``
+hook, which will be used if there is not a class-local
+``__metaclass__`` hook (is there an equivalent in Python 3?).
+
 Thus, the basic process of metaclass programming looks like this::
 
     # Metaclasses/SimpleMeta1.py
 processing traits for that language.
 
 To solve this problem, consider a system that automatically keeps a
-list of all of it's "leaf" subclasses (only the classes that have no
+list of all of its "leaf" subclasses (only the classes that have no
 inheritors). This way we can easily enumerate through all the
 subtypes::
 
 
     class final(type):
         def __init__(cls, name, bases, namespace):
+            super(final, cls).__init__(name, bases, namespace)
             for klass in bases:
                 if isinstance(klass, final):
                     raise TypeError(str(klass.__name__) + " is final")
-            super(final, cls).__init__(name, bases, namespace)
 
     class A(object):
         pass
     class B(A):
         __metaclass__= final
 
+    print B.__bases__
+    print isinstance(B, final)
+
     # Produces compile-time error:
     class C(B):
         pass
 
     """ Output:
+    (<class '__main__.A'>,)
+    True
     ...
     TypeError: B is final
     """
 
-.. can this be done with decorators?
+During class object creation, we check to see if any of the bases are
+derived from ``final``. Notice that using a metaclass makes the new
+type an instance of that metaclass, even though the metaclass doesn't
+show up in the base-class list.
+
+Because this process of checking for finality must be installed to
+happen as the subclasses are created, rather than afterwards as
+performed by class decorators, it appears that this is an example of
+something that requires metaclasses and can't be accomplished with
+class decorators.
 
 
 Using ``__init__`` vs. ``__new__`` in Metaclasses
     """
 
 
+The ``__prepare__()`` Metamethod
+================================================================================
+
+One of the things you *can't* do with class decorators is to replace
+the default dictionary. In Python 3 this is enabled with the
+``__prepare__()`` metamethod::
+
+    @classmethod
+    def __prepare__(mcl, name, bases):
+        return odict()
+
+For an example of using both ``__prepare__()`` and ``__slots__`` in
+metaclasses, see `Michele Simionato's article <http://www.artima.com/weblogs/viewpost.jsp?thread=236260>`_.
+
+Module-level ``__metaclass__`` Assignment
+================================================================================
+
+(Does this work in Python 3? If not is there an alternative?)
+
 Metaclass Conflicts
 ================================================================================
 
       - http://blog.ianbicking.org/A-Declarative-Syntax-Extension.html
       - http://blog.ianbicking.org/self-take-two.html
 
+    Lots of good information about classes, types, metaclasses, etc.,
+    including historical stuff in the Python 2.2 docs (is this
+    duplicated in later versions of the docs):
+      - http://www.python.org/download/releases/2.2/descrintro/
+
     For more advanced study, the book `Putting Metaclasses to Work
     <http://www.pearsonhighered.com/educator/academic/product/0,,0201433052,00%2ben-USS_01DBC.html>`_.
 
+.. Examples: http://www.python.org/doc/essays/metaclasses/
+.. http://www.python.org/download/releases/2.2/descrintro/#metaclasses
+.. http://www.python.org/download/releases/2.2/descrintro/#__new__
+.. http://jurjanpaul.blogspot.com/2009/01/small-metaclass-for-strongly-typed.html
+.. Tracking instances
+

File src/PythonDecorators.rst

     http://loveandtheft.org/2008/09/22/python-decorators-explained
         Another introduction to decorators.
 
+    http://www.siafoo.net/article/68
+
+    http://www.ddj.com/web-development/184406073
+	Philip Eby introduces decorators. 
+
+    http://www.informit.com/articles/article.aspx?p=1309289&seqNum=4
+	Class Decorators.
+
     http://www.phyast.pitt.edu/~micheles/python/documentation.html
         Michele Simionato's decorator module wraps functions for you. The page
         includes an introduction and some examples.
 
+    http://www.blueskyonmars.com/projects/paver/
+	Kevin Djangoor's replacement for ``make``; heavy use of decorators.
+
+    http://blog.doughellmann.com/2009/01/converting-from-make-to-paver.html
+	Doug Hellman describes the experience of converting from make to paver.
+
+    http://www.informit.com/articles/article.aspx?p=1309289&seqNum=4
+	Class decorators
+
+.. Examples http://www.python.org/dev/peps/pep-0318/#examples

File src/PythonForProgrammers.rst

+
+*******************************************************************************
+Python for Programmers
+*******************************************************************************
+
+This book assumes you're an experienced programmer, and it's best if you have
+learned Python through another book. For everyone else, this chapter gives a
+programmer's introduction to the language.
+
+This is not an introductory book. I am assuming that you have worked your way
+through at least *Learning Python* (by Mark Lutz & David Ascher; Oreilly, 1999)
+or an equivalent text before coming to this book.
+
+This brief introduction is for the experienced programmer (which is what you
+should be if you're reading this book). You can refer to the full documentation
+at `www.Python.org <http://www.python.org/doc/>`_.
+
+I find the HTML page `A Python Quick Reference
+<http://rgruet.free.fr/#QuickRef>`_  to be incredibly useful.
+
+In addition, I'll assume you have more than just a grasp of the syntax of
+Python. You should have a good understanding of objects and what they're about,
+including polymorphism.
+
+On the other hand, by going through this book you're going to learn a *lot*
+about object-oriented programming by seeing objects used in many different
+situations. If your knowledge of objects is rudimentary, it will get much
+stronger in the process of understanding the designs in this book.
+
+Scripting vs. Programming
+===============================================================================
+
+Python is often referred to as a scripting language, but scripting languages
+tend to be limiting, especially in the scope of the problems that they solve.
+Python, on the other hand, is a programming language that also supports
+scripting. It *is* marvelous for scripting, and you may find yourself replacing
+all your batch files, shell scripts, and simple programs with Python scripts.
+But it is far more than a scripting language.
+
+The goal of Python is improved productivity. This productivity comes in many
+ways, but the language is designed to aid you as much as possible, while
+hindering you as little as possible with arbitrary rules or any requirement that
+you use a particular set of features. Python is practical; Python language
+design decisions were based on providing the maximum benefits to the programmer.
+
+Python is very clean to write and especially to read. You will find that it's
+quite easy to read your own code long after you've written it, and also to read
+other people's code. This is accomplished partially through clean, to-the-point
+syntax, but a major factor in code readability is indentation - scoping in
+Python is determined by indentation. For example::
+
+    # PythonForProgrammers/if.py
+    response = "yes"
+    if response == "yes":
+        print("affirmative")
+        val = 1
+    print("continuing...")
+
+
+The '**#**' denotes a comment that goes until the end of the line, just like C++
+and Java '**//**' comments.
+
+First notice that the basic syntax of Python is C-ish as you can see in the
+**if** statement. But in a C **if**, you would be required to use parentheses
+around the conditional, whereas they are not necessary in Python (it won't
+complain if you use them anyway).
+
+The conditional clause ends with a colon, and this indicates that what follows
+will be a group of indented statements, which are the "then" part of the **if**
+statement. In this case, there is a "print" statement which sends the result to
+standard output, followed by an assignment to a variable named **val**. The
+subsequent statement is not indented so it is no longer part of the **if**.
+Indenting can nest to any level, just like curly braces in C++ or Java, but
+unlike those languages there is no option (and no argument) about where the
+braces are placed - the compiler forces everyone's code to be formatted the same
+way, which is one of the main reasons for Python's consistent readability.
+
+Python normally has only one statement per line (you can put more by separating
+them with semicolons), thus no terminating semicolon is necessary.  Even from
+the brief example above you can see that the language is designed to be as
+simple as possible, and yet still very readable.
+
+Built-In Containers
+=======================================================================
+
+With languages like C++ and Java, containers are add-on libraries and not
+integral to the language. In Python, the essential nature of containers for
+programming is acknowledged by building them into the core of the language: both
+lists and associative arrays (a.k.a. maps, dictionaries, hash tables) are
+fundamental data types. This adds much to the elegance of the language.
+
+In addition, the **for** statement automatically iterates through lists rather
+than just counting through a sequence of numbers. This makes a lot of sense when
+you think about it, since you're almost always using a **for** loop to step
+through an array or a container. Python formalizes this by automatically making
+**for** use an iterator that works through a sequence. Here's an example::
+
+    # PythonForProgrammers/list.py
+    list = [ 1, 3, 5, 7, 9, 11 ]
+    print(list)
+    list.append(13)
+    for x in list:
+        print(x)
+
+
+The first line creates a list. You can print the list and it will look exactly
+as you put it in (in contrast, remember that I had to create a special
+**Arrays2** class in *Thinking in Java* in order to print arrays in Java). Lists
+are like Java containers - you can add new elements to them (here, **append( )**
+is used) and they will automatically resize themselves. The **for** statement
+creates an iterator **x** which takes on each value in the list.
+
+You can create a list of numbers with the **range( )** function, so if you
+really need to imitate C's **for**, you can.
+
+Notice that there aren't any type declarations - the object names simply appear,
+and Python infers their type by the way that you use them. It's as if Python is
+designed so that you only need to press the keys that absolutely must. You'll
+find after you've worked with Python for a short while that you've been using up
+a lot of brain cycles parsing semicolons, curly braces, and all sorts of other
+extra verbiage that was demanded by your non-Python programming language but
+didn't actually describe what your program was supposed to do.
+
+Functions
+=======================================================================
+
+To create a function in Python, you use the **def** keyword, followed by the
+function name and argument list, and a colon to begin the function body. Here is
+the first example turned into a function::
+
+    # PythonForProgrammers/myFunction.py
+    def myFunction(response):
+        val = 0
+        if response == "yes":
+            print("affirmative")
+            val = 1
+        print("continuing...")
+        return val
+
+    print(myFunction("no"))
+    print(myFunction("yes"))
+
+Notice there is no type information in the function signature - all it specifies
+is the name of the function and the argument identifiers, but no argument types
+or return types. Python is a *structurally-typed* language, which means it puts
+the minimum possible requirements on typing. For example, you could pass and
+return different types from the same function::
+
+    # PythonForProgrammers/differentReturns.py
+    def differentReturns(arg):
+        if arg == 1:
+            return "one"
+        if arg == "one":
+            return True
+
+    print(differentReturns(1))
+    print(differentReturns("one"))
+
+
+The only constraints on an object that is passed into the function are that the
+function can apply its operations to that object, but other than that, it
+doesn't care. Here, the same function applies the '**+**' operator to integers
+and strings::
+
+    # PythonForProgrammers/sum.py
+    def sum(arg1, arg2):
+        return arg1 + arg2
+
+    print(sum(42, 47))
+    print(sum('spam ', "eggs"))
+
+
+When the operator '**+**' is used with strings, it means concatenation (yes,
+Python supports operator overloading, and it does a nice job of it).
+
+Strings
+=======================================================================
+
+The above example also shows a little bit about Python string handling,  which
+is the best of any language I've seen. You can use single or double quotes to
+represent strings, which is very nice because if you surround a string with
+double quotes, you can embed single quotes and vice versa::
+
+    # PythonForProgrammers/strings.py
+    print("That isn't a horse")
+    print('You are not a "Viking"')
+    print("""You're just pounding two
+    coconut halves together.""")
+    print('''"Oh no!" He exclaimed.
+    "It's the blemange!"''')
+    print(r'c:\python\lib\utils')
+
+
+Note that Python was not named after the snake, but rather the Monty Python
+comedy troupe, and so examples are virtually required to include Python-esque
+references.
+
+The triple-quote syntax quotes everything, including newlines. This makes it
+particularly useful for doing things like generating web pages (Python is an
+especially good CGI language), since you can just triple-quote the entire page
+that you want without any other editing.
+
+The '**r**' right before a string means "raw," which takes the backslashes
+literally so you don't have to put in an extra backslash in order to insert a
+literal backslash.
+
+Substitution in strings is exceptionally easy, since Python uses C's
+**printf()** substitution syntax, but for any string at all. You simply follow
+the string with a '**%**' and the values to substitute::
+
+    # PythonForProgrammers/stringFormatting.py
+    val = 47
+    print("The number is %d" % val)
+    val2 = 63.4
+    s = "val: %d, val2: %f" % (val, val2)
+    print(s)
+
+
+As you can see in the second case, if you have more than one argument you
+surround them in parentheses (this forms a *tuple*, which is a list that cannot
+be modified - you can also use regular lists for multiple arguments, but tuples
+are typical).
+
+All the formatting from **printf()** is available, including control over the
+number of decimal places and alignment. Python also has very sophisticated
+regular expressions.
+
+Classes
+=======================================================================
+
+Like everything else in Python, the definition of a class uses a minimum of
+additional syntax. You use the **class** keyword, and inside the body you use
+**def** to create methods. Here's a simple class::
+
+    # PythonForProgrammers/SimpleClass.py
+    class Simple:
+        def __init__(self, str):
+            print("Inside the Simple constructor")
+            self.s = str
+        # Two methods:
+        def show(self):
+            print(self.s)
+        def showMsg(self, msg):
+            print(msg + ':',
+            self.show()) # Calling another method
+
+    if __name__ == "__main__":
+        # Create an object:
+        x = Simple("constructor argument")
+        x.show()
+        x.showMsg("A message")
+
+
+Both methods have **self** as their first argument. C++ and Java both have a
+hidden first argument in their class methods, which points to the object that
+the method was called for and can be accessed using the keyword **this**. Python
+methods also use a reference to the current object, but when you are *defining*
+a method you must explicitly specify the reference as the first argument.
+Traditionally, the reference is called **self** but you could use any identifier
+you want (if you do not use **self** you will probably confuse a lot of people,
+however). If you need to refer to fields in the object or other methods in the
+object, you must use **self** in the expression. However, when you call a method
+for an object as in **x.show( )**, you do not hand it the reference to the
+object - *that* is done for you.
+
+Here, the first method is special, as is any identifier that begins and ends
+with double underscores. In this case, it defines the constructor, which is
+automatically called when the object is created, just like in C++ and Java.
+However, at the bottom of the example you can see that the creation of an object
+looks just like a function call using the class name. Python's spare syntax
+makes you realize that the **new** keyword isn't really necessary in C++ or
+Java, either.
+
+All the code at the bottom is set off by an **if** clause, which checks to see
+if something called **__name__** is equivalent to **__main__**. Again, the
+double underscores indicate special names. The reason for the **if** is that any
+file can also be used as a library module within another program (modules are
+described shortly). In that case, you just want the classes defined, but you
+don't want the code at the bottom of the file to be executed. This particular
+**if** statement is only true when you are running this file directly; that is,
+if you say on the command line::
+
+    Python SimpleClass.py
+
+However, if this file is imported as a module into another program, the
+**__main__** code is not executed.
+
+Something that's a little surprising at first is that while in C++ or Java you
+declare object level fields outside of the methods, you do not declare them in
+Python.  To create an object field, you just name it - using **self** - inside
+of one of the methods (usually in the constructor, but not always), and space is
+created when that method is run. This seems a little strange coming from C++ or
+Java where you must decide ahead of time how much space your object is going to
+occupy, but it turns out to be a very flexible way to program. If you declare
+fields using the C++/Java style, they implicitly become class level fields
+(similar to the static fields in C++/Java)
+
+Inheritance
+-------------------------------------------------------------------------------
+
+Because Python is dynamically typed, it doesn't really care about interfaces -
+all it cares about is applying operations to objects (in fact, Java's
+**interface** keyword would be wasted in Python). This means that inheritance in
+Python is different from inheritance in C++ or Java, where you often inherit
+simply to establish a common interface. In Python, the only reason you inherit
+is to inherit an implementation - to re-use the code in the base class.
+
+If you're going to inherit from a class, you must tell Python to bring that
+class into your new file. Python controls its name spaces as aggressively as
+Java does, and in a similar fashion (albeit with Python's penchant for
+simplicity). Every time you create a file, you implicitly create a module (which
+is like a package in Java) with the same name as that file. Thus, no **package**
+keyword is needed in Python. When you want to use a module, you just say
+**import** and give the name of the module. Python searches the PYTHONPATH in
+the same way that Java searches the CLASSPATH (but for some reason, Python
+doesn't have the same kinds of pitfalls as Java does) and reads in the file. To
+refer to any of the functions or classes within a module, you give the module
+name, a period, and the function or class name. If you don't want the trouble of
+qualifying the name, you can say
+
+`from module import name(s)`
+
+Where "name(s)" can be a list of names separated by commas.
+
+You inherit a class (or classes - Python supports multiple inheritance) by
+listing the name(s) of the class inside parentheses after the name of the
+inheriting class. Note that the **Simple** class, which resides in the file (and
+thus, module) named **SimpleClass** is brought into this new name space using an
+**import** statement::
+
+    # PythonForProgrammers/Simple2.py
+    from SimpleClass import Simple
+
+    class Simple2(Simple):
+        def __init__(self, str):
+            print("Inside Simple2 constructor")
+            # You must explicitly call
+            # the base-class constructor:
+            Simple.__init__(self, str)
+        def display(self):
+            self.showMsg("Called from display()")
+        # Overriding a base-class method
+        def show(self):
+            print("Overridden show() method")
+            # Calling a base-class method from inside
+            # the overridden method:
+            Simple.show(self)
+
+    class Different:
+        def show(self):
+            print("Not derived from Simple")
+
+    if __name__ == "__main__":
+        x = Simple2("Simple2 constructor argument")
+        x.display()
+        x.show()
+        x.showMsg("Inside main")
+        def f(obj): obj.show() # One-line definition
+        f(x)
+        f(Different())
+
+
+..  note:: you don't have to explicitly call the base-class constructor if the
+           argument list is the same. Show example.
+
+..  note::  (Reader) The note above is confusing. Did not understand. IMHO one still
+            needs to invoke the base-class constructor if the argument is the
+            same.  Probably one needs to state that in case the base class
+            constructor functionality continues to be adequate for the derived
+            class, then a new constructor need not be declared for the derived
+            class at all.
+
+
+**Simple2** is inherited from **Simple**, and in the constructor, the base-class
+constructor is called. In **display( )**, **showMsg( )** can be called as a
+method of **self**, but when calling the base-class version of the method you
+are overriding, you must fully qualify the name and pass **self** in as the
+first argument, as shown in the base-class constructor call. This can also be
+seen in the overridden version of **show( )**.
+
+In **__main__**, you will see (when you run the program) that the base-class
+constructor is called. You can also see that the **showMsg( )** method is
+available in the derived class, just as you would expect with inheritance.
+
+The class **Different** also has a method named **show( )**, but this class is
+not derived from **Simple**. The **f( )** method defined in **__main__**
+demonstrates weak typing: all it cares about is that **show( )** can be applied
+to **obj**, and it doesn't have any other type requirements. You can see that
+**f( )** can be applied equally to an object of a class derived from **Simple**
+and one that isn't, without discrimination. If you're a C++ programmer, you
+should see that the objective of the C++ **template** feature is exactly this:
+to provide weak typing in a strongly-typed language. Thus, in Python you
+automatically get the equivalent of templates - without having to learn that
+particularly difficult syntax and semantics.
+
+..   (Reader) I am not sure if I agree with the remark about templates. One of the
+            big objective of templates has always been type safety along with
+            genericity. What python gives us is the genericity. IMHO the analogy
+            with template mechanism is not appropriate.
+
+Constructor Calls
+-------------------------------------------------------------------------------
+
+Automatic base-class constructor calls.
+
+Calling the base-class constructor first, how to do it using super(), why you
+should always call it first even if it's optional when to call it.
+
+.. guideline: Be rigorous about calling base-class initializers as the
+.. first step of your __init__() method. Call them using super() so
+.. that modifications to the class hierarchy don't cause problems.
+
+Static Fields
+-------------------------------------------------------------------------------
+
+::
+	>>> class Foo(object):
+	...   x = "a"
+	... 
+	>>> Foo.x
+	'a'
+	>>> f = Foo()
+	>>> f.x
+	'a'
+	>>> f2 = Foo()
+	>>> f2.x
+	'a'