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"))