from .abstracts import AbstractDisplay from .enums import DisplayManagerDriver, Error def get_display(requested_driver: DisplayManagerDriver = DisplayManagerDriver.INFER) -> AbstractDisplay: match requested_driver: case DisplayManagerDriver.INFER: for display in DisplayManagerDriver.get_display_list(): if display.meta.detect(): return display.meta() raise RuntimeError(Error.DISPLAY_INFER_TYPE_FAILURE) case _ if requested_driver in DisplayManagerDriver.get_display_list(): return requested_driver.meta() case _: raise ValueError(Error.DISPLAY_TYPE_UNKNOWN)