From bc3a3941426e2092b8ee823464d66d98259183c2 Mon Sep 17 00:00:00 2001 From: Ivan Kondov <ivan.kondov@kit.edu> Date: Wed, 13 Nov 2019 13:06:57 +0100 Subject: [PATCH] adapted to work with current upstream/master of fireworks, agenda modified --- docs/agenda.rst | 24 ++++++++++---- docs/basics.rst | 22 ++++++------- docs/exercise2.rst | 6 ++-- docs/exercise4.rst | 4 +-- exercises/demos/2_data_flow/foreach_task.json | 16 +++++----- exercises/demos/2_data_flow/foreach_task.yaml | 16 +++++----- .../2_data_flow/python_function_task.json | 24 +++++++------- .../2_data_flow/python_function_task.yaml | 24 +++++++------- .../foreach_task_cmd.json | 8 ++--- .../foreach_task_cmd.yaml | 8 ++--- exercises/inputs/2_data_flow/template.json | 16 +++++----- exercises/inputs/2_data_flow/template.yaml | 32 +++++++++---------- .../problems/2_data_flow/recruiting-0.json | 8 ++--- .../problems/2_data_flow/recruiting-0.yaml | 8 ++--- .../problems/2_data_flow/recruiting-1.json | 16 +++++----- .../problems/2_data_flow/recruiting-1.yaml | 16 +++++----- .../problems/2_data_flow/recruiting-2.json | 16 +++++----- .../problems/2_data_flow/recruiting-2.yaml | 16 +++++----- .../dataloader+repeater.json | 12 +++---- .../5_author_firetask/dataloader.json | 12 +++---- .../solutions/2_data_flow/recruiting.json | 16 +++++----- .../solutions/2_data_flow/recruiting.yaml | 16 +++++----- .../4_wflow_append/image_swirl_montaged.json | 4 +-- .../4_wflow_append/image_swirl_montaged.yaml | 4 +-- 24 files changed, 177 insertions(+), 167 deletions(-) diff --git a/docs/agenda.rst b/docs/agenda.rst index 032d5e8..ce4d5a5 100644 --- a/docs/agenda.rst +++ b/docs/agenda.rst @@ -2,39 +2,49 @@ Basic procedures ================ * Compose Fireworks and workflows - * Validate workflows - * View workflows * Add fireworks to LaunchPad: ``lpad add`` + * Validate workflows ``lpad add -c``, ``lpad check_wflow`` + * View workflows ``lpad check_wflow -g`` * Execution: ``rlaunch`` - * Monitoring: ``lpad get_*``, ``lpad webgui`` + * Query fireworks and workflows: ``lpad get_fws``, ``lpad get_wflows`` + * Monitoring: ``lpad report``, ``lpad track_fws`` Exercise 1: Managing control flow ================================= * Dependencies and concurrency - * Use standard Firetasks: ``ScriptTask`` + * Use built-in Firetasks: ``ScriptTask`` * Example: F1 pitstop Exercise 2: Managing data flow ============================== * Data flow dependencies - * Use custom Firetasks: ``PythonFunctionTask`` + * Use built-in Firetasks: ``PyTask`` * Example: Recruiting Exercise 3: Manage data in files and command line input ======================================================= - * Use custom Firetasks: ``CommandLineTask`` + * Use built-in Firetasks: ``CommandLineTask`` * Example: Image reconstruction Exercise 4: Extending a workflow ================================ + * Use built-in command ``lpad append_wflow`` * Extension of example from Exercise 3 * Example: Image swirl -Exercise 5: Writing a Firetask +Exercise 5: Productive use + * Best practices: separate configs, launches, templates, inputs + * Using FireWorks with a batch system on HPC clusters + * Recovery from failure + * Duplicates + * Heterogeneous and distributed computing: _category, _fworker, etc. + * ... + +Exercise 6: Writing a Firetask ============================== * Extension of example from Exercise 2 diff --git a/docs/basics.rst b/docs/basics.rst index 5de87b2..c5bce57 100644 --- a/docs/basics.rst +++ b/docs/basics.rst @@ -45,26 +45,26 @@ another in the order of their specification and share the same job working directory and the files in it. Here is a short example for a workflow demonstrating the usage of the -``PythonFunctionTask``:: +``PyTask``:: fws: - fw_id: 1 name: Grind coffee spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [coffee beans] - outputs: coffee powder + outputs: [coffee powder] coffee beans: best selection - fw_id: 2 name: Brew coffee spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [coffee powder, water] - outputs: pure coffee + outputs: [pure coffee] water: workflowing water links: '1': [2] @@ -84,7 +84,7 @@ Add Fireworks to LaunchPad The LaunchPad is a database where the workflows are stored during their full life cycle. It is hosted on a resource named FireServer. -**NOTE:** For simplicity, in this tutorial the FireServer is the same host on +**NOTE:** In tutorial settings the FireServer is sometimes on the same host on which you are logged on. When used productively the LaunchPad contains many workflows in different states. @@ -127,7 +127,7 @@ Visualize workflows Already added workflows can be converted into DOT format and viewed graphically:: - lpad check_wflow -i <firework ID> [--view_control_flow] [--view_data_flow] [-f <DOT_FILE>] + lpad check_wflow -i <firework ID> [-g <controlflow | dataflow | combined>] [-f <filename>] After the dot file is produced it can be converted to PDF and the workflow graph can be viewed:: @@ -146,8 +146,8 @@ running on different resources where individual Fireworks can be executed by the rocket launcher ``rlaunch`` which has three modes of operation: *singleshot*, *rapidfire* and *multi*. -**NOTE:** For simplicity, in this tutorial the FireWorker is the same host as -the FireServer. +**NOTE:** In tutorial settings the FireWorker is sometimes on the same host as +the FireServer and/or on the host where you are logged in. To only execute one Firework from the LaunchPad which is in *READY* state the following command is used:: diff --git a/docs/exercise2.rst b/docs/exercise2.rst index d937d1d..97c2c61 100644 --- a/docs/exercise2.rst +++ b/docs/exercise2.rst @@ -2,10 +2,10 @@ Exercise 2: Managing data flow ============================== The purpose of this exercise is to learn how to pass data between Fireworks and -describe data dependencies using the custom Firetask ``PythonFunctionTask``:: +describe data dependencies using the custom Firetask ``PyTask``:: - - _fw_name: PythonFunctionTask - function: any_module.any_function + - _fw_name: PyTask + func: any_module.any_function inputs: - first argument - second argument diff --git a/docs/exercise4.rst b/docs/exercise4.rst index d3072b5..a90afad 100644 --- a/docs/exercise4.rst +++ b/docs/exercise4.rst @@ -27,8 +27,8 @@ latter workflow. For this, first copy the workflow **image_swirl.json** from name: Pass filename spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [montaged image] outputs: [montaged image] and:: diff --git a/exercises/demos/2_data_flow/foreach_task.json b/exercises/demos/2_data_flow/foreach_task.json index f23ce76..10e250a 100644 --- a/exercises/demos/2_data_flow/foreach_task.json +++ b/exercises/demos/2_data_flow/foreach_task.json @@ -8,10 +8,10 @@ { "_fw_name": "ForeachTask", "task": { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["coffee beans"], - "outputs": "coffee powder" + "outputs": ["coffee powder"] }, "split": "coffee beans" } @@ -27,10 +27,10 @@ { "_fw_name": "ForeachTask", "task": { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["coffee powder", "water"], - "outputs": "pure coffee" + "outputs": ["pure coffee"] }, "split": "coffee powder" } @@ -44,8 +44,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["pure coffee"] } ] diff --git a/exercises/demos/2_data_flow/foreach_task.yaml b/exercises/demos/2_data_flow/foreach_task.yaml index acdfa18..35cd172 100644 --- a/exercises/demos/2_data_flow/foreach_task.yaml +++ b/exercises/demos/2_data_flow/foreach_task.yaml @@ -6,10 +6,10 @@ fws: - _fw_name: ForeachTask split: coffee beans task: - _fw_name: PythonFunctionTask - function: auxiliary.print_func + _fw_name: PyTask + func: auxiliary.print_func inputs: [coffee beans] - outputs: coffee powder + outputs: [coffee powder] coffee beans: [arabica, robusta, liberica] - fw_id: 2 name: Brew coffee @@ -18,17 +18,17 @@ fws: - _fw_name: ForeachTask split: coffee powder task: - _fw_name: PythonFunctionTask - function: auxiliary.print_func + _fw_name: PyTask + func: auxiliary.print_func inputs: [coffee powder, water] - outputs: pure coffee + outputs: [pure coffee] water: workflowing water - fw_id: 3 name: Serve coffee spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [pure coffee] links: '1': [2] diff --git a/exercises/demos/2_data_flow/python_function_task.json b/exercises/demos/2_data_flow/python_function_task.json index fcb92ed..e3abe0c 100644 --- a/exercises/demos/2_data_flow/python_function_task.json +++ b/exercises/demos/2_data_flow/python_function_task.json @@ -6,10 +6,10 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["fresh coffee beans"], - "outputs": "roasted coffee beans" + "outputs": ["roasted coffee beans"] } ], "fresh coffee beans": "top coffee selection" @@ -21,10 +21,10 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["roasted coffee beans"], - "outputs": "coffee powder" + "outputs": ["coffee powder"] } ] } @@ -35,10 +35,10 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["coffee powder", "water"], - "outputs": "pure coffee" + "outputs": ["pure coffee"] } ], "water": "workflowing water" @@ -50,10 +50,10 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["pure coffee", "milk"], - "outputs": "cappuccino" + "outputs": ["cappuccino"] } ], "milk": "milky way milk" diff --git a/exercises/demos/2_data_flow/python_function_task.yaml b/exercises/demos/2_data_flow/python_function_task.yaml index 5798cfb..be2e609 100644 --- a/exercises/demos/2_data_flow/python_function_task.yaml +++ b/exercises/demos/2_data_flow/python_function_task.yaml @@ -3,36 +3,36 @@ fws: name: Roast coffee spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [fresh coffee beans] - outputs: roasted coffee beans + outputs: [roasted coffee beans] fresh coffee beans: top coffee selection - fw_id: 1 name: Grind coffee spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [roasted coffee beans] - outputs: coffee powder + outputs: [coffee powder] - fw_id: 2 name: Brew coffee spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [coffee powder, water] - outputs: pure coffee + outputs: [pure coffee] water: workflowing water - fw_id: 3 name: Add extras spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [pure coffee, milk] - outputs: cappuccino + outputs: [cappuccino] milk: milky way milk links: '0': [1] diff --git a/exercises/demos/3_files_and_commands/foreach_task_cmd.json b/exercises/demos/3_files_and_commands/foreach_task_cmd.json index 3a702a7..17bb663 100644 --- a/exercises/demos/3_files_and_commands/foreach_task_cmd.json +++ b/exercises/demos/3_files_and_commands/foreach_task_cmd.json @@ -50,8 +50,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": [ "file set" ] @@ -77,8 +77,8 @@ } }, { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": [ "stdout dump" ] diff --git a/exercises/demos/3_files_and_commands/foreach_task_cmd.yaml b/exercises/demos/3_files_and_commands/foreach_task_cmd.yaml index 9992448..efd7419 100644 --- a/exercises/demos/3_files_and_commands/foreach_task_cmd.yaml +++ b/exercises/demos/3_files_and_commands/foreach_task_cmd.yaml @@ -22,8 +22,8 @@ fws: name: Concatenate the files into a string spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [file set] - _fw_name: CommandLineTask command_spec: @@ -34,8 +34,8 @@ fws: target: {type: data, value: stdout dump} inputs: [file set] outputs: [stdout dump] - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [stdout dump] links: '1': [2] diff --git a/exercises/inputs/2_data_flow/template.json b/exercises/inputs/2_data_flow/template.json index 1cf1a51..1abb580 100644 --- a/exercises/inputs/2_data_flow/template.json +++ b/exercises/inputs/2_data_flow/template.json @@ -6,8 +6,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["job description"], "outputs": [""] } @@ -21,8 +21,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "", + "_fw_name": "PyTask", + "func": "", "inputs": [ "", "" @@ -40,8 +40,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "", + "_fw_name": "PyTask", + "func": "", "inputs": [ "", "", @@ -61,8 +61,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "", + "_fw_name": "PyTask", + "func": "", "inputs": [ "", "", diff --git a/exercises/inputs/2_data_flow/template.yaml b/exercises/inputs/2_data_flow/template.yaml index d0b247c..7db2bf2 100644 --- a/exercises/inputs/2_data_flow/template.yaml +++ b/exercises/inputs/2_data_flow/template.yaml @@ -3,40 +3,40 @@ fws: name: Post the job spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [job description] - outputs: [''] + outputs: [' '] job description: {} - fw_id: 2 name: Candidates apply spec: _tasks: - - _fw_name: PythonFunctionTask - function: '' - inputs: ['', ''] - outputs: [''] + - _fw_name: PyTask + func: ' ' + inputs: [' ', ' '] + outputs: [' '] application template: {} maximum applications: 50 - fw_id: 3 name: Screen candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: '' - inputs: ['', '', '', ''] - outputs: [''] + - _fw_name: PyTask + func: ' ' + inputs: [' ', ' ', ' ', ' '] + outputs: [' '] minimum score: 2 number to invite: 4 - fw_id: 4 name: Interview candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: '' - inputs: ['', '', ''] - outputs: [''] + - _fw_name: PyTask + func: ' ' + inputs: [' ', ' ', ' '] + outputs: [' '] number to fill: 2 links: {} metadata: {} -name: '' +name: ' ' diff --git a/exercises/problems/2_data_flow/recruiting-0.json b/exercises/problems/2_data_flow/recruiting-0.json index e2cefec..ef8d65d 100644 --- a/exercises/problems/2_data_flow/recruiting-0.json +++ b/exercises/problems/2_data_flow/recruiting-0.json @@ -6,8 +6,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "", + "_fw_name": "PyTask", + "func": "", "inputs": [], "outputs": [] } @@ -20,8 +20,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "", + "_fw_name": "PyTask", + "func": "", "inputs": [], "outputs": [] } diff --git a/exercises/problems/2_data_flow/recruiting-0.yaml b/exercises/problems/2_data_flow/recruiting-0.yaml index 6b69a6d..43038e8 100644 --- a/exercises/problems/2_data_flow/recruiting-0.yaml +++ b/exercises/problems/2_data_flow/recruiting-0.yaml @@ -3,16 +3,16 @@ fws: name: '' spec: _tasks: - - _fw_name: PythonFunctionTask - function: '' + - _fw_name: PyTask + func: '' inputs: [] outputs: [] - fw_id: 2 name: '' spec: _tasks: - - _fw_name: PythonFunctionTask - function: '' + - _fw_name: PyTask + func: '' inputs: [] outputs: [] links: diff --git a/exercises/problems/2_data_flow/recruiting-1.json b/exercises/problems/2_data_flow/recruiting-1.json index 14c7e7d..a514189 100644 --- a/exercises/problems/2_data_flow/recruiting-1.json +++ b/exercises/problems/2_data_flow/recruiting-1.json @@ -6,8 +6,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["job description"], "outputs": ["job description"] } @@ -35,8 +35,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.candidates_apply", + "_fw_name": "PyTask", + "func": "recruiting.candidates_apply", "inputs": ["application template", "maximum applications"], "outputs": ["applicant profiles"] } @@ -71,8 +71,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.screen_candidates", + "_fw_name": "PyTask", + "func": "recruiting.screen_candidates", "inputs": [ "job description", "applicant profiles", @@ -92,8 +92,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.interview_candidates", + "_fw_name": "PyTask", + "func": "recruiting.interview_candidates", "inputs": [ "job description", "applicant profiles", diff --git a/exercises/problems/2_data_flow/recruiting-1.yaml b/exercises/problems/2_data_flow/recruiting-1.yaml index deadbff..c41093d 100644 --- a/exercises/problems/2_data_flow/recruiting-1.yaml +++ b/exercises/problems/2_data_flow/recruiting-1.yaml @@ -3,8 +3,8 @@ fws: name: Post the job spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [job description] outputs: [job description] job description: @@ -17,8 +17,8 @@ fws: name: Candidates apply spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.candidates_apply + - _fw_name: PyTask + func: recruiting.candidates_apply inputs: [application template, maximum applications] outputs: [applicant profiles] application template: @@ -36,8 +36,8 @@ fws: name: Screen candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.screen_candidates + - _fw_name: PyTask + func: recruiting.screen_candidates inputs: [job description, applicant profiles, minimum score, number to invite] outputs: [invited applicants] minimum score: 2 @@ -46,8 +46,8 @@ fws: name: Interview candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.interview_candidates + - _fw_name: PyTask + func: recruiting.interview_candidates inputs: [job description, applicant profiles, number to fill] outputs: [selected applicants] number to fill: 2 diff --git a/exercises/problems/2_data_flow/recruiting-2.json b/exercises/problems/2_data_flow/recruiting-2.json index c5d213e..c88c620 100644 --- a/exercises/problems/2_data_flow/recruiting-2.json +++ b/exercises/problems/2_data_flow/recruiting-2.json @@ -6,8 +6,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["job description"], "outputs": ["job description"] } @@ -35,8 +35,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.candidates_apply", + "_fw_name": "PyTask", + "func": "recruiting.candidates_apply", "inputs": ["application template", "maximum applications"], "outputs": ["applicant profiles"] } @@ -71,8 +71,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.screen_candidates", + "_fw_name": "PyTask", + "func": "recruiting.screen_candidates", "inputs": [ "job description", "applicant profiles", @@ -92,8 +92,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.interview_candidates", + "_fw_name": "PyTask", + "func": "recruiting.interview_candidates", "inputs": [ "job description", "invited applicants", diff --git a/exercises/problems/2_data_flow/recruiting-2.yaml b/exercises/problems/2_data_flow/recruiting-2.yaml index c3e55cb..7e7c6af 100644 --- a/exercises/problems/2_data_flow/recruiting-2.yaml +++ b/exercises/problems/2_data_flow/recruiting-2.yaml @@ -3,8 +3,8 @@ fws: name: Post the job spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [job description] outputs: [job description] job description: @@ -17,8 +17,8 @@ fws: name: Candidates apply spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.candidates_apply + - _fw_name: PyTask + func: recruiting.candidates_apply inputs: [application template, maximum applications] outputs: [applicant profiles] application template: @@ -36,8 +36,8 @@ fws: name: Screen candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.screen_candidates + - _fw_name: PyTask + func: recruiting.screen_candidates inputs: [job description, applicant profiles, minimum score, number to invite] outputs: [invited applicants] minimum score: 2 @@ -46,8 +46,8 @@ fws: name: Interview candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.interview_candidates + - _fw_name: PyTask + func: recruiting.interview_candidates inputs: [job description, invited applicants, number to fill] outputs: [selected applicants] number to fill: 2 diff --git a/exercises/problems/5_author_firetask/dataloader+repeater.json b/exercises/problems/5_author_firetask/dataloader+repeater.json index 3382947..400eb2e 100644 --- a/exercises/problems/5_author_firetask/dataloader+repeater.json +++ b/exercises/problems/5_author_firetask/dataloader+repeater.json @@ -24,8 +24,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.candidates_apply", + "_fw_name": "PyTask", + "func": "recruiting.candidates_apply", "inputs": ["application template", "maximum applications"], "outputs": ["applicant profiles"] }, @@ -45,8 +45,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.screen_candidates", + "_fw_name": "PyTask", + "func": "recruiting.screen_candidates", "inputs": [ "job description", "applicant profiles", @@ -71,8 +71,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.interview_candidates", + "_fw_name": "PyTask", + "func": "recruiting.interview_candidates", "inputs": [ "job description", "invited applicants", diff --git a/exercises/problems/5_author_firetask/dataloader.json b/exercises/problems/5_author_firetask/dataloader.json index 3585d28..cd4e3d3 100644 --- a/exercises/problems/5_author_firetask/dataloader.json +++ b/exercises/problems/5_author_firetask/dataloader.json @@ -24,8 +24,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.candidates_apply", + "_fw_name": "PyTask", + "func": "recruiting.candidates_apply", "inputs": ["application template", "maximum applications"], "outputs": ["applicant profiles"] } @@ -39,8 +39,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.screen_candidates", + "_fw_name": "PyTask", + "func": "recruiting.screen_candidates", "inputs": [ "job description", "applicant profiles", @@ -60,8 +60,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.interview_candidates", + "_fw_name": "PyTask", + "func": "recruiting.interview_candidates", "inputs": [ "job description", "invited applicants", diff --git a/exercises/solutions/2_data_flow/recruiting.json b/exercises/solutions/2_data_flow/recruiting.json index a49ba05..ffd67fd 100644 --- a/exercises/solutions/2_data_flow/recruiting.json +++ b/exercises/solutions/2_data_flow/recruiting.json @@ -6,8 +6,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["job description"], "outputs": ["job description"] } @@ -35,8 +35,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.candidates_apply", + "_fw_name": "PyTask", + "func": "recruiting.candidates_apply", "inputs": ["application template", "maximum applications"], "outputs": ["applicant profiles"] } @@ -71,8 +71,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.screen_candidates", + "_fw_name": "PyTask", + "func": "recruiting.screen_candidates", "inputs": [ "job description", "applicant profiles", @@ -92,8 +92,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "recruiting.interview_candidates", + "_fw_name": "PyTask", + "func": "recruiting.interview_candidates", "inputs": [ "job description", "invited applicants", diff --git a/exercises/solutions/2_data_flow/recruiting.yaml b/exercises/solutions/2_data_flow/recruiting.yaml index 3510e17..e1127af 100644 --- a/exercises/solutions/2_data_flow/recruiting.yaml +++ b/exercises/solutions/2_data_flow/recruiting.yaml @@ -3,8 +3,8 @@ fws: name: Post the job spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [job description] outputs: [job description] job description: @@ -17,8 +17,8 @@ fws: name: Candidates apply spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.candidates_apply + - _fw_name: PyTask + func: recruiting.candidates_apply inputs: [application template, maximum applications] outputs: [applicant profiles] application template: @@ -36,8 +36,8 @@ fws: name: Screen candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.screen_candidates + - _fw_name: PyTask + func: recruiting.screen_candidates inputs: [job description, applicant profiles, minimum score, number to invite] outputs: [invited applicants] minimum score: 2 @@ -46,8 +46,8 @@ fws: name: Interview candidates spec: _tasks: - - _fw_name: PythonFunctionTask - function: recruiting.interview_candidates + - _fw_name: PyTask + func: recruiting.interview_candidates inputs: [job description, invited applicants, number to fill] outputs: [selected applicants] number to fill: 2 diff --git a/exercises/solutions/4_wflow_append/image_swirl_montaged.json b/exercises/solutions/4_wflow_append/image_swirl_montaged.json index 014d8df..a764f90 100644 --- a/exercises/solutions/4_wflow_append/image_swirl_montaged.json +++ b/exercises/solutions/4_wflow_append/image_swirl_montaged.json @@ -7,8 +7,8 @@ "spec": { "_tasks": [ { - "_fw_name": "PythonFunctionTask", - "function": "auxiliary.print_func", + "_fw_name": "PyTask", + "func": "auxiliary.print_func", "inputs": ["montaged image"], "outputs": ["montaged image"] } diff --git a/exercises/solutions/4_wflow_append/image_swirl_montaged.yaml b/exercises/solutions/4_wflow_append/image_swirl_montaged.yaml index 6a151c8..f32f822 100644 --- a/exercises/solutions/4_wflow_append/image_swirl_montaged.yaml +++ b/exercises/solutions/4_wflow_append/image_swirl_montaged.yaml @@ -3,8 +3,8 @@ fws: name: Pass filename spec: _tasks: - - _fw_name: PythonFunctionTask - function: auxiliary.print_func + - _fw_name: PyTask + func: auxiliary.print_func inputs: [montaged image] outputs: [montaged image] - fw_id: -1 -- GitLab