benedict.serializers.toml   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 21
dl 0
loc 36
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A TOMLSerializer.encode() 0 3 1
A TOMLSerializer.decode() 0 6 2
A TOMLSerializer.__init__() 0 4 1
1
import toml
2
3
try:
4
    # python >= 3.11
5
    import tomllib
6
7
    tomllib_available = True
8
except ImportError:
9
    tomllib_available = False
10
11
from benedict.serializers.abstract import AbstractSerializer
12
13
14
class TOMLSerializer(AbstractSerializer):
15
    """
16
    This class describes a toml serializer.
17
    """
18
19
    def __init__(self):
20
        super().__init__(
21
            extensions=[
22
                "toml",
23
            ],
24
        )
25
26
    def decode(self, s, **kwargs):
27
        if tomllib_available:
28
            data = tomllib.loads(s, **kwargs)
29
        else:
30
            data = toml.loads(s, **kwargs)
31
        return data
32
33
    def encode(self, d, **kwargs):
34
        data = toml.dumps(dict(d), **kwargs)
35
        return data
36