24 lines
675 B
Python
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)
|