Commits

Lynn Rees committed 4deb1bd

- bump version

  • Participants
  • Parent commits e51a8d3
  • Tags 0.5.5

Comments (0)

Files changed (33)

+What's new in 0.5.5
+===================
+
+* fix issue with traverse method
+
 What's new in 0.5.4
 ===================
 

File docs/_build/doctest/output.txt

-Results of doctest builder run on 2012-05-24 15:53:21
+Results of doctest builder run on 2012-05-28 22:17:38
 =====================================================
 
 Document: index
 ---------------
-**********************************************************************
-File "index.rst", line ?, in default
-Failed example:
-    one.original().minmax().pipe(two).merge().back().max().get()
-Exception raised:
-    Traceback (most recent call last):
-      File "/usr/local/Cellar/python/2.7.3/lib/python2.7/doctest.py", line 1289, in __run
-        compileflags, 1) in test.globs
-      File "<doctest default[4]>", line 1, in <module>
-        one.original().minmax().pipe(two).merge().back().max().get()
-      File "/Users/lrees/Documents/libraries/knife/knife/base.py", line 370, in original
-        return self._revert()
-      File "/Users/lrees/Documents/libraries/knife/knife/_active.py", line 181, in _revert
-        self._in.extend(loads_(self._original))
-      File "/Users/lrees/Documents/libraries/stuf/stuf/utils.py", line 29, in <lambda>
-        loads = memoize(lambda x: ld(x, encoding='latin-1'))
-    TypeError: loads() takes no keyword arguments
-**********************************************************************
-File "index.rst", line ?, in default
-Failed example:
-    one.original().minmax().pipe(two).merge().back().sum().get()
-Exception raised:
-    Traceback (most recent call last):
-      File "/usr/local/Cellar/python/2.7.3/lib/python2.7/doctest.py", line 1289, in __run
-        compileflags, 1) in test.globs
-      File "<doctest default[5]>", line 1, in <module>
-        one.original().minmax().pipe(two).merge().back().sum().get()
-      File "/Users/lrees/Documents/libraries/knife/knife/base.py", line 370, in original
-        return self._revert()
-      File "/Users/lrees/Documents/libraries/knife/knife/_active.py", line 181, in _revert
-        self._in.extend(loads_(self._original))
-      File "/Users/lrees/Documents/libraries/stuf/stuf/utils.py", line 29, in <lambda>
-        loads = memoize(lambda x: ld(x, encoding='latin-1'))
-    TypeError: loads() takes no keyword arguments
-**********************************************************************
-1 items had failures:
-   2 of  28 in default
+1 items passed all tests:
+  28 tests in default
 28 tests in 1 items.
-26 passed and 2 failed.
-***Test Failed*** 2 failures.
+28 passed and 0 failed.
+Test passed.
 
 Document: areduceknife
 ----------------------
 Doctest summary
 ===============
   982 tests
-    2 failures in tests
+    0 failures in tests
     0 failures in setup code
     0 failures in cleanup code

File docs/_build/doctrees/acmpknife.doctree

Binary file modified.

File docs/_build/doctrees/activeknife.doctree

Binary file modified.

File docs/_build/doctrees/afilterknife.doctree

Binary file modified.

File docs/_build/doctrees/amapknife.doctree

Binary file modified.

File docs/_build/doctrees/amathknife.doctree

Binary file modified.

File docs/_build/doctrees/aorderknife.doctree

Binary file modified.

File docs/_build/doctrees/areduceknife.doctree

Binary file modified.

File docs/_build/doctrees/arepeatknife.doctree

Binary file modified.

File docs/_build/doctrees/asliceknife.doctree

Binary file modified.

File docs/_build/doctrees/environment.pickle

Binary file modified.

File docs/_build/doctrees/lazyknife.doctree

Binary file modified.

File docs/_build/doctrees/lcmpknife.doctree

Binary file modified.

File docs/_build/doctrees/lfilterknife.doctree

Binary file modified.

File docs/_build/doctrees/lmapknife.doctree

Binary file modified.

File docs/_build/doctrees/lmathknife.doctree

Binary file modified.

File docs/_build/doctrees/lorderknife.doctree

