| 51 | 'file_recursive', |
| 52 | 'ui_width_weight') |
| 53 | class ParameterModel(object): |
| 54 | def __init__(self, parameter_config, username, audit_name, |
| 55 | other_params_supplier, |
| 56 | process_invoker: ProcessInvoker, |
| 57 | other_param_values: ObservableDict = None, |
| 58 | working_dir=None): |
| 59 | self._username = username |
| 60 | self._audit_name = audit_name |
| 61 | self._parameters_supplier = other_params_supplier |
| 62 | self._working_dir = working_dir |
| 63 | self._process_invoker = process_invoker |
| 64 | |
| 65 | self.name = parameter_config.get('name') |
| 66 | self.pass_as: PassAsConfiguration = _read_pass_as(parameter_config, self.name) |
| 67 | self.stdin_expected_text = parameter_config.get('stdin_expected_text') |
| 68 | |
| 69 | self._original_config = parameter_config |
| 70 | self._parameter_value_wrappers = other_param_values |
| 71 | |
| 72 | self._setup() |
| 73 | |
| 74 | if (other_param_values is not None) \ |
| 75 | and (self._values_provider is not None) \ |
| 76 | and self._values_provider.get_required_parameters(): |
| 77 | other_param_values.subscribe(self._param_values_observer) |
| 78 | |
| 79 | def _setup(self): |
| 80 | config = self._original_config |
| 81 | |
| 82 | self.param = config.get('param') |
| 83 | self.same_arg_param = read_bool_from_config('same_arg_param', config, default=False) |
| 84 | self.env_var = config.get('env_var') |
| 85 | self.no_value = read_bool_from_config('no_value', config, default=False) |
| 86 | self.description = replace_auth_vars(config.get('description'), self._username, self._audit_name) |
| 87 | self.required = read_bool_from_config('required', config, default=False) |
| 88 | self.min = config.get('min') |
| 89 | self.max = config.get('max') |
| 90 | self.max_length = config.get('max_length') |
| 91 | self.regex = config.get('regex') |
| 92 | self.secure = read_bool_from_config('secure', config, default=False) |
| 93 | self.separator = config.get('separator', ',') |
| 94 | self.multiselect_argument_type = read_str_from_config( |
| 95 | config, |
| 96 | 'multiselect_argument_type', |
| 97 | default='single_argument', |
| 98 | allowed_values=['single_argument', 'argument_per_value', 'repeat_param_value']) |
| 99 | self.type = self._read_type(config) |
| 100 | self._set_default_value( |
| 101 | config.get('default'), |
| 102 | self._username, |
| 103 | self._audit_name, |
| 104 | self._working_dir, |
| 105 | self.type, |
| 106 | self._parameters_supplier(), |
| 107 | self._parameter_value_wrappers, |
| 108 | self._process_invoker) |
| 109 | self.file_dir = _resolve_file_dir(config, 'file_dir') |
| 110 | self._list_files_dir = _resolve_list_files_dir(self.file_dir, self._working_dir) |
no outgoing calls