]> Savannah Git Hosting - gnulib.git/commitdiff
gnulib-tool.py: Simplify imports.
authorBruno Haible <bruno@clisp.org>
Mon, 1 Apr 2024 19:28:23 +0000 (21:28 +0200)
committerBruno Haible <bruno@clisp.org>
Mon, 1 Apr 2024 23:06:15 +0000 (01:06 +0200)
* pygnulib/enums.py: New file, extracted from pygnulib/GLFileSystem.py.
* pygnulib/classes.py: Remove file.
* pygnulib/GLFileSystem.py: Remove class CopyAction. Update imports.
* pygnulib/GLTestDir.py: Update imports.
* pygnulib/GLConfig.py: Update imports and remove 'classes.' prefix.
* pygnulib/main.py: Likewise.

ChangeLog
pygnulib/GLConfig.py
pygnulib/GLFileSystem.py
pygnulib/GLTestDir.py
pygnulib/classes.py [deleted file]
pygnulib/enums.py [new file with mode: 0644]
pygnulib/main.py

index 127d1f44b1106a919379b588cb99522ffe71d2f0..ef529a5e4c85e5c2b25030561518e632283eb7e3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-04-01  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool.py: Simplify imports.
+       * pygnulib/enums.py: New file, extracted from pygnulib/GLFileSystem.py.
+       * pygnulib/classes.py: Remove file.
+       * pygnulib/GLFileSystem.py: Remove class CopyAction. Update imports.
+       * pygnulib/GLTestDir.py: Update imports.
+       * pygnulib/GLConfig.py: Update imports and remove 'classes.' prefix.
+       * pygnulib/main.py: Likewise.
+
 2024-04-01  Collin Funk  <collin.funk1@gmail.com>
 
        gnulib-tool.py: Only check existence for --extract-tests-module.
index 662814b6be234055e9db1f0ec0c234f001c34376..80719d35f22254bd9159d3598c9b30b8cf5e6919 100644 (file)
@@ -23,7 +23,7 @@ import copy
 import tempfile
 from . import constants
 from .GLError import GLError
-from pygnulib import classes
+from pygnulib.enums import CopyAction
 
 
 #===============================================================================
@@ -82,8 +82,8 @@ class GLConfig(object):
                  podomain: str | None = None,
                  witness_c_macro: str | None = None,
                  vc_files: bool | None = None,
-                 copymode: classes.CopyAction | None = None,
-                 lcopymode: classes.CopyAction | None = None,
+                 copymode: CopyAction | None = None,
+                 lcopymode: CopyAction | None = None,
                  configure_ac: str | None = None,
                  ac_version: float | int | None = None,
                  libtests: bool | None = None,
@@ -206,13 +206,13 @@ class GLConfig(object):
         self.resetCopyMode()
         if copymode == None:
             # Default to copying.
-            copymode = classes.CopyAction.Copy
+            copymode = CopyAction.Copy
         self.setCopyMode(copymode)
         # lcopymode (--local-symlink and --local-hardlink)
         self.resetLCopyMode()
         if lcopymode == None:
             # Default to copying.
-            lcopymode = classes.CopyAction.Copy
+            lcopymode = CopyAction.Copy
         self.setLCopyMode(lcopymode)
         # configure_ac
         self.resetAutoconfFile()
@@ -248,7 +248,7 @@ class GLConfig(object):
         '''x.__repr__() <==> repr(x)'''
         return '<pygnulib.GLConfig>'
 
-    def __getitem__(self, y: str) -> str | float | int | bool | classes.CopyAction | list[str] | None:
+    def __getitem__(self, y: str) -> str | float | int | bool | CopyAction | list[str] | None:
         '''x.__getitem__(y) <==> x[y]'''
         if y in self.table:
             result = self.table[y]
@@ -262,7 +262,7 @@ class GLConfig(object):
         else:  # if y not in self.table
             raise KeyError('GLConfig does not contain key: %s' % repr(y))
 
-    def dictionary(self) -> dict[str, str | float | int | bool | classes.CopyAction | list[str] | None]:
+    def dictionary(self) -> dict[str, str | float | int | bool | CopyAction | list[str] | None]:
         '''Return the configuration as a dict object.'''
         return dict(self.table)
 
@@ -304,7 +304,7 @@ class GLConfig(object):
         else:  # if key not in self.table
             raise KeyError('GLConfig does not contain key: %s' % repr(key))
 
-    def default(self, key: str) -> str | float | int | bool | classes.CopyAction | list[str] | None:
+    def default(self, key: str) -> str | float | int | bool | CopyAction | list[str] | None:
         '''Return default value for the given key.'''
         if key in self.table:
             if key == 'libname':
