wfexs_backend.utils.groovy_parsing#

Module Contents#

Classes#

Functions#

Data#

API#

wfexs_backend.utils.groovy_parsing.ROOT_RULE = ['compilation_unit', 'script_statements']#
wfexs_backend.utils.groovy_parsing.INCLUDE_PROCESS_RULE = ['statement', 'statement_expression', 'command_expression']#
wfexs_backend.utils.groovy_parsing.VAR_RULE = None#
wfexs_backend.utils.groovy_parsing.IDENTIFIER_RULE = ['primary', 'identifier']#
wfexs_backend.utils.groovy_parsing.NAME_PART_RULE = ['name_part', 'identifier']#
wfexs_backend.utils.groovy_parsing.BLOCK_STATEMENTS_RULE = ['block_statements_opt', 'block_statements']#
wfexs_backend.utils.groovy_parsing.PATHEXP_RULE = ['expression', 'postfix_expression', 'path_expression']#
wfexs_backend.utils.groovy_parsing.PRE_IDENTIFIER_NAME = None#
wfexs_backend.utils.groovy_parsing.PRE_CLOSURE_NAME = None#
wfexs_backend.utils.groovy_parsing.PROCESS_CHILD = None#
wfexs_backend.utils.groovy_parsing.INCLUDE_CHILD = None#
wfexs_backend.utils.groovy_parsing.WORKFLOW_CHILD = None#
wfexs_backend.utils.groovy_parsing.CONTAINER_CHILD = None#
wfexs_backend.utils.groovy_parsing.CONDA_CHILD = None#
wfexs_backend.utils.groovy_parsing.TEMPLATE_CHILD = None#
wfexs_backend.utils.groovy_parsing.MANIFEST_CHILD = None#
wfexs_backend.utils.groovy_parsing.INCLUDECONFIG_CHILD = None#
wfexs_backend.utils.groovy_parsing.PLUGINS_CHILD = None#
wfexs_backend.utils.groovy_parsing.ID_CHILD = None#
wfexs_backend.utils.groovy_parsing.COMMON_RULE = ['argument_list', 'first_argument_list_element', 'expression_list_element', 'expression', 'postfix_e...#
wfexs_backend.utils.groovy_parsing.P_RULE = None#
wfexs_backend.utils.groovy_parsing.CLOSURE_RULE = None#
wfexs_backend.utils.groovy_parsing.W_RULE = None#
wfexs_backend.utils.groovy_parsing.NAMELESS_W_RULE = None#
wfexs_backend.utils.groovy_parsing.extract_strings(node: EmptyNode | LeafNode | RuleNode) Iterator[str]#
wfexs_backend.utils.groovy_parsing.extract_values_as_pairs(node: EmptyNode | LeafNode | RuleNode) Iterator[LeafPair]#
class wfexs_backend.utils.groovy_parsing.NfProcess#

Bases: typing.NamedTuple

name: str = None#
containers: Sequence[str] = None#
condas: Sequence[str] = None#
templates: Sequence[str] = None#
wfexs_backend.utils.groovy_parsing.extract_nextflow_containers(node: EmptyNode | LeafNode | RuleNode) Iterator[str]#
wfexs_backend.utils.groovy_parsing.extract_nextflow_condas(node: EmptyNode | LeafNode | RuleNode) Iterator[str]#
wfexs_backend.utils.groovy_parsing.extract_nextflow_templates(node: EmptyNode | LeafNode | RuleNode) Iterator[str]#
wfexs_backend.utils.groovy_parsing.extract_process_features(t_tree: groovy_parser.parser.RuleNode) Tuple[Sequence[str], Sequence[str], Sequence[str]]#
wfexs_backend.utils.groovy_parsing.ERROR_PROCESS_NAME = '<error>'#
wfexs_backend.utils.groovy_parsing.extract_nextflow_process(node: groovy_parser.parser.RuleNode) wfexs_backend.utils.groovy_parsing.NfProcess#
class wfexs_backend.utils.groovy_parsing.NfInclude#

Bases: typing.NamedTuple

path: str = None#
wfexs_backend.utils.groovy_parsing.extract_nextflow_includes(node: groovy_parser.parser.RuleNode) Sequence[NfInclude]#
class wfexs_backend.utils.groovy_parsing.NfIncludeConfig#

Bases: typing.NamedTuple

path: str = None#
wfexs_backend.utils.groovy_parsing.extract_nextflow_config_includeconfigs(node: groovy_parser.parser.RuleNode) Sequence[NfIncludeConfig]#
class wfexs_backend.utils.groovy_parsing.NfWorkflow#

Bases: typing.NamedTuple

name: str | None = None#
wfexs_backend.utils.groovy_parsing.extract_nextflow_workflow(node: groovy_parser.parser.RuleNode) wfexs_backend.utils.groovy_parsing.NfWorkflow#
class wfexs_backend.utils.groovy_parsing.NfPlugin#

Bases: typing.NamedTuple

label: str = None#
wfexs_backend.utils.groovy_parsing.extract_nextflow_config_plugins(node: groovy_parser.parser.RuleNode) Sequence[NfPlugin]#
wfexs_backend.utils.groovy_parsing.deep_update(mapping: Mapping[KeyType, DeepValType], *updating_mappings: Mapping[KeyType, DeepValType]) Mapping[KeyType, DeepValType]#

This method was borrowed from pydantic

wfexs_backend.utils.groovy_parsing.extract_nested_assignments(children: Sequence[EmptyNode | LeafNode | RuleNode], only_names: Sequence[str] = []) wfexs_backend.utils.groovy_parsing.ContextAssignments#
wfexs_backend.utils.groovy_parsing.extract_nextflow_features(t_tree: groovy_parser.parser.RuleNode) Tuple[Sequence[NfProcess], Sequence[NfInclude], Sequence[NfWorkflow], Sequence[NfIncludeConfig], Sequence[NfPlugin]]#

This method takes as input a parsed groovy tree, and tries finding Nextflow and nextflow.config features

wfexs_backend.utils.groovy_parsing.cached_parse_and_digest_groovy_content(content: str, cache_dir: str | None = None) RuleNode | LeafNode | EmptyNode#
wfexs_backend.utils.groovy_parsing.analyze_nf_content(content: str, only_names: Sequence[str] = [], cache_dir: str | None = None) Tuple[RuleNode | LeafNode | EmptyNode, Sequence[NfProcess], Sequence[NfInclude], Sequence[NfWorkflow], Sequence[NfIncludeConfig], Sequence[NfPlugin], ContextAssignments]#