def read_file(filename):
    """Reads a TSPLIB file and returns the problem data.
    
    Args
    ----
    filename: str
    
    Returns
    -------
    type
        Problem specs.
    
    """
    sanitized_filename = sanitize(filename)

    f = open(sanitized_filename)

    specs = None

    try:
        specs = _parse_tsplib(f)
    except ParseException:
        raise
    finally: # 'finally' is executed even when we re-raise exceptions
        f.close()

    if specs['TYPE'] != 'CVRP':
        raise Exception('Not a CVRP TSPLIB problem. Found: {}'.format(specs['TYPE']))
    
    #additional params for graph/network (temporary)
    specs['VOLTAGE'] = 20000
    specs['CABLETYPE'] = 1

    #return (Graph(specs), specs)
    return Graph(specs)
Reads a TSPLIB file and returns the problem data.
    
    Args
    ----
    filename: str
    
    Returns
    -------
    type
        Problem specs.