Esempio n. 1
0
    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)))
Esempio n. 2
0
 def __init__(self, *keys):
     super().__init__()
     self.keys = [Parameter.inject(k).name for k in keys]
Esempio n. 3
0
 def __init__(self, parameter: Parameter,
              prompt=">"):
     super().__init__()
     self.parameter = Parameter.inject(parameter)
     self.prompt = prompt