MCPcopy Index your code
hub / github.com/bugy/script-server / ConfigModel

Class ConfigModel

src/model/script_config.py:58–349  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

56 '_included_config',
57)
58class ConfigModel:
59
60 def __init__(self,
61 config_object,
62 path,
63 username,
64 audit_name,
65 process_invoker: ProcessInvoker,
66 pty_enabled_default=True):
67 super().__init__()
68
69 short_config = read_short(path, config_object)
70 self.name = short_config.name
71 self._pty_enabled_default = pty_enabled_default
72 self._config_folder = os.path.dirname(path)
73 self._process_invoker = process_invoker
74
75 self._username = username
76 self._audit_name = audit_name
77 self.schedulable = False
78 self.scheduling_auto_cleanup = True
79
80 self.parameters = ObservableList()
81 self.parameter_values = ObservableDict()
82
83 self._original_config = config_object
84 self._included_config_paths = TemplateProperty(read_list(config_object, 'include'),
85 parameters=self.parameters,
86 value_wrappers=self.parameter_values)
87 self._included_config_prop.bind(self._included_config_paths, self._read_and_merge_included_paths)
88
89 self._reload_config()
90
91 self.parameters.subscribe(self)
92
93 self._init_parameters(username, audit_name)
94
95 for parameter in self.parameters:
96 self.parameter_values[parameter.name] = parameter.create_value_wrapper_for_default()
97
98 self._reload_parameters({})
99
100 self._included_config_prop.subscribe(lambda old, new: self._reload(old))
101
102 def set_param_value(self, param_name, value):
103 parameter = self.find_parameter(param_name)
104 if parameter is None:
105 LOGGER.warning('Parameter ' + param_name + ' does not exist in ' + self.name)
106 return
107 normalized_value = parameter.normalize_user_value(value)
108 value_wrapper = parameter.create_value_wrapper(normalized_value)
109 validation_error = parameter.validate_value(value_wrapper, ignore_required=True)
110
111 if validation_error is not None:
112 self.parameter_values[param_name] = parameter.create_value_wrapper(None)
113 raise InvalidValueException(param_name, validation_error)
114
115 self.parameter_values[param_name] = value_wrapper

Callers 3

_create_script_configFunction · 0.90
create_config_modelFunction · 0.90
_create_config_modelFunction · 0.90

Calls

no outgoing calls

Tested by 3

_create_script_configFunction · 0.72
create_config_modelFunction · 0.72
_create_config_modelFunction · 0.72