Source code for pyunity.window.providers
## Copyright (c) 2020-2022 The PyUnity Team
## This file is licensed under the MIT License.
## See https://docs.pyunity.x10.bz/en/latest/license.html
import os
import sys
import pkgutil
import importlib.util
[docs]def checkModule(name):
if os.getenv("PYUNITY_TESTING") is not None:
return sys.modules[name]
spec = importlib.util.find_spec(name)
if spec is None:
raise ImportError
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
sys.modules[name] = module
return module
_loaded = False
_names = []
[docs]def sort(x):
module = importlib.import_module(f".{x}.checker", __name__)
if hasattr(module, "prio"):
return module.prio
return 0
[docs]def getProviders():
global _names, _loaded
if not _loaded:
_names = [x.name for x in pkgutil.iter_modules(__path__)]
_names.sort(key=sort, reverse=True)
_loaded = True
return _names