Binary file modified.

File docs/_build/doctrees/lreduceknife.doctree

Binary file modified.

File docs/_build/doctrees/lrepeatknife.doctree

Binary file modified.

File docs/_build/doctrees/lsliceknife.doctree

Binary file modified.

File docs/_build/html/acmpknife.html

 <dl class="last docutils">
 <dt><a class="reference internal" href="#knife.active.cmpknife.all" title="knife.active.cmpknife.all"><tt class="xref py py-func docutils literal"><span class="pre">all</span></tt></a></dt>
 <dd>function in Python standard library</dd>
-<dt><a href="#id19"><span class="problematic" id="id20">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://documentcloud.github.com/underscore/#all">all</a></dt>
 <dd>function in Underscore.js</dd>
-<dt><a href="#id21"><span class="problematic" id="id22">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://mirven.github.com/underscore.lua/#all">all</a></dt>
 <dd>function in Underscore.lua</dd>
-<dt><a href="#id23"><span class="problematic" id="id24">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://vti.github.com/underscore-perl/#all">all</a></dt>
 <dd>function in Underscore.perl</dd>
-<dt><a href="#id25"><span class="problematic" id="id26">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://brianhaveri.github.com/Underscore.php/#all">all</a></dt>
 <dd>function in Underscore.php</dd>
 </dl>
 </div>

File docs/_build/html/activeknife.html

 <dl class="last docutils">
 <dt><a class="reference internal" href="#knife.active.activeknife.all" title="knife.active.activeknife.all"><tt class="xref py py-func docutils literal"><span class="pre">all</span></tt></a></dt>
 <dd>function in Python standard library</dd>
-<dt><a href="#id73"><span class="problematic" id="id74">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://documentcloud.github.com/underscore/#all">all</a></dt>
 <dd>function in Underscore.js</dd>
-<dt><a href="#id75"><span class="problematic" id="id76">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://mirven.github.com/underscore.lua/#all">all</a></dt>
 <dd>function in Underscore.lua</dd>
-<dt><a href="#id77"><span class="problematic" id="id78">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://vti.github.com/underscore-perl/#all">all</a></dt>
 <dd>function in Underscore.perl</dd>
-<dt><a href="#id79"><span class="problematic" id="id80">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://brianhaveri.github.com/Underscore.php/#all">all</a></dt>
 <dd>function in Underscore.php</dd>
 </dl>
 </div>

File docs/_build/html/lazyknife.html

 <dl class="last docutils">
 <dt><a class="reference internal" href="#knife.lazy.lazyknife.all" title="knife.lazy.lazyknife.all"><tt class="xref py py-func docutils literal"><span class="pre">all</span></tt></a></dt>
 <dd>function in Python standard library</dd>
-<dt><a href="#id73"><span class="problematic" id="id74">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://documentcloud.github.com/underscore/#all">all</a></dt>
 <dd>function in Underscore.js</dd>
-<dt><a href="#id75"><span class="problematic" id="id76">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://mirven.github.com/underscore.lua/#all">all</a></dt>
 <dd>function in Underscore.lua</dd>
-<dt><a href="#id77"><span class="problematic" id="id78">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://vti.github.com/underscore-perl/#all">all</a></dt>
 <dd>function in Underscore.perl</dd>
-<dt><a href="#id79"><span class="problematic" id="id80">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://brianhaveri.github.com/Underscore.php/#all">all</a></dt>
 <dd>function in Underscore.php</dd>
 </dl>
 </div>

File docs/_build/html/lcmpknife.html

 <dl class="last docutils">
 <dt><a class="reference internal" href="#knife.lazy.cmpknife.all" title="knife.lazy.cmpknife.all"><tt class="xref py py-func docutils literal"><span class="pre">all</span></tt></a></dt>
 <dd>function in Python standard library</dd>
-<dt><a href="#id19"><span class="problematic" id="id20">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://documentcloud.github.com/underscore/#all">all</a></dt>
 <dd>function in Underscore.js</dd>
-<dt><a href="#id21"><span class="problematic" id="id22">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://mirven.github.com/underscore.lua/#all">all</a></dt>
 <dd>function in Underscore.lua</dd>
