From 5872d07f0ed969733b9c7e3e82f7c72ca6ef8cee Mon Sep 17 00:00:00 2001 From: Jeremy Stanley Date: Mon, 28 Feb 2022 19:55:37 +0000 Subject: [PATCH] Drop support for Python 3.6 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 | 49 ++++++++++++++----------------------------------- setup.cfg | 5 ++--- 2 files changed, 16 insertions(+), 38 deletions(-) diff --git a/mudpy/__init__.py b/mudpy/__init__.py index f9e00b8..216d03d 100644 --- a/mudpy/__init__.py +++ b/mudpy/__init__.py @@ -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: diff --git a/setup.cfg b/setup.cfg index 54c899d..deccc06 100644 --- 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 = -- 2.11.0