parameters: (ob)
return_statement: return arg_text
docstring: Get a string describing the arguments for the given object,
         only if it is callable.
docstring_summary: Get a string describing the arguments for the given object,
         only if it is callable.
docstring_tokens: Get a string describing the arguments for the given object only if it is callable .
function: def get_arg_text(ob):
      """Get a string describing the arguments for the given object,
         only if it is callable."""
      arg_text = ""
      if ob is not None and hasattr(ob, '__call__'):
          arg_offset = 0
          if type(ob) in (types.ClassType, types.TypeType):
              # Look for the highest __init__ in the class chain.
              fob = _find_constructor(ob)
              if fob is None:
                  fob = lambda: None
              else:
                  arg_offset = 1
          elif type(ob)==types.MethodType:
              # bit of a hack for methods - turn it into a function
              # but we drop the "self" param.
              fob = ob.im_func
              arg_offset = 1
          else:
              fob = ob
          # Try to build one for Python defined functions
          if type(fob) in [types.FunctionType, types.LambdaType]:
              argcount = fob.func_code.co_argcount
              real_args = fob.func_code.co_varnames[arg_offset:argcount]
              defaults = fob.func_defaults or []
              defaults = list(map(lambda name: "=%s" % repr(name), defaults))
              defaults = [""] * (len(real_args) - len(defaults)) + defaults
              items = map(lambda arg, dflt: arg + dflt, real_args, defaults)
              if fob.func_code.co_flags & 0x4:
                  items.append("...")
              if fob.func_code.co_flags & 0x8:
                  items.append("***")
              arg_text = ", ".join(items)
              arg_text = "(%s)" % re.sub("\.\d+", "<tuple>", arg_text)
          # See if we can use the docstring
          doc = getattr(ob, "__doc__", "")
          if doc:
              doc = doc.lstrip()
              pos = doc.find("\n")
              if pos < 0 or pos > 70:
                  pos = 70
              if arg_text:
                  arg_text += "\n"
              arg_text += doc[:pos]
      return arg_text
function_tokens: def get_arg_text ( ob ) : arg_text = "" if ob is not None and hasattr ( ob , '__call__' ) : arg_offset = 0 if type ( ob ) in ( types . ClassType , types . TypeType ) : # Look for the highest __init__ in the class chain. fob = _find_constructor ( ob ) if fob is None : fob = lambda : None else : arg_offset = 1 elif type ( ob ) == types . MethodType : # bit of a hack for methods - turn it into a function # but we drop the "self" param. fob = ob . im_func arg_offset = 1 else : fob = ob # Try to build one for Python defined functions if type ( fob ) in [ types . FunctionType , types . LambdaType ] : argcount = fob . func_code . co_argcount real_args = fob . func_code . co_varnames [ arg_offset : argcount ] defaults = fob . func_defaults or [ ] defaults = list ( map ( lambda name : "=%s" % repr ( name ) , defaults ) ) defaults = [ "" ] * ( len ( real_args ) - len ( defaults ) ) + defaults items = map ( lambda arg , dflt : arg + dflt , real_args , defaults ) if fob . func_code . co_flags & 0x4 : items . append ( "..." ) if fob . func_code . co_flags & 0x8 : items . append ( "***" ) arg_text = ", " . join ( items ) arg_text = "(%s)" % re . sub ( "\.\d+" , "<tuple>" , arg_text ) # See if we can use the docstring doc = getattr ( ob , "__doc__" , "" ) if doc : doc = doc . lstrip ( ) pos = doc . find ( "\n" ) if pos < 0 or pos > 70 : pos = 70 if arg_text : arg_text += "\n" arg_text += doc [ : pos ] return arg_text