-<dt><a href="#id23"><span class="problematic" id="id24">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://vti.github.com/underscore-perl/#all">all</a></dt>
 <dd>function in Underscore.perl</dd>
-<dt><a href="#id25"><span class="problematic" id="id26">`all`_</span></a></dt>
+<dt><a class="reference external" href="http://brianhaveri.github.com/Underscore.php/#all">all</a></dt>
 <dd>function in Underscore.php</dd>
 </dl>
 </div>

File docs/_build/linkcheck/output.txt

-acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
+acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+acmpknife.rst:7: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+acmpknife.rst:7: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
-acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:7: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:7: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
+acmpknife.rst:21: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
+acmpknife.rst:24: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
 acmpknife.rst:5: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:5: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:6: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-acmpknife.rst:21: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
+acmpknife.rst:1: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-acmpknife.rst:24: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
 acmpknife.rst:1: [redirected] http://docs.python.org/2.7/reference/compound_stmts.html to http://docs.python.org/reference/compound_stmts.html
 acmpknife.rst:2: [redirected] http://docs.python.org/2.7/reference/compound_stmts.html to http://docs.python.org/reference/compound_stmts.html
 activeknife.rst:1: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
 activeknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 activeknife.rst:23: [redirected] http://docs.python.org/2.7/library/itertools.html to http://docs.python.org/library/itertools.html
 activeknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+activeknife.rst:10: [redirected] http://docs.python.org/2.7/library/random.html to http://docs.python.org/library/random.html
 activeknife.rst:27: [redirected] http://docs.python.org/2.7/library/operator.html to http://docs.python.org/library/operator.html
-activeknife.rst:10: [redirected] http://docs.python.org/2.7/library/random.html to http://docs.python.org/library/random.html
 activeknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 activeknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 activeknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 afilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 afilterknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 afilterknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+afilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 afilterknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-afilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 afilterknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 afilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 afilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 amapknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 amapknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 amapknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+amapknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 amapknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-amapknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 amapknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 amapknife.rst:1: [redirected] http://docs.python.org/2.7/reference/compound_stmts.html to http://docs.python.org/reference/compound_stmts.html
 amapknife.rst:6: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:5: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 areduceknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+areduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-areduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 areduceknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 areduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+lazyknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-lazyknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:7: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:7: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:10: [redirected] http://docs.python.org/2.7/library/copy.html to http://docs.python.org/library/copy.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/collections.html to http://docs.python.org/library/collections.html
+lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:12: [redirected] http://docs.python.org/2.7/library/itertools.html to http://docs.python.org/library/itertools.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-lazyknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lazyknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lazyknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lcmpknife.rst:6: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lcmpknife.rst:6: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lcmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+lcmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lcmpknife.rst:2: [redirected] http://docs.python.org/2.7/reference/compound_stmts.html to http://docs.python.org/reference/compound_stmts.html
-lcmpknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lcmpknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lfilterknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lfilterknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
+lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
-lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/constants.html to http://docs.python.org/library/constants.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/library/collections.html to http://docs.python.org/library/collections.html
 lfilterknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lorderknife.rst:17: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lorderknife.rst:5: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lorderknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
+lorderknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lorderknife.rst:1: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
-lorderknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lorderknife.rst:1: [redirected] http://docs.python.org/2.7/library/stdtypes.html to http://docs.python.org/library/stdtypes.html
 lorderknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lorderknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lreduceknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lreduceknife.rst:2: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lreduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
+lreduceknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lreduceknife.rst:5: [redirected] http://docs.python.org/2.7/library/functions.html to http://docs.python.org/library/functions.html
 lreduceknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
-lreduceknife.rst:1: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lreduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lreduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 lreduceknife.rst:2: [redirected] http://docs.python.org/2.7/glossary.html to http://docs.python.org/glossary.html
 
 from fabric.api import prompt, local, settings, env, lcd
 
-regup = './setup.py register sdist --format=bztar,gztar,zip upload'
+regup = './setup.py register sdist --format=gztar,zip upload'
 nodist = 'rm -rf ./dist'
 sphinxup = './setup.py upload_sphinx'
 
     with settings(warn_only=True):
         local('hg push ssh://hg@bitbucket.org/lcrees/knife')
         local('hg push github')
