Source code for draugr.os_utilities.platform_selection
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "Christian Heider Nielsen"
__doc__ = r"""
Created on 04-01-2021
"""
import sys
__all__ = ["get_backend_module"]
from types import ModuleType
[docs]def get_backend_module(
project_name: str, backend_name: str = sys.platform
) -> ModuleType:
"""Returns the backend module."""
import importlib
modules = []
if backend_name is not None:
modules += [backend_name]
elif sys.platform == "darwin":
modules += ["darwin"]
elif sys.platform == "win32":
modules += ["win10"]
else:
modules += ["appindicator", "gtk", "xorg"]
errors = []
for module in modules:
try:
return importlib.import_module(f"{project_name}.{module}")
except ImportError as e:
errors.append(e)
raise ImportError(
f'{sys.platform} platform is not supported: {"; ".join(str(e) for e in errors)}'
)
if __name__ == "__main__":
print(get_backend_module("draugr"))