@@ -325,7 +325,7 @@ class GLConfig(object):
                          'libtests', 'dryrun']:
                 return False
             elif key in ['copymode', 'lcopymode']:
-                return classes.CopyAction.Copy
+                return CopyAction.Copy
             elif key in ['lgpl', 'vc_files']:
                 return None
             elif key == 'errors':
@@ -335,7 +335,7 @@ class GLConfig(object):
         else:  # if key not in self.table
             raise KeyError('GLConfig does not contain key: %s' % repr(key))
 
-    def isdefault(self, key: str, value: str | float | int | bool | classes.CopyAction | list[str] | None) -> bool:
+    def isdefault(self, key: str, value: str | float | int | bool | CopyAction | list[str] | None) -> bool:
         '''Check whether the value for the given key is a default value.'''
         if key in self.table:
             default = self.default(key)
@@ -347,7 +347,7 @@ class GLConfig(object):
         '''Return list of keys.'''
         return list(self.table.keys())
 
-    def values(self) -> list[str | float | int | bool | classes.CopyAction | list[str] | None]:
+    def values(self) -> list[str | float | int | bool | CopyAction | list[str] | None]:
         '''Return list of values.'''
         return list(self.table.values())
 
@@ -1065,13 +1065,13 @@ class GLConfig(object):
         self.table['ac_version'] = 2.64
 
     # Define copymode methods.
-    def checkCopyMode(self) -> classes.CopyAction:
+    def checkCopyMode(self) -> CopyAction:
         '''Check if pygnulib will copy files, create symlinks, or create hard links.'''
         return self.table['copymode']
 
-    def setCopyMode(self, value: classes.CopyAction) -> None:
+    def setCopyMode(self, value: CopyAction) -> None:
         '''Change the method used for copying / linking files.'''
