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

from typing import Any, Optional

def tool_proxy(tool_path, strict_cwl_validation: bool = ...): ...
def load_job_proxy(job_directory, strict_cwl_validation: bool = ...): ...

class ToolProxy:
    def __init__(self, tool, tool_path) -> None: ...
    def job_proxy(self, input_dict, output_dict, job_directory: str = ...): ...
    def input_instances(self): ...
    def output_instances(self): ...
    def docker_identifier(self): ...
    def description(self): ...
    def label(self): ...

class CommandLineToolProxy(ToolProxy):
    def description(self): ...
    def label(self): ...
    def input_instances(self): ...
    def output_instances(self): ...
    def docker_identifier(self): ...

class ExpressionToolProxy(CommandLineToolProxy): ...

class JobProxy:
    def __init__(self, tool_proxy, input_dict, output_dict, job_directory) -> None: ...
    def cwl_job(self): ...
    @property
    def is_command_line_job(self): ...
    @property
    def command_line(self): ...
    @property
    def stdin(self): ...
    @property
    def stdout(self): ...
    @property
    def environment(self): ...
    @property
    def generate_files(self): ...
    def collect_outputs(self, tool_working_directory): ...
    def save_job(self): ...
    def output_id(self, output_name): ...
    def output_path(self, output_name): ...
    def output_secondary_files_dir(self, output_name, create: bool = ...): ...
    def stage_files(self): ...

class WorkflowProxy:
    def __init__(self, workflow, workflow_path) -> None: ...
    def step_proxies(self): ...
    @property
    def runnables(self): ...
    def to_dict(self): ...

class StepProxy:
    def __init__(self, workflow_proxy, step) -> None: ...
    def to_dict(self): ...

class ConditionalInstance:
    input_type = ...  # type: Any
    name = ...  # type: Any
    case = ...  # type: Any
    whens = ...  # type: Any
    def __init__(self, name, case, whens) -> None: ...
    def to_dict(self): ...

class SelectInputInstance:
    input_type = ...  # type: Any
    name = ...  # type: Any
    label = ...  # type: Any
    description = ...  # type: Any
    options = ...  # type: Any
    def __init__(self, name, label, description, options) -> None: ...
    def to_dict(self): ...

class InputInstance:
    input_type = ...  # type: Any
    name = ...  # type: Any
    label = ...  # type: Any
    description = ...  # type: Any
    required = ...  # type: bool
    array = ...  # type: Any
    area = ...  # type: Any
    def __init__(self, name, label, description, input_type, array: bool = ..., area: bool = ...) -> None: ...
    def to_dict(self, itemwise: bool = ...): ...

class OutputInstance:
    name = ...  # type: Any
    output_data_type = ...  # type: Any
    output_type = ...  # type: Any
    path = ...  # type: Any
    def __init__(self, name, output_data_type, output_type, path: Optional[Any] = ...) -> None: ...
