looking for library function browser to run inside (x)emacs

Les Schaffer godzilla at netmeg.net
Mon Apr 24 22:46:56 CEST 2000


I have been using the OOBrowser inside XEmacs for a couple years and
its useful for browsing class hierarchies.

but i find it does not allow for browsing function hierarchies, such
as is found in the [...]/python/site-packages and subdirs.

does anyone know of a package which runs inside emacs allowing to
browse function hierarchies?

by hierarchies, i mean something like all the standalone functions
which reside in modules like so (below site-packages):

scientific/ArrayIO.py           
scientific/Color.py             
scientific/Derivatives.py       
....
Numerical/ArrayPrinter.py   
Numerical/FFT.py           
Numerical/LinearAlgebra.py 
etc...

for example:

>>>
(gustav)/usr/lib/python1.5/site-packages/: cd scientific
(gustav)/usr/lib/python1.5/site-packages/scientific/: grep "^def " ArrayIO.py
def readArray(filename):
def writeArray(a, filename):
def writeDataSets(datasets, filename, separator = ''):
<<<

the problem with OO browser is it seems to only like to catalogue
functions which exit in the so-called system tree -- that is -- the
files one is creating locally for a project. it doesnt catalog modules
(like those listed above) containing class-less functions which exist
in the library hierarchy inside scientific, Numerical, etc.

many thanks for any pointers...

i'm tempted to wrote something myself which grabs __doc__ strings
from the lib hierarchy and arranges/formats them inside an xemacs
buffer. (assuming all functions are suitably doc'ed ;-) but the more
interesting part would be to make the buffer clickable, so if i see a
function i like, i can read it into xemacs and see if it does what i
need and learn how to use it...

i wrote a little script to grep for 'def XXX' strings hard left
in each py file in the site-packages hierarchy:

(gustav)/usr/lib/python1.5/site-packages/: findpydef | wc -l
   3550

thatsalottafunctions!!!

interestingly, not a lot of them are marked module private 

e.g.

def _ummagumma():
   """Careful with that ax, eugene"""

though i am betting a lot __could be__.....

les schaffer

======= how many def's you got??? ====

#!/bin/sh

cd /usr/lib/python1.5/site-packages

PYFILES=`find . -name "*.py"`

for file in $PYFILES; do

  echo "Checking $file ..."
  grep "^def " $file
done  



More information about the Python-list mailing list