Exemple #1
0
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
Exemple #2
0
 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)
Exemple #3
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
Exemple #5
0
    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()