-        if type(value) is classes.CopyAction:
+        if type(value) is CopyAction:
             self.table['copymode'] = value
         else:  # if type(value) is not CopyAction
             raise TypeError('value must be a CopyAction, not %s'
@@ -1079,18 +1079,18 @@ class GLConfig(object):
 
     def resetCopyMode(self) -> None:
         '''Reset the method used for creating files to copying instead of linking.'''
-        self.table['copymode'] = classes.CopyAction.Copy
+        self.table['copymode'] = CopyAction.Copy
 
     # Define lcopymode methods.
-    def checkLCopyMode(self) -> classes.CopyAction:
+    def checkLCopyMode(self) -> CopyAction:
         '''Check if pygnulib will copy files, create symlinks, or create hard links,
         only for files from the local override directories.'''
         return self.table['lcopymode']
 
-    def setLCopyMode(self, value: classes.CopyAction) -> None:
+    def setLCopyMode(self, value: CopyAction) -> None:
         '''Change the method used for copying / linking files, only for files from
         the local override directories.'''
-        if type(value) is classes.CopyAction:
+        if type(value) is CopyAction:
             self.table['lcopymode'] = value
         else:  # if type(value) is not CopyAction
             raise TypeError('value must be a CopyAction, not %s'
@@ -1099,7 +1099,7 @@ class GLConfig(object):
     def resetLCopyMode(self) -> None:
         '''Reset the method used for creating files to copying instead of linking,
         only for files from the local override directories.'''
-        self.table['lcopymode'] = classes.CopyAction.Copy
+        self.table['lcopymode'] = CopyAction.Copy
 
     # Define verbosity methods.
     def getVerbosity(self) -> int:
index e06eab316ae4415e3f6b160bfaeb5020ffe4b458..4709b0b09284cd5817e05a0ed56b967f10255a76 100644 (file)
@@ -25,6 +25,7 @@ import filecmp
 import subprocess as sp
 from enum import Enum
 from . import constants
+from pygnulib.enums import CopyAction
 from .GLError import GLError
 from .GLConfig import GLConfig
 
@@ -53,15 +54,6 @@ isfile = os.path.isfile
 islink = os.path.islink
 
 
-#===============================================================================
-# Define CopyAction class
-#===============================================================================
-class CopyAction(Enum):
-    Copy = 0
-    Symlink = 1
-    Hardlink = 2
-
-
 #===============================================================================
 # Define GLFileSystem class
 #===============================================================================
index 2a39eb3c5d1a3a91f7c3eda520e2967e4c335754..f0fe993c58f4f496a426e2475aa6fb5221241488 100644 (file)
@@ -26,11 +26,11 @@ import subprocess as sp
 import shutil
 from pathlib import Path
 from . import constants
+from .enums import CopyAction
 from .GLError import GLError
 from .GLConfig import GLConfig
 from .GLModuleSystem import GLModuleTable
 from .GLModuleSystem import GLModuleSystem
-from .GLFileSystem import CopyAction
 from .GLFileSystem import GLFileSystem
 from .GLFileSystem import GLFileAssistant
 from .GLMakefileTable import GLMakefileTable
diff --git a/pygnulib/classes.py b/pygnulib/classes.py
deleted file mode 100644 (file)
index 537872a..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <https://www.gnu.org/licenses/>.
-
-'''An easy access to pygnulib classes.'''
-
-#===============================================================================
-# Define global imports
-#===============================================================================
-__all__ = list()
-
-try:
-    # Constants
-    from . import constants
-
-    # Main classes
-    from .GLConfig import GLConfig
-    from .GLError import GLError
-    from .GLInfo import GLInfo
-
-    # File system
-    from .GLFileSystem import CopyAction
-    from .GLFileSystem import GLFileSystem
-    from .GLFileSystem import GLFileAssistant
-
-    # Module system
-    from .GLModuleSystem import GLModule
-    from .GLModuleSystem import GLModuleSystem
-    from .GLModuleSystem import GLModuleTable
-
-    # Different modes
-    from .GLImport import GLImport
-    from .GLEmiter import GLEmiter
-    from .GLTestDir import GLTestDir
-    from .GLTestDir import GLMegaTestDir
-
-    # Other modules
-    from .GLMakefileTable import GLMakefileTable
-except ValueError as error:
-    # Constants
-    import constants
-
-    # Main classes
-    from GLConfig import GLConfig
-    from GLError import GLError
-    from GLInfo import GLInfo
-
-    # File system
-    from GLFileSystem import CopyAction
-    from GLFileSystem import GLFileSystem
-    from GLFileSystem import GLFileAssistant
-
-    # Module system
-    from GLModuleSystem import GLModule
-    from GLModuleSystem import GLModuleSystem
-    from GLModuleSystem import GLModuleTable
-
-    # Different modes
-    from GLImport import GLImport
-    from GLEmiter import GLEmiter
-    from GLTestDir import GLTestDir
-    from GLTestDir import GLMegaTestDir
-
-    # Other modules
-    from GLMakefileTable import GLMakefileTable
-
-# Append modules to namespace.
-__all__ += ['GLConfig', 'GLError', 'GLInfo']
-__all__ += ['CopyAction', 'GLFileSystem', 'GLFileAssistant']
-__all__ += ['GLModule', 'GLModuleSystem', 'GLModuleTable']
-__all__ += ['GLImport', 'GLEmiter', 'GLTestDir']
-__all__ += ['GLMakefileTable']
-
-#===============================================================================
-# Define module information
-#===============================================================================
-__author__ = constants.__author__
-__license__ = constants.__license__
-__copyright__ = constants.__copyright__
diff --git a/pygnulib/enums.py b/pygnulib/enums.py
new file mode 100644 (file)
index 0000000..f6781dd
--- /dev/null
@@ -0,0 +1,30 @@
+# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+from __future__ import annotations
+
+#===============================================================================
+# Define global imports
+#===============================================================================
+from enum import Enum
+
+
+#===============================================================================
+# Define CopyAction class
+#===============================================================================
+class CopyAction(Enum):
+    Copy = 0
+    Symlink = 1
+    Hardlink = 2
index 55d635d0743c5cd713abb70e34a1fd76c5670170..31bb434b3a8962de40cf05b8b76a09f476c86d48 100644 (file)
@@ -82,7 +82,16 @@ import subprocess as sp
 import shlex
 from tempfile import mktemp
 from pygnulib import constants
-from pygnulib import classes
+from pygnulib.enums import CopyAction
+from pygnulib.GLConfig import GLConfig
+from pygnulib.GLError import GLError
+from pygnulib.GLFileSystem import GLFileSystem
+from pygnulib.GLFileSystem import GLFileAssistant
+from pygnulib.GLImport import GLImport
+from pygnulib.GLInfo import GLInfo
+from pygnulib.GLModuleSystem import GLModuleSystem
+from pygnulib.GLTestDir import GLTestDir
+from pygnulib.GLTestDir import GLMegaTestDir
 
 
 #===============================================================================
@@ -107,7 +116,7 @@ isfile = os.path.isfile
 # Define main part
 #===============================================================================
 def main() -> None:
-    info = classes.GLInfo()
+    info = GLInfo()
     parser = argparse.ArgumentParser(
         prog=constants.APP['name'],
         usage='gnulib-tool.py --help',
@@ -462,22 +471,22 @@ def main() -> None:
     parser.add_argument('-s', '-S', '--symbolic', '--symlink', '--more-symlinks',
                         dest='copymode',
                         default=None,
-                        action='store_const', const=classes.CopyAction.Symlink)
+                        action='store_const', const=CopyAction.Symlink)
     # local-symlink
     parser.add_argument('--local-symlink',
                         dest='lcopymode',
                         default=None,
-                        action='store_const', const=classes.CopyAction.Symlink)
+                        action='store_const', const=CopyAction.Symlink)
     # hardlink
     parser.add_argument('-h', '-H', '--hardlink', '--more-hardlinks',
                         dest='copymode',
                         default=None,
-                        action='store_const', const=classes.CopyAction.Hardlink)
+                        action='store_const', const=CopyAction.Hardlink)
     # local-hardlink
     parser.add_argument('--local-hardlink',
                         dest='lcopymode',
                         default=None,
-                        action='store_const', const=classes.CopyAction.Hardlink)
+                        action='store_const', const=CopyAction.Hardlink)
     # Undocumented option. Only used for the gnulib-tool test suite.
     parser.add_argument('--gnulib-dir',
                         dest='gnulib_dir',
@@ -802,7 +811,7 @@ def main() -> None:
     docbase = None
 
     # Create pygnulib configuration.
-    config = classes.GLConfig(
+    config = GLConfig(
         destdir=destdir,
         localpath=localpath,
         m4base=m4base,
@@ -837,14 +846,14 @@ def main() -> None:
 
     # Work in the given mode.
     if mode == 'list':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         listing = modulesystem.list()
         result = lines_to_multiline(listing)
         os.rmdir(config['tempdir'])
         print(result, end='')
 
     elif mode == 'find':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for filename in files:
             if (isfile(joinpath(DIRS['root'], filename))
                     or (localpath != None
@@ -902,7 +911,7 @@ def main() -> None:
         elif isfile(joinpath(destdir, 'configure.in')):
             configure_ac = joinpath(destdir, 'configure.in')
         else:
-            raise classes.GLError(3, joinpath(destdir, 'configure.ac'))
+            raise GLError(3, joinpath(destdir, 'configure.ac'))
 
         # Save the Autoconf file path for the rest of the import.
         config.setAutoconfFile(configure_ac)
@@ -937,7 +946,7 @@ def main() -> None:
             config.setMacroPrefix(macro_prefix)
 
             # Perform GLImport actions.
-            importer = classes.GLImport(config, mode)
+            importer = GLImport(config, mode)
             filetable, transformers = importer.prepare()
             importer.execute(filetable, transformers)
 
@@ -961,7 +970,7 @@ def main() -> None:
                     config.setTestsBase(testsbase)
                     config.setMacroPrefix(macro_prefix)
                 # Perform GLImport actions.
-                importer = classes.GLImport(config, mode)
+                importer = GLImport(config, mode)
                 filetable, transformers = importer.prepare()
                 importer.execute(filetable, transformers)
             else:  # if not m4base
@@ -1027,7 +1036,7 @@ def main() -> None:
                     config.setTestsBase(testsbase)
                     config.setMacroPrefix(macro_prefix)
                     # Perform GLImport actions.
-                    importer = classes.GLImport(config, mode)
+                    importer = GLImport(config, mode)
                     filetable, transformers = importer.prepare()
                     importer.execute(filetable, transformers)
                 elif len(m4dirs) == 1:
@@ -1036,7 +1045,7 @@ def main() -> None:
                     m4base = m4dirs[-1]
                     config.setM4Base(m4base)
                     # Perform GLImport actions.
-                    importer = classes.GLImport(config, mode)
+                    importer = GLImport(config, mode)
                     filetable, transformers = importer.prepare()
                     importer.execute(filetable, transformers)
                 else:  # if len(m4dirs) > 1
@@ -1044,7 +1053,7 @@ def main() -> None:
                     for m4base in m4dirs:
                         config.setM4Base(m4base)
                         # Perform GLImport actions.
-                        importer = classes.GLImport(config, mode)
+                        importer = GLImport(config, mode)
                         filetable, transformers = importer.prepare()
                         importer.execute(filetable, transformers)
 
@@ -1058,7 +1067,7 @@ def main() -> None:
         if not auxdir:
             auxdir = 'build-aux'
         config.setAuxDir(auxdir)
-        testdir = classes.GLTestDir(config, destdir)
+        testdir = GLTestDir(config, destdir)
         testdir.execute()
 
     elif mode == 'create-megatestdir':
@@ -1071,7 +1080,7 @@ def main() -> None:
         if not auxdir:
             auxdir = 'build-aux'
         config.setAuxDir(auxdir)
-        testdir = classes.GLMegaTestDir(config, destdir)
+        testdir = GLMegaTestDir(config, destdir)
         testdir.execute()
 
     elif mode == 'test':
@@ -1080,7 +1089,7 @@ def main() -> None:
         if not auxdir:
             auxdir = 'build-aux'
         config.setAuxDir(auxdir)
-        testdir = classes.GLTestDir(config, destdir)
+        testdir = GLTestDir(config, destdir)
         testdir.execute()
         constants.force_output()
         os.chdir(destdir)
@@ -1113,7 +1122,7 @@ def main() -> None:
         if not auxdir:
             auxdir = 'build-aux'
         config.setAuxDir(auxdir)
-        testdir = classes.GLMegaTestDir(config, destdir)
+        testdir = GLMegaTestDir(config, destdir)
         testdir.execute()
         constants.force_output()
         os.chdir(destdir)
@@ -1138,42 +1147,42 @@ def main() -> None:
         sp.call(['rm', '-rf', destdir], shell=False)
 
     elif mode == 'extract-description':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getDescription())
 
     elif mode == 'extract-comment':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getComment())
 
     elif mode == 'extract-status':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getStatus())
 
     elif mode == 'extract-notice':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getNotice())
 
     elif mode == 'extract-applicability':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 print(module.getApplicability())
 
     elif mode == 'extract-filelist':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
@@ -1190,7 +1199,7 @@ def main() -> None:
             message += '%s: *** Stop.\n' % constants.APP['name']
             sys.stderr.write(message)
             sys.exit(1)
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
@@ -1203,35 +1212,35 @@ def main() -> None:
             message += '%s: *** Stop.\n' % constants.APP['name']
             sys.stderr.write(message)
             sys.exit(1)
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getDependenciesRecursively())
 
     elif mode == 'extract-autoconf-snippet':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getAutoconfSnippet())
 
     elif mode == 'extract-automake-snippet':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getAutomakeSnippet())
 
     elif mode == 'extract-include-directive':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getInclude())
 
     elif mode == 'extract-link-directive':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
