# Stubs for galaxy.tools.parser.output_actions (Python 3.4)
#
# NOTE: This dynamically typed stub was automatically generated by stubgen.

from typing import Any

log = ...  # type: Any
COLLECTION_ATTRIBUTES = ...  # type: Any

class ToolOutputActionGroup:
    tag = ...  # type: str
    parent = ...  # type: Any
    actions = ...  # type: Any
    def __init__(self, parent, config_elem) -> None: ...
    def apply_action(self, output_dataset, other_values): ...
    @property
    def tool(self): ...
    def __len__(self): ...

class ToolOutputActionConditionalWhen(ToolOutputActionGroup):
    tag = ...  # type: str
    @classmethod
    def from_elem(cls, parent, when_elem): ...
    value = ...  # type: Any
    def __init__(self, parent, config_elem, value) -> None: ...
    def is_case(self, output_dataset, other_values): ...
    def get_ref(self, output_dataset, other_values): ...
    def apply_action(self, output_dataset, other_values): ...

class ValueToolOutputActionConditionalWhen(ToolOutputActionConditionalWhen):
    tag = ...  # type: str
    def is_case(self, output_dataset, other_values): ...

class DatatypeIsInstanceToolOutputActionConditionalWhen(ToolOutputActionConditionalWhen):
    tag = ...  # type: str
    value = ...  # type: Any
    def __init__(self, parent, config_elem, value) -> None: ...
    def is_case(self, output_dataset, other_values): ...

class ToolOutputActionConditional:
    tag = ...  # type: str
    parent = ...  # type: Any
    name = ...  # type: Any
    cases = ...  # type: Any
    def __init__(self, parent, config_elem) -> None: ...
    def apply_action(self, output_dataset, other_values): ...
    @property
    def tool(self): ...

class ToolOutputAction:
    tag = ...  # type: str
    @classmethod
    def from_elem(cls, parent, elem): ...
    parent = ...  # type: Any
    default = ...  # type: Any
    option = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def apply_action(self, output_dataset, other_values): ...
    @property
    def tool(self): ...

class ToolOutputActionOption:
    tag = ...  # type: str
    @classmethod
    def from_elem(cls, parent, elem): ...
    parent = ...  # type: Any
    filters = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def get_value(self, other_values): ...
    @property
    def tool(self): ...

class NullToolOutputActionOption(ToolOutputActionOption):
    tag = ...  # type: str
    def get_value(self, other_values): ...

class FromFileToolOutputActionOption(ToolOutputActionOption):
    tag = ...  # type: str
    name = ...  # type: Any
    column = ...  # type: Any
    offset = ...  # type: Any
    separator = ...  # type: Any
    options = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def get_value(self, other_values): ...

class FromParamToolOutputActionOption(ToolOutputActionOption):
    tag = ...  # type: str
    name = ...  # type: Any
    column = ...  # type: Any
    offset = ...  # type: Any
    param_attribute = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def get_value(self, other_values): ...

class FromDataTableOutputActionOption(ToolOutputActionOption):
    tag = ...  # type: str
    name = ...  # type: Any
    missing_tool_data_table_name = ...  # type: Any
    options = ...  # type: Any
    column = ...  # type: Any
    offset = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def get_value(self, other_values): ...

class MetadataToolOutputAction(ToolOutputAction):
    tag = ...  # type: str
    name = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def apply_action(self, output_dataset, other_values): ...

class FormatToolOutputAction(ToolOutputAction):
    tag = ...  # type: str
    default = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def apply_action(self, output_dataset, other_values): ...

class ToolOutputActionOptionFilter:
    tag = ...  # type: str
    @classmethod
    def from_elem(cls, parent, elem): ...
    parent = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...
    @property
    def tool(self): ...

class ParamValueToolOutputActionOptionFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    ref = ...  # type: Any
    value = ...  # type: Any
    column = ...  # type: Any
    keep = ...  # type: Any
    compare = ...  # type: Any
    cast = ...  # type: Any
    param_attribute = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class InsertColumnToolOutputActionOptionFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    ref = ...  # type: Any
    value = ...  # type: Any
    column = ...  # type: Any
    iterate = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class MultipleSplitterFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    column = ...  # type: Any
    separator = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class ColumnStripFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    column = ...  # type: Any
    strip = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class ColumnReplaceFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    old_column = ...  # type: Any
    old_value = ...  # type: Any
    new_value = ...  # type: Any
    new_column = ...  # type: Any
    column = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class MetadataValueFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    ref = ...  # type: Any
    name = ...  # type: Any
    column = ...  # type: Any
    keep = ...  # type: Any
    compare = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class BooleanFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    column = ...  # type: Any
    keep = ...  # type: Any
    cast = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

class StringFunctionFilter(ToolOutputActionOptionFilter):
    tag = ...  # type: str
    column = ...  # type: Any
    function = ...  # type: Any
    def __init__(self, parent, elem) -> None: ...
    def filter_options(self, options, other_values): ...

action_types = ...  # type: Any
option_types = ...  # type: Any
filter_types = ...  # type: Any

def parse_cast_attribute(cast): ...
def parse_compare_type(compare): ...
def compare_eq(value1, value2): ...
def compare_neq(value1, value2): ...
def compare_gt(value1, value2): ...
def compare_gte(value1, value2): ...
def compare_lt(value1, value2): ...
def compare_lte(value1, value2): ...
def compare_in(value1, value2): ...
def compare_startswith(value1, value2): ...
def compare_endswith(value1, value2): ...
def compare_re_search(value1, value2): ...

compare_types = ...  # type: Any
