def guess_export_format(filename, data, **kwargs):
    '''
    guess_export_format(filename, data) attempts to guess the export file format for the given
      filename and data (to be exported); it does this guessing by looking at the file extension and
      using registered sniff-tests from exporters.  It will not attempt to save the file, so if the
      extension of the filename is missing, it is less likely that this function will deduce the
      file-type (though save will often succeeed at extracting the data by trying all types
      exhaustively). If guess_export_format cannot deduce the format, it yields None.

    Note that if the filename has an extension that is recognized by neuropythy but the data itself
    is inappropriate for that format, this function will never look beyond the extention in the
    filename; neither this function nor save perform that level of deduction.
    
    Keyword arguments that are passed to save should also be passed to guess_export_format.
    '''
    
    # First try file endings
    (_,filename) = os.path.split(filename)
    fnm = filename.lower()
    fmt = None
    # to make sure we get the most specific ending, sort the exporters by their length
    es = sorted(((k,e) for (k,es) in six.iteritems(exporters) for e in es[1]),
                key=lambda x:-len(x[1]))
    for (k,e) in es:
        if fnm.endswith(('.' + e) if e[0] != '.' else e):
            return k
    # that didn't work; let's check the sniffers
    for (k,(_,_,sniff)) in six.iteritems(exporters):
        try:
            if sniff(filename, data, **kwargs): return k
        except Exception: pass
    return None
guess_export_format(filename, data) attempts to guess the export file format for the given
      filename and data (to be exported); it does this guessing by looking at the file extension and
      using registered sniff-tests from exporters.  It will not attempt to save the file, so if the
      extension of the filename is missing, it is less likely that this function will deduce the
      file-type (though save will often succeeed at extracting the data by trying all types
      exhaustively). If guess_export_format cannot deduce the format, it yields None.

    Note that if the filename has an extension that is recognized by neuropythy but the data itself
    is inappropriate for that format, this function will never look beyond the extention in the
    filename; neither this function nor save perform that level of deduction.
    
    Keyword arguments that are passed to save should also be passed to guess_export_format.