Source code for shyft.dashboard.entry_points.entry_points

import pkg_resources
import logging

from shyft.dashboard.base.app import AppBase

# -- CHANGE OF LOGGER FORMAT FOR DEBUGGING
log_fmt = logging.Formatter("in: %(filename)s -- %(funcName)s -- %(lineno)d \n")
stream_handler = logging.StreamHandler()
stream_handler.setFormatter(log_fmt)
logger = logging.getLogger()
logger.addHandler(stream_handler)
logger.setLevel(logging.DEBUG)


[docs] def parse_entry_points_for_apps(): available_apps = [] for entry_point in pkg_resources.iter_entry_points('shyft_dashboard_apps'): entry_point_name = entry_point.name app_class = entry_point.load() if not issubclass(app_class, AppBase): print(f"Warning skipping: {entry_point_name}, not subclass of AppBase") continue available_apps.append((entry_point_name, app_class)) return available_apps