Total Complexity | 3 |
Total Lines | 29 |
Duplicated Lines | 0 % |
Changes | 0 |
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 |