Source code for trescope.core.Input

from trescope.controller import ControllerNode


[docs]class Input(object): """ Input for adding control , only works for display output . By adding control , you can input user information to control program execution to complete some jobs , such as labelling . Input data will return by :py:meth:`Trescope.breakPoint` """ def __init__(self, host): from trescope.core import Output self.__host: Output = host
[docs] def addControl(self, controlNode: ControllerNode): """ Add control . :param controlNode: control :return: self , for chain call """ self.__host.getHost()._internalCommit(function='addControl', **self.__host.toDict(), **controlNode.toDict()) return self
def waitForControllerWithId(self, controlId, identifier: str = ''): rawResult = self.__host._internalCommit(function='waitForControllerWithId', controlId=controlId, identifier=identifier) controlResult = rawResult['result'] if 'TriggerControl' == controlResult['type']: return controlId return Input.__toValueByType(controlResult['type'], controlResult['newValue']) @staticmethod def __toValueByType(type_, valueString): swithcer = { 'BooleanControl': bool, 'ColorControl': lambda string: int(f'0xff{string[1:]}', 16), # TODO bug alpha 'EnumControl': str, 'RangeControl': float, 'TextControl': str } return swithcer[type_](valueString)