From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: ahochheiden Date: Thu, 2 Jun 2022 06:27:44 +0000 Subject: [PATCH] Bug 1769631 - Remove 'U' from 'mode' parameters for various 'open' calls to ensure Python3.11 compatibility r=firefox-build-system-reviewers,glandium a=RyanVM The 'U' flag represents "universal newline". It has been deprecated since Python3.3. Since then "universal newline" is the default when a file is opened in text mode (not bytes). In Python3.11 using the 'U' flag throws errors. There should be no harm in removing 'U' from 'open' everywhere it is used, and doing allows the use of Python3.11. For more reading see: https://docs.python.org/3.11/whatsnew/3.11.html#changes-in-the-python-api Differential Revision: https://phabricator.services.mozilla.com/D147721 --- dom/base/usecounters.py | 2 +- python/mozbuild/mozbuild/action/process_define_files.py | 2 +- python/mozbuild/mozbuild/backend/base.py | 2 +- python/mozbuild/mozbuild/preprocessor.py | 6 +++--- python/mozbuild/mozbuild/util.py | 2 +- python/mozbuild/mozpack/files.py | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py index 780e3b32b213..7e2c7148ece5 100644 --- a/dom/base/usecounters.py +++ b/dom/base/usecounters.py @@ -8,7 +8,7 @@ import re def read_conf(conf_filename): # Can't read/write from a single StringIO, so make a new one for reading. - stream = open(conf_filename, "rU") + stream = open(conf_filename, "r") def parse_counters(stream): for line_num, line in enumerate(stream): diff --git a/python/mozbuild/mozbuild/action/process_define_files.py b/python/mozbuild/mozbuild/action/process_define_files.py index f1d401ac2600..aca59d0f0517 100644 --- a/python/mozbuild/mozbuild/action/process_define_files.py +++ b/python/mozbuild/mozbuild/action/process_define_files.py @@ -36,7 +36,7 @@ def process_define_file(output, input): ) and not config.substs.get("JS_STANDALONE"): config = PartialConfigEnvironment(mozpath.join(topobjdir, "js", "src")) - with open(path, "rU") as input: + with open(path, "r") as input: r = re.compile( "^\s*#\s*(?P[a-z]+)(?:\s+(?P\S+)(?:\s+(?P\S+))?)?", re.U ) diff --git a/python/mozbuild/mozbuild/backend/base.py b/python/mozbuild/mozbuild/backend/base.py index 7bc1986d863b..b64a70946863 100644 --- a/python/mozbuild/mozbuild/backend/base.py +++ b/python/mozbuild/mozbuild/backend/base.py @@ -272,7 +272,7 @@ class BuildBackend(LoggingMixin): return status @contextmanager - def _write_file(self, path=None, fh=None, readmode="rU"): + def _write_file(self, path=None, fh=None, readmode="r"): """Context manager to write a file. This is a glorified wrapper around FileAvoidWrite with integration to diff --git a/python/mozbuild/mozbuild/preprocessor.py b/python/mozbuild/mozbuild/preprocessor.py index f7820b9c9147..857f1a6c9bfd 100644 --- a/python/mozbuild/mozbuild/preprocessor.py +++ b/python/mozbuild/mozbuild/preprocessor.py @@ -531,7 +531,7 @@ class Preprocessor: if args: for f in args: - with io.open(f, "rU", encoding="utf-8") as input: + with io.open(f, "r", encoding="utf-8") as input: self.processFile(input=input, output=out) if depfile: mk = Makefile() @@ -860,7 +860,7 @@ class Preprocessor: args = self.applyFilters(args) if not os.path.isabs(args): args = os.path.join(self.curdir, args) - args = io.open(args, "rU", encoding="utf-8") + args = io.open(args, "r", encoding="utf-8") except Preprocessor.Error: raise except Exception: @@ -914,7 +914,7 @@ class Preprocessor: def preprocess(includes=[sys.stdin], defines={}, output=sys.stdout, marker="#"): pp = Preprocessor(defines=defines, marker=marker) for f in includes: - with io.open(f, "rU", encoding="utf-8") as input: + with io.open(f, "r", encoding="utf-8") as input: pp.processFile(input=input, output=output) return pp.includes diff --git a/python/mozbuild/mozbuild/util.py b/python/mozbuild/mozbuild/util.py index 071daecc397b..81de4730dac9 100644 --- a/python/mozbuild/mozbuild/util.py +++ b/python/mozbuild/mozbuild/util.py @@ -225,7 +225,7 @@ class FileAvoidWrite(BytesIO): still occur, as well as diff capture if requested. """ - def __init__(self, filename, capture_diff=False, dry_run=False, readmode="rU"): + def __init__(self, filename, capture_diff=False, dry_run=False, readmode="r"): BytesIO.__init__(self) self.name = filename assert type(capture_diff) == bool diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py index 8150e72d6fa2..001c497b2796 100644 --- a/python/mozbuild/mozpack/files.py +++ b/python/mozbuild/mozpack/files.py @@ -574,7 +574,7 @@ class PreprocessedFile(BaseFile): pp = Preprocessor(defines=self.defines, marker=self.marker) pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings) - with _open(self.path, "rU") as input: + with _open(self.path, "r") as input: with _open(os.devnull, "w") as output: pp.processFile(input=input, output=output) @@ -631,7 +631,7 @@ class PreprocessedFile(BaseFile): pp = Preprocessor(defines=self.defines, marker=self.marker) pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings) - with _open(self.path, "rU") as input: + with _open(self.path, "r") as input: pp.processFile(input=input, output=dest, depfile=deps_out) dest.close()