MCPcopy Create free account
hub / github.com/bugy/script-server / _set_default_value

Method _set_default_value

src/model/parameter_config.py:498–552  ·  view source on GitHub ↗
(
            self,
            default_config,
            username,
            audit_name,
            working_dir,
            type,
            parameters,
            parameter_value_wrappers,
            process_invoker: ProcessInvoker)

Source from the content-addressed store, hash-verified

496 return os.path.normpath(os.path.join(self._list_files_dir, *child_path))
497
498 def _set_default_value(
499 self,
500 default_config,
501 username,
502 audit_name,
503 working_dir,
504 type,
505 parameters,
506 parameter_value_wrappers,
507 process_invoker: ProcessInvoker):
508 if is_empty(default_config):
509 self._default = default_config
510 return
511
512 script = False
513 if isinstance(default_config, dict) and 'script' in default_config:
514 string_value = default_config['script']
515 script = True
516 elif isinstance(default_config, str):
517 string_value = default_config
518 else:
519 self._default = default_config
520 return
521
522 resolved_string_value = resolve_env_vars(string_value, full_match=True)
523 if resolved_string_value == string_value:
524 resolved_string_value = replace_auth_vars(string_value, username, audit_name)
525
526 if not script:
527 self._default = resolved_string_value
528 return
529
530 template_property = TemplateProperty(resolved_string_value, parameters, parameter_value_wrappers)
531 shell = read_bool_from_config('shell', default_config, default=is_empty(template_property.required_parameters))
532
533 def get_script_output(script):
534 output = process_invoker.invoke(script, working_dir, shell=shell)
535 stripped_output = output.strip()
536
537 if type == PARAM_TYPE_MULTISELECT and '\n' in stripped_output:
538 return [line.strip() for line in stripped_output.split('\n') if not is_empty(line)]
539
540 return stripped_output
541
542 if not template_property.required_parameters:
543 self._default = get_script_output(resolved_string_value)
544 else:
545 def update_default(_, new):
546 if new is None:
547 self._default = None
548 else:
549 self._default = get_script_output(new)
550
551 template_property.subscribe(update_default)
552 update_default(None, template_property.value)
553
554
555class PassAsConfiguration:

Callers 1

_setupMethod · 0.95

Calls 6

subscribeMethod · 0.95
is_emptyFunction · 0.90
resolve_env_varsFunction · 0.90
replace_auth_varsFunction · 0.90
TemplatePropertyClass · 0.90
read_bool_from_configFunction · 0.90

Tested by

no test coverage detected