Hi Bruno,
On 4/13/24 4:08 AM, Bruno Haible wrote:
> It seems that codecs.open is frowned upon, nowadays [1],
> and that the Python 3 way of opening a file is a built-in function 'open' [2].
Thanks for this patch. When I started working on gnulib-tool.py I
didn't even know the codecs module existed, since I had never used
Python 2.
> Let's use this consistently. With newline='\n' in order to match what
> gnulib-tool.sh does.
Sounds good. You mentioned removing the constants.nlconvert() stuff in
an earlier email [1]. How about these two patches?
Patch 0001 removes nlconvert and all of its calls. That should make
sure gnulib-tool.py and gnulib-tool.sh deal with newlines the same
way.
Patch 0002 removes the 'NL' constant. I assume this was to match
gnulib-tool.sh's use of "$nl"? But there it is used to expand to a
newline character without breaking lines right? For example, this:
func_append license_incompatibilities "$module $license$nl"
vs. this:
func_append license_incompatibilities "$module $license
"
Since we use a mix of '\n' and constants.NL, I would just like to use
'\n' everwhere consistently.
> Specifying encoding='utf-8' is what makes the most sense today. If a package
> still has a configure.ac or Makefile.am in ISO-8859-1 encoding, this will
> probably fail. Let's see if people report a problem with this; it should be
> very rare.
Sounds good.
[1] https://lists.gnu.org/archive/html/bug-gnulib/2024-03/msg00370.html
CollinFrom fbdd4e7783b8a4b6e637bac2b392024b0e880622 Mon Sep 17 00:00:00 2001
From: Collin Funk
Date: Sun, 14 Apr 2024 10:18:03 -0700
Subject: [PATCH 1/2] gnulib-tool.py: Don't perform newline conversions.
* pygnulib/constants.py (nlconvert): Remove function. Remove unused
platform import.
* pygnulib/GLImport.py (GLImport.gnulib_cache): Remove calls to
nlconvert().
* pygnulib/GLModuleSystem.py
(GLModule.getAutomakeSnippet_Unconditional): Likewise.
* pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
Likewise.
---
ChangeLog | 12
pygnulib/GLImport.py | 2 +-
pygnulib/GLModuleSystem.py | 1 -
pygnulib/GLTestDir.py | 6 --
pygnulib/constants.py | 10 --
5 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 9b40f3d9d8..b5c16eae4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2024-04-14 Collin Funk
+
+ gnulib-tool.py: Don't perform newline conversions.
+ * pygnulib/constants.py (nlconvert): Remove function. Remove unused
+ platform import.
+ * pygnulib/GLImport.py (GLImport.gnulib_cache): Remove calls to
+ nlconvert().
+ * pygnulib/GLModuleSystem.py
+ (GLModule.getAutomakeSnippet_Unconditional): Likewise.
+ * pygnulib/GLTestDir.py (GLTestDir.execute, GLMegaTestDir.execute):
+ Likewise.
+
2024-04-14 Collin Funk
gnulib-tool.py: Remove some unused variables.
diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py
index eadf45828d..eaff520fa4 100644
--- a/pygnulib/GLImport.py
+++ b/pygnulib/GLImport.py
@@ -598,7 +598,7 @@ def gnulib_cache(self) -> str:
if vc_files != None:
# Convert Python bools to shell (True -> true).
emit += 'gl_VC_FILES([%s])\n' % str(vc_files).lower()
-return constants.nlconvert(emit)
+return emit
def gnulib_comp(self, filetable: dict[str, list[str]], gentests: bool) -> str:
'''Emit the contents of generated $m4base/gnulib-comp.m4 file.
diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py
index 2551e316e1..11cd6ef78a 100644
--- a/pygnulib/GLModuleSystem.py
+++ b/pygnulib/GLModuleSystem.py
@@ -645,7 +645,6 @@ def getAutomakeSnippet_Unconditional(self) -> str:
for filename in buildaux_files.split(constants.NL) ]
result += 'EXTRA_DIST += %s' % ' '.join(buildaux_files)
result += '\n\n'
-result = constants.nlconvert(result)
self.cache['makefile-unconditional'] = result
return self.cache['makefile-unconditional']
diff --git a/pygnulib/GLTestDir.py b/pygnulib/GLTestDir.py
index dc70e8d304..a7709a1259 100644
--- a/pygnulib/GLTestDir.py
+++ b/pygnulib/GLTestDir.py
@@ -404,7 +404,6 @@ def execute(self) -> None:
if file.startswith('m4/'):
file = constants.substart('m4/', '', file)
emit += 'EXTRA_DIST += %s\n' % file
-emit = constants.nlconvert(emit)
with open(destfile, mode='w', newline='\n', encoding='utf-8') as file:
file.write(emit)
@@ -522,7 +521,6 @@ def execute(self) -> None:
emit += 'AH_TOP([#include \"../config.h\"])\n\n'
emit += 'AC_CONFIG_FILES([Makefile])\n'
emit += 'AC_OUTPUT\n'
-emit = constants.nlconvert(emit)
path = joinpath(self.testdir, testsbase, 'configure.ac')
with open(path, mode='w', newline='\n', encoding='utf-8') as file: