benedict.serializers.yaml.YAMLSerializer.encode()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nop 3
1
import yaml
2
3
from benedict.serializers.abstract import AbstractSerializer
4
from benedict.serializers.json import JSONSerializer
5
6
7
class YAMLSerializer(AbstractSerializer):
8
    """
9
    This class describes an yaml serializer.
10
    """
11
12
    def __init__(self):
13
        super().__init__(
14
            extensions=[
15
                "yaml",
16
                "yml",
17
            ],
18
        )
19
        self._json_serializer = JSONSerializer()
20
21
    def decode(self, s, **kwargs):
22
        data = yaml.safe_load(s, **kwargs)
23
        return data
24
25
    def encode(self, d, **kwargs):
26
        d = self._json_serializer.decode(self._json_serializer.encode(d))
27
        data = yaml.dump(d, **kwargs)
28
        return data
29