def METHOD_NAME(self):
    ans = Routine()
    ans.image = self.image.get_text()
    try:
        ans.image = Data.compile(ans.image)
    except Exception:
        pass
    ans.routine = self.routine.get_text()
    try:
        ans.routine = Data.compile(ans.routine)
    except Exception:
        pass
    if self.timeout.get_text() == '' or self.timeout.get_text() == '*':
        ans.timeout = None
    else:
        try:
            ans.timeout = Data.compile(self.timeout.get_text())
        except Exception:
            msg = "Invalid timeout specified.\n\n%s" % (sys.exc_info(),)
            MDSplusErrorMsg('Invalid Timeout', msg)
            raise
    idx = len(self.args)-1
    found = False
    while idx >= 0:
        t = self.args[idx].get_text()
        if t == '':
            if found:
                ans.setArgumentAt(idx, None)
        else:
            try:
                a = Data.compile(t)
            except Exception:
                msg = "Invalid argument specified.\n\n%s" % (
                    sys.exc_info(),)
                MDSplusErrorMsg('Invalid Argument', msg)
                raise
            ans.setArgumentAt(idx, a)
            found = True
        idx = idx-1
    return ans