ipython instrospection like editor,ide

I

Ismael Herrera

Hi,i wonder if there is an editor or ide that has similar dinamic
instrospection features as ipython? ,since i have failed to find one, i
spend more time coding in ipython than in my editor.

Well the feature i need the most is tab introspection since python has so
many libraries and functions that is imposible to remember all of them.For
example when i type urllib2.<tab> i get:

urllib2.AbstractBasicAuthHandler urllib2.__class__
urllib2.mimetools
urllib2.AbstractDigestAuthHandler urllib2.__delattr__
urllib2.mimetypes
urllib2.AbstractHTTPHandler urllib2.__dict__
urllib2.noheaders
urllib2.BaseHandler urllib2.__doc__
urllib2.os
urllib2.CacheFTPHandler urllib2.__file__
urllib2.parse_http_list
urllib2.CustomProxy urllib2.__getattribute__
urllib2.parse_keqv_list

<skip>..

I also made a function that gives me a quickly overview of an objects,for
example when i type h(urllib2) i get :

AbstractBasicAuthHandler <c> : Non
AbstractDigestAuthHandler <c> : Non
AbstractHTTPHandler <c> : Non
BaseHandler <c> : Non
CacheFTPHandler <c> : Non
CustomProxy <c> : Non
CustomProxyHandler <c> : Non
socket <m> : This module provides socket operations and some related
splitattr <f> : splitattr('/path;attr1=value1;attr2=value2;...') ->
splitgophertype <f> : splitgophertype('/Xselector') --> 'X', 'selector'
splithost <f> : splithost('//host[:port]/path') --> 'host[:port]', '/path'
splitpasswd <f> : splitpasswd('user:passwd') -> 'user', 'passwd'
splitport <f> : splitport('host:port') --> 'host', 'port'
splitquery <f> : splitquery('/path?query') --> '/path', 'query'
splittype <f> : splittype('type:eek:paquestring') --> 'type', 'opaquestring'
splituser <f> : splituser('user[:passwd]@host[:port]') --> 'user[:passwd]',
unquote <f> : unquote('abc%20def') -> 'abc def'
unwrap <f> : unwrap('<URL:type://host/path>') --> 'type://host/path'
url2pathname <f> : Non
urlopen <f> : Non
urlparse <m>


Well,i would like similar functionality in the enviroment that i am coding
in, i hate having to go to the interactive shell every 7 seconds to type
'h(<class name>)' for example.

The code for my help function (is sucky since i have had so much trouble
finding the types of some objects and doesnt work for some modules):

import sgmllib
import types

def h(name,display='all',allow_herencia=False):
'''name-> any object name that is not an instance(module,attr,func)
display-> all | m | f | c | a ie : m = module
allow_Herencia True | False

Display object's information for a quick overview
'''

if allow_herencia == True : iter = dir(name)
else :
iter = name.__dict__.keys()
iter.sort()

for x in iter:

attr = getattr(name,x)

try: ## can be better with hasattr() builtin
doc = str(attr.__doc__)
except:
print ' %s %s' % (x,attr)
continue
else :

limit = doc.find('\n')
doc = doc[:limit]
membertype = __gettype(attr)

if display is membertype or display is 'all': print ' %s <%s> : %s'
% (x,membertype,doc)


def __gettype(attr):
## needs reworking
t = type(attr)
#print t

if t is types.ModuleType : return 'm'

elif t is type(str.isupper) or\
t is types.BuiltinFunctionType or\
t is types.FunctionType or\
t is types.UnboundMethodType or\
t is '<type \'instancemethod\'>' :

return 'f'

elif t is type(str.__eq__) : return 'w' #wraper

elif t is types.TypeType or t is type(sgmllib.SGMLParser): return 'c'

else: return 'a'
 
V

Ville Vainio

Ismael> Hi,i wonder if there is an editor or ide that has similar
Ismael> dinamic instrospection features as ipython? ,since i have
Ismael> failed to find one, i spend more time coding in ipython
Ismael> than in my editor.

Eclipse + pydev has code completion, i.e if you type

"os."

It gives you the list of all the stuff in os.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,208
Messages
2,571,083
Members
47,683
Latest member
AustinFairchild

Latest Threads

Top