code: def loadSV(fname, shape=None, titles=None, aligned=False, byteorder=None,  
             renamer=None, **kwargs):
      [columns, metadata] = loadSVcols(fname, **kwargs)
      if 'names' in metadata.keys():
          names = metadata['names']
      else:
          names = None
      if 'formats' in metadata.keys():
          formats = metadata['formats']
      else:
          formats = None
      if 'dtype' in metadata.keys():
          dtype = metadata['dtype']
      else:
          dtype = None
      if renamer is not None:
          print 'Trying user-given renamer ...'
          renamed = renamer(names)
          if len(renamed) == len(uniqify(renamed)):
              names = renamed
              print '''... using renamed names (original names will be in return 
                       metadata)'''
          else:
              print '... renamer failed to produce unique names, not using.'
      if names and len(names) != len(uniqify(names)):
          print 'Names are not unique, reverting to default naming scheme.'
          names = None
      return [utils.fromarrays(columns, type=np.ndarray, dtype=dtype, 
                               shape=shape, formats=formats, names=names, 
                               titles=titles, aligned=aligned, 
                               byteorder=byteorder), metadata]