Forked from HYCAR-Hydro / airGR
Source project has a limited visibility.
config.py 1.52 KiB
# -*- coding: utf-8 -*-

import os
import pickle

from Model.Stricklers.StricklersList import StricklersList

config_dir = "/.cache/pamhyr/"
config_file = "config.pkl"

class Config(object):
    def __init__(self):
        super(Config, self).__init__()

        self.filename = Config.filename()
        self.set_default_value()

    def set_default_value(self):
        # Solvers
        self.solvers = []

        # Meshing tool
        self.meshing_tool = ""

        # Const
        self.segment = 1000
        self.max_listing = 500000

        # Backup
        self.backup_enable = True
        self.backup_path = ""
        self.backup_frequence = "00:05:00"
        self.backup_max = 10

        # Languages
        self.lang = ""

        # Stricklers
        self.stricklers = StricklersList()

    @classmethod
    def filename(cls):
        return os.path.expanduser('~user') + config_dir + config_file

    @classmethod
    def languages(cls):
        return {
            "System":  "",
            "English": "en",
            "French":  "fr",
        }

    def save(self):
        os.makedirs(os.path.dirname(self.filename), exist_ok=True)
        with open(self.filename, 'wb') as out_file:
            pickle.dump(self, out_file)

    @classmethod
    def load(cls):
        filename = cls.filename()
        if os.path.isfile(filename):
            with open(filename, 'rb') as in_file:
                me = pickle.load(in_file)
                return me
        else:
            print("config: New config")
            return cls()