Controller/tsgrain_controller/io/io_factory.py

24 lines
675 B
Python

# coding=utf-8
from enum import Enum
from tsgrain_controller import models, io
class IoType(Enum):
NONE = 0
CONSOLE = 1
MCP23017 = 2
# pylint: disable=import-outside-toplevel
def new_io(app: models.AppInterface, io_type: IoType) -> io.Io:
if io_type == IoType.MCP23017:
try:
from tsgrain_controller.io import mcp23017 as io_mod
except ImportError:
from tsgrain_controller.io import console as io_mod
elif io_type == IoType.CONSOLE:
from tsgrain_controller.io import console as io_mod
else:
from tsgrain_controller import io as io_mod # pylint: disable=reimported
return io_mod.Io(app)