human
Solve the following python programming problem given the following code:
def cmp_docstring_sig(f) : 
    def build_loc(f) : 
        path = f.__code__.co_filename.split (args.path, 1) [(- 1)] [1 :] 
        return dict (path = path, lnum = f.__code__.co_firstlineno) 
import inspect 
    sig_names = set (inspect.getargspec (f).args) 
    doc = f.__doc__.lower () 
    doc = re.split ('^\\s*parameters\\s*', doc, 1, re.M) [(- 1)] 
    doc = re.split ('^\\s*returns*', doc, 1, re.M) [0] 
    doc_names = { x.split (':') [0].strip () for x in doc.split ('
') if re.match ('\\s+[\\w_]+\\s*:', x) } 
    sig_names.discard ('self') 
    doc_names.discard ('kwds') 
    doc_names.discard ('kwargs') 
    doc_names.discard ('args') 
    return Entry (func = f, path = build_loc (f) ['path'], lnum = build_loc (doc_names) ['lnum'], undoc_names = sig_names.difference (doc_names), missing_args = doc_names.difference (sig_names), nsig_names = len (sig_names), ndoc_names = len (doc_names)) 

    
    

    Fix the buggy line: return Entry (func = f, path = build_loc (f) ['path'], lnum = build_loc (doc_names) ['lnum'], undoc_names = sig_names.difference (doc_names), missing_args = doc_names.difference (sig_names), nsig_names = len (sig_names), ndoc_names = len (doc_names))
assistant
#Here is Python code to fix the buggy line: return Entry (func = f, path = build_loc (f) ['path'], lnum = build_loc (doc_names) ['lnum'], undoc_names = sig_names.

return Entry (func = f, path = build_loc (f) ['path'], lnum = build_loc (f) ['lnum'], undoc_names = sig_names.difference (doc_names), missing_args = doc_names.difference (sig_names), nsig_names = len (sig_names), ndoc_names = len (doc_names))