Drop support for Python 3.6
authorJeremy Stanley <fungi@yuggoth.org>
Mon, 28 Feb 2022 19:55:37 +0000 (19:55 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Mon, 28 Feb 2022 19:55:37 +0000 (19:55 +0000)
As Python 3.6 officially reached end of life 2 months ago, remove
support for it. Also simplify our reload handler now that we no
longer need a separate workaround for interpreters older than 3.7.

mudpy/__init__.py
setup.cfg

index f9e00b8..216d03d 100644 (file)
@@ -1,6 +1,6 @@
 """Core modules package for the mudpy engine."""
 
-# Copyright (c) 2004-2019 mudpy authors. Permission to use, copy,
+# Copyright (c) 2004-2022 mudpy authors. Permission to use, copy,
 # modify, and distribute this software is granted under terms
 # provided in the LICENSE file distributed with this software.
 
@@ -12,40 +12,19 @@ import mudpy
 def load():
     """Import/reload some modules (be careful, as this can result in loops)."""
 
-    # hard-coded fallback list of modules expected in this package
-    # TODO(fungi) remove this once Python 3.6 is no longer supported
-    fallback_modules = [
-            "command",
-            "daemon",
-            "data",
-            "menu",
-            "misc",
-            "password",
-            "telnet",
-            "version",
-            ]
-    try:
-        # dynamically build module list from package contents (this only works
-        # in Python 3.7 and later, hence the try/except)
-        modules = []
-        for module in mudpy.__loader__.contents():
-
-            if (
-                    # make sure it's a module file, not a directory
-                    module.endswith('.py')
-
-                    # don't include this file, we're inside it
-                    and module != '__init__.py'):
-
-                # trim off the .py file extension
-                modules.append(module[:-3])
-
-        # make sure the fallback list is kept up to date with package contents
-        if fallback_modules != sorted(modules):
-            raise Exception("Fallback module list is incomplete")
-
-    except AttributeError:
-        modules = fallback_modules
+    # dynamically build module list from package contents
+    modules = []
+    for module in mudpy.__spec__.loader.get_resource_reader().contents():
+
+        if (
+                # make sure it's a module file, not a directory
+                module.endswith('.py')
+
+                # don't include this file, we're inside it
+                and module != '__init__.py'):
+
+            # trim off the .py file extension
+            modules.append(module[:-3])
 
     # iterate over the list of module files included in the package
     for module in modules:
index 54c899d..deccc06 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2021 mudpy authors. Permission to use, copy,
+# Copyright (c) 2016-2022 mudpy authors. Permission to use, copy,
 # modify, and distribute this software is granted under terms
 # provided in the LICENSE file distributed with this software.
 
@@ -27,7 +27,6 @@ classifiers =
     Operating System :: Unix
     Programming Language :: Python
     Programming Language :: Python :: 3
-    Programming Language :: Python :: 3.6
     Programming Language :: Python :: 3.7
     Programming Language :: Python :: 3.8
     Programming Language :: Python :: 3.9
@@ -46,7 +45,7 @@ classifiers =
 install_requires =
     passlib>=1.7
     pyyaml
-python_requires = >=3.6
+python_requires = >=3.7
 
 [files]
 packages =