Hi Collin,

> >   - A function _eliminate_NMD_from_line that takes a single line as argument
> >     and return a line or None.
> >   - A function _eliminate_NMD that invokes _eliminate_NMD_from_line on each
> >     line of the snippet, and combines the results?
> 
> I tried to implement it as you described it here. Feel free to let me
> know if I missed anything.

It is much more understandable this way; thanks.

There is a pitfall with the list.join('\n') idiom: it's mainly designed for
non-empty lists. I therefore add the patch below.

> These comments were above the assignments to 'sed_eliminate_NMD' in
> the shell script. I've decided to place them in the body of
> GLEmiter.lib_Makefile_am and GLEmiter.tests_Makefile_am

That's good; thanks.

> Since we have discussed the type hints before and decided we can
> assume Python version >= 3.7, I felt it was okay to add with this
> patch.

Yes, it is OK. Let me only add a comment about it.


2024-03-11  Bruno Haible  <br...@clisp.org>

        gnulib-tool.py: Tweak last commit.
        * pygnulib/GLEmiter.py (_eliminate_NMD): Don't add an extra newline when
        the result should be empty.

diff --git a/pygnulib/GLEmiter.py b/pygnulib/GLEmiter.py
index f0ae4627e6..11f1a2c9fc 100644
--- a/pygnulib/GLEmiter.py
+++ b/pygnulib/GLEmiter.py
@@ -13,7 +13,11 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
+# Allow the use of union type specifiers, using the syntax Type1 | Type2,
+# in Python ≥ 3.7.  Cf. <https://docs.python.org/3/library/__future__.html>
+# and <https://stackoverflow.com/questions/73879925/>.
 from __future__ import annotations
+
 
#===============================================================================
 # Define global imports
 
#===============================================================================
@@ -84,7 +88,10 @@ def _eliminate_NMD(snippet: str, automake_subdir: bool) -> 
str:
         line = _eliminate_NMD_from_line(line, automake_subdir)
         if line != None:
             result.append(line)
-    return '\n'.join(result) + '\n'
+    if len(result) > 0:
+        return '\n'.join(result) + '\n'
+    else:
+        return ''
 
 
 
#===============================================================================




Reply via email to