File size: 2,899 Bytes
3fe2a95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import json
import os
from settings.defaults import default
from settings.check_file_name import is_path_exists_or_creatable_portable
class settings_io:


    def __init__(self):
        self.default = default
        self.settings = self.default
        self.prompt_iteration_raw = {}

    def get_defaults(self):
        return self.default

    def update_settings_with_defaults(self):
        self.settings['model_list'] = self.default['model_list']
        self.settings['model_test_dimensions_list'] = self.default['model_test_dimensions_list']
        self.write_settings(self.settings)

    def check_missing_seettings(self):
        missing = 0
        for key in self.default.keys():
            if key not in self.settings:
                self.settings[key] = self.default[key]
                missing += 1
            if type(self.settings[key]) == dict:
                for subkey in self.default[key]:
                    if subkey not in self.settings[key]:
                        self.settings[key][subkey] = self.default[key][subkey]
                        missing += 1

        if missing != 0:
            self.write_settings(self.settings)
        self.update_settings_with_defaults()

    def load_settings(self):
        if os.path.isfile('pq/settings/settings.dat'):
            f = open('pq/settings/settings.dat','r')
            self.settings = json.loads(f.read())
            f.close()
            self.check_missing_seettings()
        return self.settings


    def write_settings(self, settings):
        f = open('pq/settings/settings.dat','w')
        f.write(json.dumps(settings))
        f.close()


    def load_preset_list(self):
        filelist = os.listdir('pq/settings/presets')
        out_list = []
        for file in filelist:
            if file != 'presets_go_here.txt':
                out_list.append(file.replace('_preset.dat', ''))
        if len(out_list) > 0:
            return out_list
        else:
            return None

    def load_preset(self, name):
        if os.path.isfile('pq/settings/settings.dat'):
            f = open(f'pq/settings/presets/{name}_preset.dat','r')
            self.settings = json.loads(f.read())
            f.close()
            self.check_missing_seettings()
        return self.settings

    def save_preset(self, name, settings):
        filename = f'pq/settings/presets/{name}_preset.dat'
        check = is_path_exists_or_creatable_portable(filename)

        if check:
            f = open(filename,'w')
            f.write(json.dumps(settings))
            f.close()
            return 'OK'
        else:
            return 'Filename not OK'

    def load_prompt_data(self):
        if os.path.isfile('pq/settings/data.json'):
            f = open('pq/settings/data.json','r')
            self.prompt_iteration_raw = json.loads(f.read())
            f.close()
        return self.prompt_iteration_raw