benedict.serializers.plist   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 15
dl 0
loc 27
rs 10
c 0
b 0
f 0

3 Methods

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