def test_readme_task(self):
        t = Task("task_name")
        t.inputs.append(Input(WdlType.parse_type("String"), "taskGreeting"))
        # command in next section
        t.outputs.append(
            Output(WdlType.parse_type("File"), "standardOut", "stdout()"))

        command = Task.Command("echo")
        command.inputs.append(
            Task.Command.CommandInput.from_fields(
                "taskGreeting",
                optional=False,
                position=None,
                prefix="-a",
                separate_value_from_prefix=True,
                default=None,
            ))
        command.inputs.append(
            Task.Command.CommandInput.from_fields(
                "otherInput",
                optional=True,
                position=2,
                prefix="optional-param=",
                separate_value_from_prefix=False,
                default=None,
            ))
        command = Task.Command("echo")
        command.inputs.append(
            Task.Command.CommandInput.from_fields(
                "taskGreeting",
                optional=False,
                position=None,
                prefix="-a",
                separate_value_from_prefix=True,
                default=None,
            ))
        command.inputs.append(
            Task.Command.CommandInput.from_fields(
                "otherInput",
                optional=True,
                position=2,
                prefix="optional-param=",
                separate_value_from_prefix=False,
                default=None,
            ))

        # t is the task
        t.command = command
        print(t.get_string())
    def test_readme_example(self):
        command = Task.Command("echo")
        command.inputs.append(
            Task.Command.CommandInput(
                "taskGreeting",
                optional=False,
                position=None,
                prefix="-a",
                separate_value_from_prefix=True,
                default=None,
            ))
        command.inputs.append(
            Task.Command.CommandInput(
                "otherInput",
                optional=True,
                position=2,
                prefix="optional-param=",
                separate_value_from_prefix=False,
                default=None,
            ))
        output = command.get_string()
        expected = '''\
echo \\
  -a ~{taskGreeting} \\
  ~{'"optional-param=' + otherInput + '"'}'''
        # t is the task
        self.assertEqual(expected, output)

        # Check that it's also valid WDL
        parse_miniwdl_token('command2', 'command <<<\n' + output + '\n>>>')
    def test_readme_example(self):
        command = Task.Command("echo")
        command.inputs.append(
            Task.Command.CommandInput.from_fields(
                "taskGreeting",
                optional=False,
                position=None,
                prefix="-a",
                separate_value_from_prefix=True,
                default=None,
            ))
        command.inputs.append(
            Task.Command.CommandInput.from_fields(
                "otherInput",
                optional=True,
                position=2,
                prefix="optional-param=",
                separate_value_from_prefix=False,
                default=None,
            ))
        expected = """\
echo \\
  -a ~{taskGreeting} \\
  ~{if defined(otherInput) then ('"' + "optional-param=" + otherInput + '"') else ""}"""
        # t is the task
        self.assertEqual(expected, command.get_string())
    def test_simple_command(self):
        command = Task.Command("egrep")
        command.inputs.append(Task.Command.CommandInput("pattern"))
        command.inputs.append(Task.Command.CommandInput("in"))

        expected = """\
egrep \\
  ~{pattern} \\
  ~{in}"""

        self.assertEqual(expected, command.get_string(0))
示例#5
0
 def make_command(self, cmd: Command,
                  inputs: List[NamedArgument]) -> Task.Command:
     return Task.Command(
         command=" ".join(cmd.command),
         inputs=[
             flag_to_command_input(input, self) for input in inputs
             if isinstance(input.arg, Positional)
         ],
         arguments=[
             flag_to_command_input(input, self) for input in inputs
             if isinstance(input.arg, Flag)
         ],
     )
    def test_simple_task(self):
        # Task based on: https://github.com/openwdl/wdl/blob/master/versions/draft-2/SPEC.md#introduction
        t = Task("hello",
                 runtime=Task.Runtime(docker="broadinstitute/my_image"))
        t.inputs.extend([
            Input(WdlType.parse_type("String"), "pattern"),
            Input(WdlType.parse_type("File"), "in"),
        ])

        t.outputs.append(
            Output(WdlType.parse_type("Array[String]"), "matches",
                   "read_lines(stdout())"))

        t.command = Task.Command(
            "egrep",
            inputs=[Task.Command.CommandInput.from_input(i) for i in t.inputs])

        print(t.get_string())
        return t
    def test_hello_tasks():
        # https://github.com/openwdl/wdl/#specifying-inputs-and-using-declarations

        t1 = Task(
            "hello",
            inputs=[Input(String, "name"),
                    Input(String, "salutation")],
            outputs=[Output(String, "response", "read_string(stdout())")],
        )
        t1.command = Task.Command(
            "echo",
            inputs=[
                Task.Command.CommandInput.from_input(t1.inputs[i], position=i)
                for i in range(2)
            ],
        )

        print(t1.get_string())

        return t1