ASolver.py 2.26 KB
Newer Older
# -*- coding: utf-8 -*-

import os
import subprocess
from enum import Enum

class STATUS(Enum):
    STOPED = 0
    RUNNING = 1
    FAILED = 2
    CONF_ERROR = 3

class AbstractSolver(object):
    def __init__(self, name):
        super(AbstractSolver, self).__init__()

        self._current_process = None
        self._status = STATUS.STOPED
        # Informations
        self._type = ""
        self._name = name
        self._description = ""
        self._path_input = ""
        self._path_solver = ""
        self._path_output = ""
        self._cmd_input = ""
        self._cmd_solver = ""
        self._cmd_output = ""
        return f"{self._name} : {self._type} : {self._description}"
    def __getitem__(self, key):
        ret = None
        if key == "name":
            ret = self._name
        elif key == "description":
            ret = self._description
        elif key == "type":
            ret = self._type
        return ret

    @classmethod
    def default_parameters(cls):
        return []
    @property
    def name(self):
        return self.name
    @property
    def description(self):
        return self.description
    @property
    def status(self):
        return self._status
    @property
    def type(self):
        return self._type
    @status.setter
    def status(self, status):
        self._status = status
    @name.setter
    def name(self, name):
        self._name = name
    @description.setter
    def description(self, description):
        self._description = description

    def set_input(self, path, cmd):
        self._path_input = path
        self._cmd_input = cmd

    def set_solver(self, path, cmd):
        self._path_solver = path
        self._cmd_solver = cmd

    def set_output(self, path, cmd):
        self._path_output = path
        self._cmd_output = cmd

    # Run
    def run_input_data_fomater(self):
            return True

        return False

    def run_solver(self):
            return True

        return False

    def run_output_data_fomater(self, ):
        return False

    def kill(self):
        return False

    def readline(self):
        return ""