docs: 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