Skip to content
Snippets Groups Projects
Commit 86c18cde authored by I. Nüske's avatar I. Nüske
Browse files

DOC: Make the Custom Transformers example executable without changes, fix indentation

parent ce3844f2
No related branches found
No related tags found
2 merge requests!217TST: Make NamedTemporaryFiles Windows-compatible,!213DOC: added documentaiton on how to use custom transformers
Pipeline #59990 passed
......@@ -86,32 +86,32 @@ following code:
.. code-block:: python
def replace_letters(in_value: Any, in_parameters: dict) -> Any:
"""
Replace letters in variables
"""
def replace_letters(in_value: Any, in_parameters: dict) -> Any:
"""
Replace letters in variables
"""
# The arguments to the transformer (as given by the definition in the cfood)
# are contained in `in_parameters`. We need to make sure they are set or
# set their defaults otherwise:
# The arguments to the transformer (as given by the definition in the cfood)
# are contained in `in_parameters`. We need to make sure they are set or
# set their defaults otherwise:
if "in_letter" not in in_parameters:
raise RuntimeError("Parameter `in_letters` missing.")
if "in_letters" not in in_parameters:
raise RuntimeError("Parameter `in_letters` missing.")
if "out_letter" not in in_parameters:
raise RuntimeError("Parameter `out_letters` missing.")
if "out_letters" not in in_parameters:
raise RuntimeError("Parameter `out_letters` missing.")
l_in = in_parameters["in_letters"]
l_out = in_parameters["out_letters"]
l_in = in_parameters["in_letters"]
l_out = in_parameters["out_letters"]
if len(l_in) != len(l_out):
raise RuntimeError("`in_letters` and `out_letters` must have the same length.")
if len(l_in) != len(l_out):
raise RuntimeError("`in_letters` and `out_letters` must have the same length.")
for l1, l2 in zip(l_in, l_out):
in_value = in_value.replace(l1, l2)
for l1, l2 in zip(l_in, l_out):
in_value = in_value.replace(l1, l2)
return in_value
return in_value
This code needs to be put into a module that can be found during runtime of the crawler.
......@@ -122,16 +122,16 @@ In the cfood the transfomer needs to be registered:
.. code-block:: yaml
---
metadata:
crawler-version: 0.10.2
macros:
---
Converters: # put custom converters here
Transformers:
replace_letters: # This name will be made available in the cfood
function: replace_letters
package: utilities.replace_letters
---
metadata:
crawler-version: 0.10.2
macros:
---
#Converters: # put custom converters here
Transformers:
replace_letters: # This name will be made available in the cfood
function: replace_letters
package: utilities.replace_letters
This would assume that the code for the function `replace_letters` is residing in a file
called `replace_letters.py` that is stored in a package called `utilities`.
......@@ -141,17 +141,17 @@ The transformer can then be used in a converter, e.g.:
.. code-block:: yaml
Experiment:
type: Dict
match: ".*"
transform:
replace_letters:
in: $a
out: $b
functions:
- replace_letters: # This is the name of our custom transformer
in_letters: "abc"
out_letters: "xyz"
records:
Report:
tags: $b
Experiment:
type: Dict
match: ".*"
transform:
replace_letters:
in: $a
out: $b
functions:
- replace_letters: # This is the name of our custom transformer
in_letters: "abc"
out_letters: "xyz"
records:
Report:
tags: $b
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment