def __position_create(self, ctx, subj, dummy, arg): v = int(action.abstract_string(arg)) if v < 1 or v > 10000: print 'position out of range' return async .success(errors.out_of_range('1 to 10000', 'set')) return piw.trigger(self.__agent.model.set_position(), piw.makelong_nb(v - 1, 0)), None
def __fraction_create(self, ctx, subj, dummy, arg): v = float(action.abstract_string(arg)) if v < 1 or v > 100: print 'fraction out of range' return async .success(errors.out_of_range('1 to 100', 'set')) return piw.trigger(self.__agent.model.set_stepdenominator(), piw.makefloat_nb(v, 0)), None
def create_input(self,ordinal=None): o = ordinal or self.find_hole() o = int(o) if o < 1 or o > MAX_CHANNEL: return errors.out_of_range(str(MAX_CHANNEL),'create') e = AudioInput(self.__agent,o) self[o] = e self.__agent.update() return e
def builtin_set_value(self, value): dom = self.get_domain() try: value = dom.data2value(dom.value2data(value)) except: if dom.numeric: range = '%s to %s' % (str(dom.min), str(dom.max)) return (errors.out_of_range(range, 'set'), ) return (errors.invalid_value(value, 'set'), ) self.change_value(value)
def create_channel(self,ordinal=None): o = ordinal or self.find_hole() o = int(o) if o < 1 or o > MAX_CHANNEL: return errors.out_of_range(str(MAX_CHANNEL),'create') e = self.new_channel(o) self[o] = e self.channels_changed() self.agent.update() return e
def changeDir(self, subject, arg): s = action.abstract_string(arg) if s in [ 'dictionary', 'list', 'connection', 'staff', 'image', 'conversation' ]: return None if 'layer' in s: return None try: dirNum = int(s) - 1 except ValueError: return None else: print 'numCollections=', self.model.numCollections, dirNum if (abs(dirNum) >= self.model.numCollections) or dirNum < 0: return async .success( errors.out_of_range( '1 to %s' % str(self.model.numCollections), 'show')) self.model.changeDir(abs(dirNum))