ASolver.py 2.52 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):
            ("all_init_time", "00:00:00:00"),
            ("all_final_time", "999:99:00:00"),
            ("all_timestep", "300.0"),
    @property
    def description(self):
    @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
    # Export
    def export(self, study):
        raise NotImplementedMethodeError(self, self.export)

    # 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 ""