bpo-42403: Use @staticmethod in importlib (GH-23395)

Use @staticmethod on methods using @classmethod but don't use their
cls parameter on the following classes:

* BuiltinImporter
* FrozenImporter
* WindowsRegistryFinder
* PathFinder

Leave methods using @_requires_builtin or @_requires_frozen unchanged,
since this decorator requires the wrapped method to have an extra parameter
(cls or self).
This commit is contained in:
Victor Stinner 2020-11-20 14:44:02 +01:00 committed by GitHub
parent a6109ef68d
commit 3be8e220ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 2359 additions and 2360 deletions

View file

@ -761,16 +761,16 @@ class BuiltinImporter:
spec = cls.find_spec(fullname, path)
return spec.loader if spec is not None else None
@classmethod
def create_module(self, spec):
@staticmethod
def create_module(spec):
"""Create a built-in module"""
if spec.name not in sys.builtin_module_names:
raise ImportError('{!r} is not a built-in module'.format(spec.name),
name=spec.name)
return _call_with_frames_removed(_imp.create_builtin, spec)
@classmethod
def exec_module(self, module):
@staticmethod
def exec_module(module):
"""Exec a built-in module"""
_call_with_frames_removed(_imp.exec_builtin, module)
@ -831,8 +831,8 @@ class FrozenImporter:
"""
return cls if _imp.is_frozen(fullname) else None
@classmethod
def create_module(cls, spec):
@staticmethod
def create_module(spec):
"""Use default semantics for module creation."""
@staticmethod