Use globals() instead of sys.modules

This commit is contained in:
Ivan Kravets
2022-05-18 23:14:15 +03:00
parent bb8b115a0b
commit 0c4c4ac657
3 changed files with 8 additions and 9 deletions

View File

@ -60,16 +60,16 @@ class LibBuilderFactory(object):
elif used_frameworks:
clsname = "%sLibBuilder" % used_frameworks[0].capitalize()
obj = getattr(sys.modules[__name__], clsname)(env, path, verbose=verbose)
obj = globals()[clsname](env, path, verbose=verbose)
# Handle PlatformIOLibBuilder.manifest.build.builder
# pylint: disable=protected-access
if isinstance(obj, PlatformIOLibBuilder) and obj._manifest.get("build", {}).get(
"builder"
):
obj = getattr(
sys.modules[__name__], obj._manifest.get("build", {}).get("builder")
)(env, path, verbose=verbose)
obj = globals()[obj._manifest.get("build", {}).get("builder")](
env, path, verbose=verbose
)
assert isinstance(obj, LibBuilderBase)
return obj

View File

@ -15,7 +15,6 @@
import os
import re
import subprocess
import sys
from urllib.parse import urlparse
from platformio import proc
@ -47,12 +46,12 @@ class VCSClientFactory(object):
if not type_:
raise VCSBaseException("VCS: Unknown repository type %s" % remote_url)
try:
obj = getattr(sys.modules[__name__], "%sClient" % type_.capitalize())(
obj = globals()["%sClient" % type_.capitalize()](
src_dir, remote_url, tag, silent
)
assert isinstance(obj, VCSClientBase)
return obj
except (AttributeError, AssertionError):
except (KeyError, AssertionError):
raise VCSBaseException("VCS: Unknown repository type %s" % remote_url)

View File

@ -31,11 +31,11 @@ class PlatformFactory(object):
@staticmethod
def load_platform_module(name, path):
# support for legacy dev-platforms
# backward compatibiility with the legacy dev-platforms
sys.modules["platformio.managers.platform"] = base
try:
return load_python_module("platformio.platform.%s" % name, path)
except ImportError as exc:
except ImportError:
raise UnknownPlatform(name)
@classmethod