Total Complexity | 3 |
Total Lines | 27 |
Duplicated Lines | 0 % |
Changes | 0 |
1 | import plistlib |
||
2 | |||
3 | from benedict.serializers.abstract import AbstractSerializer |
||
4 | |||
5 | |||
6 | class PListSerializer(AbstractSerializer): |
||
7 | """ |
||
8 | This class describes a p list serializer. |
||
9 | https://docs.python.org/3/library/plistlib.html |
||
10 | """ |
||
11 | |||
12 | def __init__(self): |
||
13 | super().__init__( |
||
14 | extensions=[ |
||
15 | "plist", |
||
16 | ], |
||
17 | ) |
||
18 | |||
19 | def decode(self, s, **kwargs): |
||
20 | kwargs.setdefault("fmt", plistlib.FMT_XML) |
||
21 | encoding = kwargs.pop("encoding", "utf-8") |
||
22 | return plistlib.loads(s.encode(encoding), **kwargs) |
||
23 | |||
24 | def encode(self, d, **kwargs): |
||
25 | encoding = kwargs.pop("encoding", "utf-8") |
||
26 | return plistlib.dumps(d, **kwargs).decode(encoding) |
||
27 |