def selectEngine(wowner): """ :param wowner: window :return: MotorExterno / None=error """ # Pedimos el ejecutable folderEngines = VarGen.configuracion.leeVariables("FOLDER_ENGINES") exeMotor = QTUtil2.leeFichero(wowner, folderEngines if folderEngines else ".", "*", _("Engine")) if not exeMotor: return None folderEngines = Util.dirRelativo(os.path.dirname(exeMotor)) VarGen.configuracion.escVariables("FOLDER_ENGINES", folderEngines) # Leemos el UCI me = MotoresExternos.MotorExterno() if not me.leerUCI(exeMotor): QTUtil2.mensaje( wowner, _X(_("The file %1 does not correspond to a UCI engine type."), exeMotor)) return None return me
def restore(self, dic): self.ref = dic["REF"] self.info = dic["INFO"] self.seconds = dic["SECONDS"] self.depth = dic["DEPTH"] self.ini = dic["INI"] self.end = dic["END"] self.results = Results(15) # 15 = cualquier numero self.results.restore(dic["RESULTS"]) self.liGroupActive = dic["GROUPACTIVE"] self.me = MotoresExternos.MotorExterno() self.me.restore(dic["ENGINE"]) self.workTime = dic.get("WORKTIME", 0.0)
def command(self): separador = FormLayout.separador liGen = [separador] liGen.append(separador) config = FormLayout.Fichero(_("File"), "exe", False) liGen.append((config, "")) for num in range(1, 11): liGen.append((_("Argument %d") % num + ":", "")) liGen.append(separador) resultado = FormLayout.fedit(liGen, title=_("Command"), parent=self, anchoMinimo=600, icon=Iconos.Terminal()) if resultado: nada, resp = resultado command = resp[0] liArgs = [] if not command or not os.path.isfile(command): return for x in range(1, len(resp)): arg = resp[x].strip() if arg: liArgs.append(arg) um = QTUtil2.unMomento(self) me = MotoresExternos.MotorExterno() resp = me.leerUCI(command, liArgs) um.final() if not resp: QTUtil2.mensaje( self, _X( _("The file %1 does not correspond to a UCI engine type." ), command)) return None # Editamos w = WMotor(self, self.listaMotores, me) if w.exec_(): self.listaMotores.nuevo(me) self.grid.refresh() self.grid.gobottom(0) self.grabar()
def leerConfigEngine(self, resp): if resp.startswith("*"): me = MotoresExternos.buscaMotor(resp) if me: self.exe = Util.dirRelativo(me.exe) self.args = me.args self.alias = me.alias self.idName = me.idName self.clave = me.clave self.idAuthor = me.idAuthor self.idInfo = me.idInfo self.liOpciones = me.liOpciones self.maxMultiPV = me.maxMultiPV self.multiPV = me.multiPV self.elo = me.elo else: return False else: cm = VarGen.configuracion.buscaRival(resp) self.alias = cm.clave self.args = [] self.idName = cm.nombre self.idAuthor = cm.autor self.idInfo = "" self.multiPV = cm.multiPV self.maxMultiPV = cm.maxMultiPV self.exe = cm.ejecutable() me = MotoresExternos.MotorExterno() me.leerUCI(self.exe, self.args) self.liOpciones = me.liOpciones for op in self.liOpciones: for comando, valor in cm.liUCI: if op.nombre == comando: if op.tipo == "check": op.valor = valor.lower() == "true" elif op.tipo == "spin": op.valor = int(valor) else: op.valor = valor break return True
def importar(self): menu = QTVarios.LCMenu(self) lista = VarGen.configuracion.comboMotores() nico = QTVarios.rondoPuntos() for nombre, clave in lista: menu.opcion(clave, nombre, nico.otro()) resp = menu.lanza() if not resp: return cm = VarGen.configuracion.buscaRival(resp) me = MotoresExternos.MotorExterno() me.exe = cm.ejecutable() me.alias = cm.clave me.idName = cm.nombre me.nombre = cm.nombre me.clave = cm.clave me.idAuthor = cm.autor me.idInfo = "" me.liOpciones = [] me.maxMultiPV = cm.maxMultiPV me.multiPV = cm.multiPV me.elo = cm.elo me.leerUCI(me.exe) for op in me.liOpciones: for comando, valor in cm.liUCI: if op.nombre == comando: if op.tipo == "check": op.valor = valor.lower() == "true" elif op.tipo == "spin": op.valor = int(valor) else: op.valor = valor break w = WMotor(self, self.listaMotores, me) if w.exec_(): self.listaMotores.nuevo(me) self.grid.refresh() self.grid.gobottom(0) self.grabar()