YAML Tags
Logprep supports the custom YAML tags !include, !set_anchor and
!load_anchor.
Those can be used inside any YAML file that is loaded by Logprep.
Include tags
The tag !include PATH_TO_YAML_FILE loads a single YAML document from a local file path and
inserts it in its place.
Included files can’t contain an !include tag.
Example:
1filter: to_resolve
2generic_resolver:
3 field_mapping:
4 to_resolve: resolved
5 resolve_list: !include /path/to/resolve_list.yml
Anchor tags
Anchor tags work similar to regular YAML anchors, but are valid across different documents.
Tags are set with !set_anchor(:[0-9])? and loaded with !load_anchor(:[0-9])?.
Ten anchors can be active at the same time. If more then ten are set then the first will be removed
until there are ten.
!set_anchor and !load_anchor are shorthands for !set_anchor:0 and
!load_anchor:0.
!set_anchor can’t be nested inside another !set_anchor.
Examples:
1filter: to_resolve
2generic_resolver:
3 field_mapping:
4 to_resolve: resolved
5 resolve_list: !set_anchor:1
6 one: foo
7 two: bar
8---
9filter: to_resolve_2
10generic_resolver:
11 field_mapping:
12 to_resolve_2: resolved
13 resolve_list: !load_anchor:1
1filter: to_resolve
2generic_resolver:
3 field_mapping:
4 to_resolve: resolved
5 resolve_list: !set_anchor
6 one: foo
7 two: bar
8---
9filter: to_resolve_2
10generic_resolver:
11 field_mapping:
12 to_resolve_2: resolved
13 resolve_list: !load_anchor
- logprep.util.tag_yaml_loader.init_yaml_loader_tags(*loader_types: str) → None
Add custom tags !include, !set_anchor and !load_anchor to the specified loader types.
Must be initialized before yaml files have been loaded to take effect.
- Parameters:
*loader_types (str) – Types of loaders for which tags will be initialized (i.e. “safe” or “rt”).