benedict.serializers.yaml   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 18
dl 0
loc 29
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A YAMLSerializer.__init__() 0 8 1
A YAMLSerializer.decode() 0 3 1
A YAMLSerializer.encode() 0 4 1
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