[gobject-introspection: 1/3] Always pass an encoding to open() using text mode




commit 5f966b0b8d61e2abf003439b2f93a9bd19be798c
Author: Christoph Reiter <reiter christoph gmail com>
Date:   Sat Nov 7 08:41:42 2020 +0100

    Always pass an encoding to open() using text mode
    
    Otherwise we'll end up using the locale encoding. While it's usually utf-8,
    that's not the case on Windows.
    
    There is one place where a file with filenames is passed, not sure there
    so I left it and passed a explicit None.

 giscanner/cachestore.py               | 4 ++--
 giscanner/ccompiler.py                | 2 +-
 giscanner/codegen.py                  | 4 ++--
 giscanner/docmain.py                  | 2 +-
 giscanner/dumper.py                   | 4 ++--
 giscanner/gdumpparser.py              | 2 +-
 giscanner/scannermain.py              | 2 +-
 giscanner/utils.py                    | 4 ++--
 misc/update-gtkdoc-tests.py           | 2 +-
 misc/update-vulkan-gir.py             | 2 +-
 tests/scanner/test_maintransformer.py | 2 +-
 tests/scanner/test_transformer.py     | 2 +-
 tests/warn/warningtester.py           | 2 +-
 13 files changed, 17 insertions(+), 17 deletions(-)
---
diff --git a/giscanner/cachestore.py b/giscanner/cachestore.py
index baaaf1ede..e3b76058d 100644
--- a/giscanner/cachestore.py
+++ b/giscanner/cachestore.py
@@ -65,7 +65,7 @@ class CacheStore(object):
         current_hash = _get_versionhash()
         version = os.path.join(self._directory, _CACHE_VERSION_FILENAME)
         try:
-            with open(version, 'r') as version_file:
+            with open(version, 'r', encoding='utf-8') as version_file:
                 cache_hash = version_file.read()
         except (IOError, OSError) as e:
             # File does not exist
@@ -81,7 +81,7 @@ class CacheStore(object):
 
         tmp_fd, tmp_filename = tempfile.mkstemp(prefix='g-ir-scanner-cache-version-')
         try:
-            with os.fdopen(tmp_fd, 'w') as tmp_file:
+            with os.fdopen(tmp_fd, 'w', encoding='utf-8') as tmp_file:
                 tmp_file.write(current_hash)
 
             # On Unix, this would just be os.rename() but Windows
diff --git a/giscanner/ccompiler.py b/giscanner/ccompiler.py
index bd1aa78ed..cb97e76fa 100644
--- a/giscanner/ccompiler.py
+++ b/giscanner/ccompiler.py
@@ -387,7 +387,7 @@ class CCompiler(object):
                             output_flag = ['-out:' + tmp_filename]
                             proc = subprocess.call(args + [implib] + output_flag,
                                                    stdout=subprocess.PIPE)
-                            with open(tmp_filename, 'r') as tmp_fileobj:
+                            with open(tmp_filename, 'r', encoding='utf-8') as tmp_fileobj:
                                 for line in tmp_fileobj.read().splitlines():
 
                                     if '__IMPORT_DESCRIPTOR_' in line:
diff --git a/giscanner/codegen.py b/giscanner/codegen.py
index 138acf726..9faf3caba 100644
--- a/giscanner/codegen.py
+++ b/giscanner/codegen.py
@@ -161,8 +161,8 @@ class CCodeGenerator(object):
         self._function_bodies[node] = body
 
     def codegen(self):
-        self.out_h = open(self.out_h_filename, 'w')
-        self.out_c = open(self.out_c_filename, 'w')
+        self.out_h = open(self.out_h_filename, 'w', encoding='utf-8')
+        self.out_c = open(self.out_c_filename, 'w', encoding='utf-8')
 
         self._codegen_start()
 
diff --git a/giscanner/docmain.py b/giscanner/docmain.py
index 6ef1de4ed..dab063ef2 100644
--- a/giscanner/docmain.py
+++ b/giscanner/docmain.py
@@ -71,7 +71,7 @@ def doc_main(args):
     if args.format == 'sections':
         sections_file = generate_sections_file(transformer)
 
-        with open(args.output, 'w') as fp:
+        with open(args.output, 'w', encoding='utf-8') as fp:
             write_sections_file(fp, sections_file)
     else:
         writer = DocWriter(transformer, args.language, args.format)
diff --git a/giscanner/dumper.py b/giscanner/dumper.py
index e4b6ea03a..f61c46c12 100644
--- a/giscanner/dumper.py
+++ b/giscanner/dumper.py
@@ -111,13 +111,13 @@ class DumpCompiler(object):
                                           'gobject-introspection-1.0', 'gdump.c')
         if not os.path.isfile(gdump_path):
             raise SystemExit("Couldn't find %r" % (gdump_path, ))
-        with open(gdump_path) as gdump_file:
+        with open(gdump_path, encoding='utf-8') as gdump_file:
             gdump_contents = gdump_file.read()
         tpl_args['gdump_include'] = gdump_contents
         tpl_args['init_sections'] = "\n".join(self._options.init_sections)
 
         c_path = self._generate_tempfile(tmpdir, '.c')
