ewokscore.scripttask.ScriptExecutorTask#
- class ewokscore.scripttask.ScriptExecutorTask(inputs=None, varinfo=None, node_id=None, node_attrs=None, execinfo=None, profile_directory=None)[source]#
Bases:
Task
Task wrapper for a shell command or script.
When the
SCRIPT_ARGUMENT
input variable is not an existing file, it is assumed to be a command.When it is a file, it is assumed to be executable when
Windows: it does not have the “.py” file name extension
Linux/Mac: the content does not start with a shebang “#!”
When the file is not executable a command is prepended
sys.executable
when the file name has the “.py” extensionbash
otherwise
Examples of different types of command line arguments
Single-character argument names:
python -c "print('hello')"
inputs = {SCRIPT_ARGUMENT: "python", "c": "print('hello')"}
Arguments without a value:
ls -a
inputs = {SCRIPT_ARGUMENT: "ls", "a": ""}
Multi-character argument names:
ls --all
inputs = {SCRIPT_ARGUMENT: "ls", "all": ""}
Arguments without a name:
ls .
inputs = {SCRIPT_ARGUMENT: "ls", 0: "."}
Merged single-character argument names:
ls -ltrh
Since we need -ltrh instead of –ltrh we can specify it as a positional argument
inputs = {SCRIPT_ARGUMENT: "ls", 0: "-ltrh"}
- Parameters:
inputs (
Optional
[Mapping
])varinfo (
Optional
[dict
])node_id (
Union
[str
,int
,tuple
,None
])node_attrs (
Optional
[dict
])execinfo (
Optional
[dict
])profile_directory (
Optional
[dict
])
- MISSING_DATA = <MISSING_DATA>#
- SCRIPT_ARGUMENT = '_script'#
- assert_ready_to_execute()#
- cancel()#
Function called when a task is cancelled. To be implemented by the derived classes
- property cancelled: bool#
Return True if the task has been cancelled by the user
- classmethod class_nonce()#
- classmethod class_nonce_data()#
- classmethod class_registry_name()#
- Return type:
Optional
[str
]
- cleanup_references()#
Removes all references to the inputs. Side effect: fixes the uhash of the task and outputs
- property done#
Completed (with or without exception)
- property exception#
- execute(force_rerun=False, raise_on_error=True, cleanup_references=False)#
- Parameters:
force_rerun (
Optional
[bool
])raise_on_error (
Optional
[bool
])cleanup_references (
Optional
[bool
])
- property failed#
Completed with exception
- fix_uhash()#
Fix the uhash when it is derived from the uhash data.
- get_input_uhashes()#
- get_input_value(key, default=<MISSING_DATA>)#
- Parameters:
default (
Any
)
- get_input_values()#
- get_named_input_values()#
- get_output_transfer_data()#
The values are either DataUri or Variable
- get_output_uhashes()#
- get_output_value(key, default=<MISSING_DATA>)#
- Parameters:
default (
Any
)
- get_output_values()#
- get_positional_input_values()#
- classmethod get_subclass(registry_name, _second_attempt=False)#
Retrieving a derived class
- classmethod get_subclass_names()#
- Return type:
List
[str
]
- classmethod get_subclasses()#
- get_uhash_init(serialize=False)#
- classmethod input_names()#
- property input_uhashes#
- property input_values#
DEPRECATED
- property input_variables#
- property inputs#
- instance_nonce()#
- classmethod instantiate(registry_name, **kw)#
Factory method for instantiating a derived class.
- Parameters:
registry_name (
str
) – for example “tasklib.tasks.MyTask” or “MyTask”**kw – Task constructor arguments
registry_name
- Returns Task:
- property is_ready_to_execute#
- property job_id: str | None#
- property label#
- property missing_inputs#
- property missing_outputs#
- property named_input_values#
DEPRECATED
- property node_id: str | int | tuple#
- property npositional_inputs#
- classmethod optional_input_names()#
- property output_metadata: dict | None#
- classmethod output_names()#
- property output_transfer_data#
DEPRECATED
- property output_uhashes#
DEPRECATED
- property output_values#
DEPRECATED
- property output_variables#
- property outputs#
- property positional_input_values#
DEPRECATED
- classmethod required_input_names()#
- reset_state()#
- set_uhash_init(pre_uhash=None, instance_nonce=None)#
- Parameters:
pre_uhash (
Union
[str
,bytes
,UniversalHash
,HasUhash
,None
])instance_nonce (
Optional
[Any
])
- property succeeded#
Completed without exception and with output values
- property uhash: UniversalHash | None#
- uhash_randomize()#
- undo_fix_uhash()#
- undo_randomize()#
- property workflow_id: str | None#