-    local('./setup.py sdist --format=bztar,gztar,zip upload')
+    local('./setup.py sdist --format=gztar,zip upload')
     local(sphinxup)
     local(nodist)
 

File knife/_mixins.py

 
 from stuf.deep import selfname
 from stuf.utils import memoize
-from stuf.collects import Counter, ChainMap
 from stuf.six.moves import filterfalse, zip_longest  # @UnresolvedImport
 from stuf.iterable import deferfunc, deferiter, count
-from stuf.six import OrderedDict, filter, items, keys, map, strings, values
-
+from stuf.collects import OrderedDict, Counter, ChainMap
+from stuf.six import filter, items, keys, map, strings, values
 
 Count = namedtuple('Count', 'least most overall')
 GroupBy = namedtuple('Group', 'keys groups')
 
     @memoize
     def _traverse(
-        self, invert, CM=ChainMap, O=OrderedDict, S=StopIteration, cn=chain,
+        self, invert, CM=ChainMap, OD=OrderedDict, S=StopIteration, cn=chain,
         d=dir, f=filter, ff=filterfalse, ga=getattr, gm=getmro, ic=isclass,
-        ii=isinstance, nx=next, se=set, sn=selfname, vz=vars,
+        ii=isinstance, nx=next, se=set, sn=selfname, vz=vars, it=iter,
     ):
         if self._worker is None:
             test = lambda x: not x[0].startswith('__')
         else:
             test = self._worker
         ifilter = ff if invert else f
-        def members(iterable, beenthere=None): #@IgnorePep8
-            isclass_ = ic
-            getattr_ = ga
-            o_ = O
-            members_ = members
-            ifilter_ = ifilter
-            varz_ = vz
-            test_ = test
+        def members(iterable, beenthere=None):  # @IgnorePep8
             mro = gm(iterable)
-            names = d(iterable).__iter__()
+            names = it(d(iterable))
             if beenthere is None:
                 beenthere = se()
-            adder_ = beenthere.add
+            adder = beenthere.add
             try:
                 while 1:
                     name = nx(names)
                     # yes, it's really supposed to be a tuple
                     for base in cn([iterable], mro):
-                        var = varz_(base)
+                        var = vz(base)
                         if name in var:
                             obj = var[name]
                             break
                     else:
-                        obj = getattr_(iterable, name)
+                        obj = ga(iterable, name)
                     if obj in beenthere:
                         continue
                     else:
-                        adder_(obj)
-                    if isclass_(obj):
-                        yield name, o_((k, v) for k, v in ifilter_(
-                            test_, members_(obj, beenthere),
+                        adder(obj)
+                    if ic(obj):
+                        yield name, OD((k, v) for k, v in ifilter(
+                            test, members(obj, beenthere),
                         ))
                     else:
                         yield name, obj
-            except S:
+            except StopIteration:
                 pass
-        def traverse(iterable): #@IgnorePep8
-            isinstance_ = ii
-            selfname_ = sn
-            members_ = members
-            o_ = O
-            cm_ = CM
-            ifilter_ = ifilter
-            test_ = test
+        def traverse(iterable):  # @IgnorePep8
             try:
+                iterable = it(iterable)
                 while 1:
                     iterator = nx(iterable)
-                    chaining = cm_()
-                    chaining['classname'] = selfname_(iterator)
+                    chaining = CM()
+                    chaining['classname'] = sn(iterator)
                     cappend = chaining.maps.append
-                    for k, v in ifilter_(test_, members_(iterator)):
-                        if isinstance_(v, o_):
+                    for k, v in ifilter(test, members(iterator)):
+                        if isinstance(v, OD):
                             v['classname'] = k
                             cappend(v)
                         else:
                             chaining[k] = v
                     yield chaining
-            except S:
+            except StopIteration:
                 pass
         return self._xtend(traverse(self._iterable))
 

File knife/base.py

           are `'parse' <http://pypi.python.org/pypi/parse/>`_, `'re'
           <http://docs.python.org/library/re.html>`_, or `'glob' <http://docs.
           python.org/library/fnmatch.html>`_
-
         :keyword int flags: regular expression `flags <http://docs.python.org/
           library/re.html#re.DEBUG>`_
 

File knife/tests/mixins.py

         age = 969
 
 
+class stooge: #@IgnorePep8
+    name = 'moe'
+    age = 40
+class stooge2(stooge): #@IgnorePep8
+    pname = 'larry'
+    page = 50
+class stooge3(stoog2): #@IgnorePep8
+    aname = 'curly'
+    rage = 60
+    class stooge4(stooge): #@IgnorePep8
+        kname = 'beastly'
+        mage = 969
+
+
 class MathMixin(object):
 
     def test_pipe(self):
         )
 
     def test_traverse(self):
-        from stuf.six import OrderedDict
-        from stuf.collects import ChainMap
-        get = self.mclass(stooges, stoog2, stoog3).traverse().get()
+        self.maxDiff = None
+        from stuf.collects import ChainMap, OrderedDict
+        get = self.mclass(stoog3).traverse().get()
         self.assertEqual(
             get,
-            [ChainMap(OrderedDict([
-                ('classname', 'stooges'), ('age', 40), ('name', 'moe'),
-            ])),
             ChainMap(OrderedDict([
-                ('classname', 'stoog2'), ('age', 50), ('name', 'larry'),
-            ])),
-            ChainMap(
+                ('classname', 'stoog3'), ('age', 60), ('name', 'curly')]),
                 OrderedDict([
-                    ('classname', 'stoog3'), ('age', 60), ('name', 'curly'),
-                ]),
-                OrderedDict([
-                    ('age', 969), ('name', 'beastly'), ('classname', 'stoog4'),
-                ])
-            )],
+                ('age', 969), ('name', 'beastly'), ('classname', 'stoog4')]))
         )
         def test(x): #@IgnorePep8
             if x[0] == 'name':
                 OrderedDict([('classname', 'stoog4'), ('age', 969)])
             )],
         )
+        get = self.mclass(stooge, stooge2, stooge3).traverse().get()
+        self.assertEqual(
+            get,
+            [ChainMap(OrderedDict([
+                ('classname', 'stooge'), ('age', 40), ('name', 'moe')])),
+            ChainMap(
+                OrderedDict([
+                    ('classname', 'stooge'), ('age', 40), ('name', 'moe'),
+                    ('classname', 'stooge2'), ('page', 50), ('pname', 'larry')
+                ])
+            ),
+            ChainMap(OrderedDict([
+                ('classname', 'stooge3'), ('age', 50), ('aname', 'curly'),
+                ('name', 'larry'), ('rage', 60)]), OrderedDict([('age', 40),
+                ('kname', 'beastly'), ('mage', 969), ('name', 'moe'),
+                ('classname', 'stooge4')]))
+    ])
 
     def test_attrs(self):
         from stuf import stuf

File knife/version.py

 # -*- coding: utf-8 -*-
 
-__version__ = (0, 5, 4)
+__version__ = (0, 5, 5)
 
 setup(
     name='knife',
-    version='0.5.4',
+    version='0.5.5',
     description='Pythonic remix of underscore.js: Things go in. Things get '
         'knifed. Things go out.',
     long_description=open(join(getcwd(), 'README.rst'), 'r').read(),
   nose
   coverage
 commands=
-  nosetests {posargs:--with-coverage  --cover-package=knife}
+  nosetests {posargs:--with-coverage --cover-package=knife}
 
 [testenv:py31]
 deps=
   nose
   coverage
 commands=
-  nosetests {posargs:--with-coverage  --cover-package=knife}
+  nosetests {posargs:--with-coverage --cover-package=knife}
 
 [testenv:py27]
 deps=
   nose
   coverage
 commands=
-  nosetests {posargs:--with-coverage  --cover-package=knife}
+  nosetests {posargs:--with-coverage --cover-package=knife}
   
 [testenv:pypy]
 deps=
   nose
   coverage
 commands=
-  nosetests {posargs:--with-coverage  --cover-package=knife}
+  nosetests {posargs:--with-coverage --cover-package=knife}