@@ -1244,28 +1253,28 @@ def main() -> None:
             message += '%s: *** Stop.\n' % constants.APP['name']
             sys.stderr.write(message)
             sys.exit(1)
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getLinkDirectiveRecursively())
 
     elif mode == 'extract-license':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 print(module.getLicense())
 
     elif mode == 'extract-maintainer':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module:
                 sys.stdout.write(module.getMaintainer())
 
     elif mode == 'extract-tests-module':
-        modulesystem = classes.GLModuleSystem(config)
+        modulesystem = GLModuleSystem(config)
         for name in modules:
             module = modulesystem.find(name)
             if module and modulesystem.exists(module.getTestsName()):
@@ -1294,7 +1303,7 @@ def main() -> None:
         config.setM4Base(m4base)
         config.setDocBase(docbase)
         config.setTestsBase(testsbase)
-        filesystem = classes.GLFileSystem(config)
+        filesystem = GLFileSystem(config)
         lookedup, flag = filesystem.lookup(srcpath)
         if isdir(dest):
             destdir = dest
@@ -1324,7 +1333,7 @@ def main() -> None:
                 except FileExistsError:
                     pass
         # Copy the file.
-        assistant = classes.GLFileAssistant(config)
+        assistant = GLFileAssistant(config)
         tmpfile = assistant.tmpfilename(destpath)
         copyfile(lookedup, tmpfile)
         ensure_writable(tmpfile)
@@ -1350,7 +1359,7 @@ def main() -> None:
         sys.stderr.write(message)
         sys.exit(1)
 
-    if copymode == classes.CopyAction.Hardlink or lcopymode == classes.CopyAction.Hardlink:
+    if copymode == CopyAction.Hardlink or lcopymode == CopyAction.Hardlink:
         # Setting hard links modifies the ctime of files in the gnulib checkout.
         # This disturbs the result of the next "gitk" invocation.
         # Workaround: Let git scan the files. This can be done through
@@ -1367,7 +1376,7 @@ def main() -> None:
 if __name__ == '__main__':
     try:  # Try to execute
         main()
-    except classes.GLError as error:
+    except GLError as error:
         errmode = 0  # gnulib-style errors
         errno = error.errno
         errinfo = error.errinfo