def saveEntries(self, type="float", iters=None): timeEntry = self.time.get() if not iters: time = float(timeEntry) if time < 0: raise ValueError( "Invalid pause time: " + self.timeEntry + "; you cannot pause for a negative amount of time.") self.time.expression = False else: self.recursiveIterCheck(iters, timeEntry, self.inputCheckForPause, ()) self.time.expression = True Step.saveEntries(self)
def saveEntries(self, type="int", iters=None): rate = self.rate.get() cycles = self.nCycles.get() # Check if valve entries are ok for all loop iterations. valves = [] allInt = True for v in self.valveEntries: v0 = v.get() valves.append(v0) try: v1 = int(v0) if v1 not in self.btndict: raise ValueError( v0 + " in pump step is not a valid valve. Valid valves are " + self.btndict["AvailablePinsStatement"] + ".") v.expression = False except: if not iters: raise ValueError( v0 + " in pump step is not a valid valve. Valid valves are " + self.btndict["AvailablePinsStatement"] + ".") else: #check if valid expression fo valve self.recursiveIterCheck(iters, v0, self.checkValidValveEntry, ()) v.expression = True allInt = False if allInt: if len(set(valves)) < 3: raise ValueError("There are duplicate valve entries") else: self.recursiveIterCheck(iters, valves, self.checkDuplicateValves, ()) try: rate1 = int(rate) if rate1 < 0: raise ValueError( rate + " is not a valid rate for a pump step. Rates must be positive integers." ) self.rate.expression = False except: if not iters: raise ValueError( rate + " is not a valid rate for a pump step. Rates must be positive integers." ) else: #check if valid expression. self.recursiveIterCheck(iters, rate, self.checkValidRate, ()) self.rate.expression = True try: try: cycles1 = int(cycles) except: if not iters: raise ValueError( cycles + " is not a valid number of cycles for a pump step. The number of cycles must" " be either a positive integer or -1 to pump indefinitely until interupted." ) else: # check if valid expression self.recursiveIterCheck(iters, cycles, self.checkValidCycles, ()) self.nCycles.expression = True Step.saveEntries(self, type="int", iters=iters) return if cycles1 == -1: if iters: raise ValueError( "Pump steps can pump indefinitely only if they" " are the final step in a protocol.") else: if hasattr(self, 'last') and not self.last: raise ValueError( "Pump steps can pump indefinitely only if they" " are the final step in a protocol.") if cycles1 < -1: if iters: raise ValueError( cycles + " is not a valid number of cycles for a pump step. The number of cycles must be" " a positive integer.") else: raise ValueError( cycles + " is not a valid number of cycles for a pump step. The number of cycles must be" " a positive integer, or -1 on the final step of a protocol to pump indefinitely." ) self.nCycles.expression = False except ValueError as E: raise E Step.saveEntries(self, type="int", iters=iters)