def inject(cls, cmd): if isinstance(cmd, type): if issubclass(cmd, Action): return A_CMD(cmd) if isinstance(cmd, CLI_CMD): return cmd elif isinstance(cmd, str): return LIT_CMD(cmd) elif isinstance(cmd, Message): return MESSAGE_CMD(cmd) elif isinstance(cmd, dict): return ASSIGN_CMD(**cmd) elif isinstance(cmd, Delete): return ENVIRONMENT_DEL_CMD(*cmd.keys) elif isinstance(cmd, GetVariable): return ENVIRONMENT_CMD(cmd.name) elif isinstance(cmd, GeneratorType): return GEN_CMD(cmd) elif isinstance(cmd, tuple): return PAR_CMD(*cmd) try: cmd = Parameter.inject(cmd) return PAR_INP(cmd) except: pass raise TypeError('invalid command value: {} ' '(type: {})'.format(cmd, type(cmd)))
def __init__(self, *keys): super().__init__() self.keys = [Parameter.inject(k).name for k in keys]
def __init__(self, parameter: Parameter, prompt=">"): super().__init__() self.parameter = Parameter.inject(parameter) self.prompt = prompt