Return a list of design where the representative model has a restraint
    distance less that the given threshold.  The default threshold (1.2) is
    fairly lenient.

def find_reasonable_designs(workspaces, condition=None, verbose=False):
    """
    Return a list of design where the representative model has a restraint
    distance less that the given threshold.  The default threshold (1.2) is
    fairly lenient.
    """
    print "Loading designs..."

    designs = []

    if condition is None:
        condition = 'restraint_dist < 1.2'

    for workspace in workspaces:
        for directory in workspace.output_subdirs:
            if verbose:
                print '  ' + directory

            design = structures.Design(directory)
            vars = design.structures.iloc[design.rep].to_dict()
            if pd.eval(condition, local_dict=vars):
                designs.append(design)

    return designs