def get_description_lines(docstring):
    """Extract the description from the given docstring.

    This grabs everything up to the first occurrence of something that looks
    like a parameter description. The docstring will be dedented and cleaned
    up using the standard Sphinx methods.

    :param str docstring: The source docstring.
    :returns: list
    """
    if prepare_docstring is None:
        raise ImportError('sphinx must be installed to use this function.')

    if not isinstance(docstring, str):
        return []
    lines = []
    for line in prepare_docstring(docstring):
        if DESCRIPTION_END_RE.match(line):
            break
        lines.append(line)
    if lines and lines[-1] != '':
        lines.append('')
    return lines