def process_docstring(app, what, name, obj, options, lines):

    labels = ['network', 'layer', 'plot']
    labels_regexp = '|'.join(labels)

    regexp = re.compile(
        r'\:({})+?\:'
        r'\`(.+?)(|\s<.+?>)\`'.format(labels_regexp)
    )

    for i, line in enumerate(lines):
        # Replace values one by one to make sure that there is no overlaps.
        replacement = regexp.search(line)
        while replacement:
            moduletype, display_name, classname = replacement.groups()

            if not classname:
                classname = display_name
            else:
                # Remove first second and last symbols.
                # They must be: \s, < and > respectively.
                classname = classname[2:-1]

            module = get_module_for_class(classname, moduletype)

            if not classname:
                newline_pattern = r':class:`\2 <{}\.\2>`'.format(module)
            else:
                newline_pattern = r':class:`\2 <{}\.{}>`'.format(module,
                                                                 classname)

            line = lines[i] = regexp.sub(newline_pattern, line, count=1)
            replacement = regexp.search(line)
Returns entire table as a DataFrame. This is executing:
dataset/ETHPy150Open itdxer/neupy/site/conf.py/process_docstring--crossover with--dataset/ETHPy150Open yhat/db.py/db/db.py/Table.all