<div dir="ltr"><div style>Hello everyone,</div><div style><br></div><div style>I packaged up some code I&#39;ve been using myself for a long time to find or inspect objects within IPython.  The implementation is totally independent of IPython (so anyone can use it) but I&#39;ve provided magic commands to make it especially convenient to use within IPython.</div>
<div style><br></div><div style>You can download releases from the PyPI page:</div><div><a href="http://pypi.python.org/pypi/grasp/">http://pypi.python.org/pypi/grasp/</a></div><div style>and the source code is on Launchpad:</div>
<div style><div><a href="http://launchpad.net/grasp">http://launchpad.net/grasp</a></div><div><br></div><div style>You use it just by saying &#39;import grasp&#39; and it registers the magic commands</div><div><br></div></div>
<div style>There are three main commands:</div><div style><br></div><div style>* gist -- what is the present object all about?  Present information about all of the attributes of an object, organized by type.  So all of the attributes that are integers are listed together, all methods are listed together, etc.  I find this very useful when confronted with an unfamiliar object and I&#39;m asking &quot;what kind of information does it contain?  What kinds of things can it do?&quot;</div>
<div style><br></div><div style>* rtype -- recursive type.  Take a list, tuple, dict, or other container class and recursively descend through its contents, collecting type information.  Try to concisely convey the structure of the object.  So this will tell you that (1,2,3) is a &quot;tuple of 3 ints&quot; and ( [1,2], [3,4], [5,6] ) is a &quot;tuple of 3 (list of 2 ints)&quot; </div>
<div style><br></div><div style>* apropos -- deep search of modules (or the global namespace) for objects with a given name, value, or docstring contents.  Suppose I know that IPython allows me to set the color scheme, to &quot;Linux&quot;, &quot;LightBG&quot;, or whatever.  But I have no idea where within the IPython module to find the setting.  I can type &quot;%apropos colors IPython&quot; and apropos will search through the IPython module, all submodules, all of _their_ submodules, etc, and return a list of places I should poke around to learn more about how IPython handles colors.  </div>
<div style><br></div><div style>Apropos is similar to the %psearch function, but I believe the %psearch function only searches one namespace at a time -- it doesn&#39;t recurse.  So you can do things like &quot;%psearch IPython.colors*&quot; or &quot;%psearch IPython.*.colors&quot; but you can&#39;t have it recursively search all submodules.  Also, Apropos is more flexible in allowing you to search for things by name, value, docstring, equality, etc.</div>
<div><br></div><div style>Enjoy, and feedback is welcome.</div><div style>Greg</div><div style><br></div></div>