-        with open(c_path, 'w') as f:
+        with open(c_path, 'w', encoding='utf-8') as f:
             f.write(_PROGRAM_TEMPLATE % tpl_args)
 
             # We need to reference our get_type and error_quark functions
diff --git a/giscanner/gdumpparser.py b/giscanner/gdumpparser.py
index e7ccf575b..3d9720d0e 100644
--- a/giscanner/gdumpparser.py
+++ b/giscanner/gdumpparser.py
@@ -144,7 +144,7 @@ class GDumpParser(object):
         """Load the library (or executable), returning an XML
 blob containing data gleaned from GObject's primitive introspection."""
         in_path = os.path.join(self._binary.tmpdir, 'functions.txt')
-        with open(in_path, 'w') as f:
+        with open(in_path, 'w', encoding='utf-8') as f:
             for func in self._get_type_functions:
                 f.write('get-type:')
                 f.write(func)
diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
index ca9065b27..f80b2cfe7 100644
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -334,7 +334,7 @@ def extract_filelist(options):
     filenames = []
     if not os.path.exists(options.filelist):
         _error('%s: no such filelist file' % (options.filelist, ))
-    with open(options.filelist, "r") as filelist_file:
+    with open(options.filelist, "r", encoding=None) as filelist_file:
         lines = filelist_file.readlines()
     for line in lines:
         # We don't support real C++ parsing yet, but we should be able
diff --git a/giscanner/utils.py b/giscanner/utils.py
index d9938fc7e..85c0b9107 100644
--- a/giscanner/utils.py
+++ b/giscanner/utils.py
@@ -84,7 +84,7 @@ _libtool_pat = re.compile("dlname='([A-z0-9\\.\\-\\+]+)'\n")
 
 
 def _extract_dlname_field(la_file):
-    with open(la_file) as f:
+    with open(la_file, encoding='utf-8') as f:
         data = f.read()
     m = _libtool_pat.search(data)
     if m:
@@ -97,7 +97,7 @@ _libtool_libdir_pat = re.compile("libdir='([^']+)'")
 
 
 def _extract_libdir_field(la_file):
-    with open(la_file) as f:
+    with open(la_file, encoding='utf-8') as f:
         data = f.read()
     m = _libtool_libdir_pat.search(data)
     if m:
diff --git a/misc/update-gtkdoc-tests.py b/misc/update-gtkdoc-tests.py
index c182fc113..6f45e3487 100644
--- a/misc/update-gtkdoc-tests.py
+++ b/misc/update-gtkdoc-tests.py
@@ -191,7 +191,7 @@ if __name__ == '__main__':
                 writer = GtkDocCommentBlockWriter(indent=True)
                 logger.enable_warnings(True)
 
-                with io.open(path, 'r') as f:
+                with io.open(path, 'r', encoding='utf-8') as f:
                     lines = f.readlines()
 
                 chunks = []
diff --git a/misc/update-vulkan-gir.py b/misc/update-vulkan-gir.py
index 89792c128..4154702a2 100644
--- a/misc/update-vulkan-gir.py
+++ b/misc/update-vulkan-gir.py
@@ -24,7 +24,7 @@ def show_func_defs(filename, output, extra_cpp_args=None):
     ast = parse_file(filename, use_cpp=True,
                      cpp_args=extra_cpp_args)
 
-    with open(output, 'w') as f:
+    with open(output, 'w', encoding='utf-8') as f:
         f.write("""<?xml version="1.0"?>
 <repository version="1.2"
             xmlns="http://www.gtk.org/introspection/core/1.0";
diff --git a/tests/scanner/test_maintransformer.py b/tests/scanner/test_maintransformer.py
index abf3ee73c..f0e2d6295 100644
--- a/tests/scanner/test_maintransformer.py
+++ b/tests/scanner/test_maintransformer.py
@@ -16,7 +16,7 @@ def create_scanner_from_source_string(source):
     tmp_fd, tmp_name = tempfile.mkstemp(suffix='.h', text=True)
 
     try:
-        with os.fdopen(tmp_fd, 'wt') as file:
+        with os.fdopen(tmp_fd, 'w', encoding='utf-8') as file:
             file.write(source)
         ss.parse_files([tmp_name])
     finally:
diff --git a/tests/scanner/test_transformer.py b/tests/scanner/test_transformer.py
index c6fbf4e75..3feed4413 100644
--- a/tests/scanner/test_transformer.py
+++ b/tests/scanner/test_transformer.py
@@ -18,7 +18,7 @@ def create_scanner_from_source_string(source):
     tmp_fd, tmp_name = tempfile.mkstemp(suffix='.h', text=True)
 
     try:
-        with os.fdopen(tmp_fd, 'wt') as file:
+        with os.fdopen(tmp_fd, 'w', encoding='utf-8') as file:
             file.write(source)
         ss.parse_files([tmp_name])
     finally:
diff --git a/tests/warn/warningtester.py b/tests/warn/warningtester.py
index fedd3a598..3bb9e4b2b 100644
--- a/tests/warn/warningtester.py
+++ b/tests/warn/warningtester.py
@@ -78,7 +78,7 @@ def _diff(a, b):
 
 
 def _extract_expected(filename):
-    fd = open(filename, 'r')
+    fd = open(filename, 'r', encoding='utf-8')
     data = fd.read()
     fd.close()
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]