docs: def load_datafile(name, search_path=('.'), codecs=get_codecs(), **kwargs):
      """
      find datafile and load them from codec
      TODO only does the first one
      kwargs:
      default = if passed will return that on failure instead of throwing
      """
      mod = find_datafile(name, search_path, codecs)
      if not mod:
          if 'default' in kwargs:
              return kwargs['default']
          raise IOError("file %s not found in search path %s" %(name, str(search_path)))
  
      (codec, datafile) = mod[0]
      return codec().load(open(datafile))