Salome HOME
Merge branch 'master' into V9_dev
authorGilles DAVID <gilles-g.david@edf.fr>
Fri, 22 Sep 2017 16:20:32 +0000 (18:20 +0200)
committerGilles DAVID <gilles-g.david@edf.fr>
Fri, 22 Sep 2017 16:20:32 +0000 (18:20 +0200)
1  2 
copyright/insert_copyright

index 50f63b5f1a59bd7e63f5ec53e6b814d2607951bb,b08a80770c7e2de3f2c727ec54cc1928ecd6c9f6..e91ec3ada20b4d2e58c6537b2102e94dc846e6d3
@@@ -205,14 -205,8 +205,14 @@@ def autodetect_owner(filename)
          while directory != '/':
              config_file = os.path.join(directory, '.git', 'config')
              if os.path.exists(config_file):
 -                from ConfigParser import ConfigParser
 -                from StringIO import StringIO
 +                try:
 +                    from ConfigParser import ConfigParser
 +                except ImportError:
 +                    from configparser import ConfigParser
 +                try:
 +                    from StringIO import StringIO
 +                except ImportError:
 +                    from io import StringIO
                  with open(config_file) as fid:
                      gitcfg = fid.readlines()
                      cfg = ConfigParser()
@@@ -246,14 -240,31 +246,31 @@@ def autodetect_format(filename)
          'shell': ('sh', 'bash', 'csh', 'cmake', 'txt', 'cfg', 'ini', 'm4'),
          'python': ('py',),
          }
+     rev_extensions = {e: k for k, exts in extensions.items() for e in exts}
      if filename and os.path.isfile(filename):
          extension = os.path.splitext(filename)[1][1:].lower()
          if extension in ('in',):
              name = os.path.splitext(filename)[0]
              extension = os.path.splitext(name)[1][1:].lower()
-         for file_format in extensions:
-             if extension in extensions[file_format]:
-                 return format
+         if extension in rev_extensions:
+             return rev_extensions[extension]
+     try:
+         import magic
+         m = magic.open(magic.MAGIC_MIME_TYPE)
+         m.load()
+         file_formats = {
+             'cpp': ('text/x-c', 'text/x-c++'),
+             'shell': ('text/x-shellscript',),
+             'python': ('text/x-python',),
+             }
+         rev_file_formats = {f: k for k, ff in file_formats.items() for f in ff}
+         file_format = m.file(filename)
+         if file_format in rev_file_formats:
+             return rev_file_formats[file_format]
+     except ImportError:
+         pass
      return None