Variable: python-eldoc-setup-code

python-eldoc-setup-code is a customizable variable defined in python.el.gz.

Value

"def __PYDOC_get_help(obj):\n    try:\n        import inspect\n        try:\n            str_type = basestring\n            argspec_function = inspect.getargspec\n        except NameError:\n            str_type = str\n            argspec_function = inspect.getfullargspec\n        if isinstance(obj, str_type):\n            obj = eval(obj, globals())\n        doc = inspect.getdoc(obj)\n        if not doc and callable(obj):\n            target = None\n            if inspect.isclass(obj) and hasattr(obj, '__init__'):\n                target = obj.__init__\n                objtype = 'class'\n            else:\n                target = obj\n                objtype = 'def'\n            if target:\n                if hasattr(inspect, 'signature'):\n                    args = str(inspect.signature(target))\n                else:\n                    args = inspect.formatargspec(*argspec_function(target))\n                name = obj.__name__\n                doc = '{objtype} {name}{args}'.format(\n                    objtype=objtype, name=name, args=args\n                )\n        else:\n            doc = doc.splitlines()[0]\n    except:\n        doc = ''\n    return doc"

Documentation

Python code to setup documentation retrieval.

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/python.el.gz
;;; ElDoc

(defcustom python-eldoc-setup-code
  "def __PYDOC_get_help(obj):
    try:
        import inspect
        try:
            str_type = basestring
            argspec_function = inspect.getargspec
        except NameError:
            str_type = str
            argspec_function = inspect.getfullargspec
        if isinstance(obj, str_type):
            obj = eval(obj, globals())
        doc = inspect.getdoc(obj)
        if not doc and callable(obj):
            target = None
            if inspect.isclass(obj) and hasattr(obj, '__init__'):
                target = obj.__init__
                objtype = 'class'
            else:
                target = obj
                objtype = 'def'
            if target:
                if hasattr(inspect, 'signature'):
                    args = str(inspect.signature(target))
                else:
                    args = inspect.formatargspec(*argspec_function(target))
                name = obj.__name__
                doc = '{objtype} {name}{args}'.format(
                    objtype=objtype, name=name, args=args
                )
        else:
            doc = doc.splitlines()[0]
    except:
        doc = ''
    return doc"
  "Python code to setup documentation retrieval."
  :type 'string)