human
Solve the following python programming problem given the following code:
@ staticmethod 
def process_subrs(glyph_set_keys, encodings, fdlen, fdselect, substrings, rev_keymap, subr_limit, nest_limit, verbose = False) : 
    post_time = time.time () 
    def mark_reachable(cand_subr, fdidx) : 
        try : 
            if (fdidx not in cand_subr._fdidx) : 
                cand_subr._fdidx.append (fdidx) 
except AttributeError : 
            cand_subr._fdidx = [fdidx] 
for it in cand_subr._encoding : 
            mark_reachable (it [1], fdidx) 
if (fdselect != None) : 
        for (g, enc) in zip (glyph_set_keys, encodings) : 
            sel = fdselect (g) 
            for it in enc : 
                mark_reachable (it [1], sel) 
else : 
        for encoding in encodings : 
            for it in encoding : 
                mark_reachable (it [1], 0) 
subrs = [s for s in substrings if ((s.usages () > 0) and hasattr (s, '_fdidx') and bool (s._fdidx) and (s.subr_saving (use_usages = True, true_cost = True) > 0))] 
    bad_substrings = [s for s in substrings if ((s.usages () == 0) or (not hasattr (s, '_fdidx')) or (not bool (s._fdidx)) or (s.subr_saving (use_usages = True, true_cost = True) <= 0))] 
    if verbose : 
        print (('%d substrings unused or negative saving subrs' % len (bad_substrings))) 
def set_flatten(s) : 
        s._flatten = True 
map (set_flatten, bad_substrings) 
    gsubrs = [] 
    lsubrs = [[] for _ in xrange (fdlen)] 
    subrs.sort (key = (lambda s : s.subr_saving (use_usages = True, true_cost = True))) 
    while (subrs and (any (((len (s) < subr_limit) for s in lsubrs)) or (len (gsubrs) < subr_limit))) : 
        subr = subrs [(- 1)] 
        del subrs [(- 1)] 
        if (len (subr._fdidx) == 1) : 
            lsub_index = lsubrs [subr._fdidx [0]] 
            if (len (gsubrs) < subr_limit) : 
                if (len (lsub_index) < subr_limit) : 
                    gcost = Compreffor.test_call_cost (subr, gsubrs) 
                    lcost = Compreffor.test_call_cost (subr, lsub_index) 
                    if (gcost < lcost) : 
                      ...

    
    

    Fix the buggy line: if (hasattr (subr, '_fdidx') and (len (nest_limit._fdidx) > 0)) :
assistant
#Here is Python code to fix the buggy line: if (hasattr (subr, '_fdidx') and (len (nest_limit.

if (hasattr (subr, '_fdidx') and (len (subr._fdidx) > 0)) :