Skip to content

Cf

CfHeader

Bases: ExtractionMethod

CF backend for header method.

Method name: cf

Example configuration

.. code-block:: yaml

  • method: cf inputs: input_term: hello_world
Source code in extraction_methods/plugins/header/backends/cf.py
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
class CfHeader(ExtractionMethod):
    """
    CF backend for header method.

    **Method name:** ``cf``

    Example configuration:
        .. code-block:: yaml

        - method: cf
          inputs:
            input_term: hello_world
    """

    input_class = CfHeaderInput

    @update_input
    def run(self, body: dict[str, Any]) -> dict[str, Any]:
        field_list = cf.read(self.input.input_term, **self.input.read_kwargs)

        properties: dict[str, Any] = {}
        for field in field_list:
            properties |= field.properties()
            if field.nc_global_attributes():
                properties["global_attributes"] = field.nc_global_attributes()

        for attribute in self.input.attributes:
            if (
                "global_attributes" in properties
                and properties["global_attributes"][attribute.key]
            ):
                body[attribute.output_key] = properties["global_attributes"][
                    attribute.key
                ]
            elif attribute in properties:
                body[attribute.output_key] = properties[attribute.key]

        return body

CfHeaderInput

Bases: Input

Model for CF Header Input.

Source code in extraction_methods/plugins/header/backends/cf.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class CfHeaderInput(Input):
    """
    Model for CF Header Input.
    """

    input_term: str = Field(
        default="$uri",
        description="term for method to run on.",
    )
    read_kwargs: dict[str, Any] = Field(
        default={},
        description="kwargs for cf read.",
    )
    attributes: list[KeyOutputKey] = Field(
        default=[],
        description="attributes to be extracted.",
    )