ServerConfig.to_ini()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 2.5

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
ccs 1
cts 2
cp 0.5
rs 10
cc 2
crap 2.5
1
# coding: utf-8
2
3 1
import zope.interface
4
5 1
from schematics.models import Model
6 1
from schematics.types.compound import ModelType
7
8 1
from .about import About
9 1
from .anticheat import Anticheat
10 1
from .connection import Connection
11 1
from .console import Console
12 1
from .device_link import DeviceLink
13 1
from .events import Events
14 1
from .hud import HUD
15 1
from .interfaces import INISerializable, DefaultProvider
16 1
from .misc import Miscellaneous
17 1
from .morse import Morse
18 1
from .refly import Refly
19 1
from .statistics import Statistics
20
21
22 1
@zope.interface.implementer(INISerializable)
23 1
@zope.interface.implementer(DefaultProvider)
24 1
class ServerConfig(Model):
25 1
    about = ModelType(
26
        model_spec=About,
27
        required=True,
28
    )
29 1
    anticheat = ModelType(
30
        model_spec=Anticheat,
31
        required=True,
32
    )
33 1
    connection = ModelType(
34
        model_spec=Connection,
35
        required=True,
36
    )
37 1
    console = ModelType(
38
        model_spec=Console,
39
        required=True,
40
    )
41 1
    device_link = ModelType(
42
        model_spec=DeviceLink,
43
        required=True,
44
    )
45 1
    events = ModelType(
46
        model_spec=Events,
47
        required=True,
48
    )
49 1
    hud = ModelType(
50
        model_spec=HUD,
51
        required=True,
52
    )
53 1
    morse = ModelType(
54
        model_spec=Morse,
55
        required=True,
56
    )
57 1
    refly = ModelType(
58
        model_spec=Refly,
59
        required=True,
60
    )
61 1
    statistics = ModelType(
62
        model_spec=Statistics,
63
        required=True,
64
    )
65 1
    misc = ModelType(
66
        model_spec=Miscellaneous,
67
        required=True,
68
    )
69
70 1
    @classmethod
71
    def from_ini(cls, ini):
72
        return cls({
73
            field_name: model_type.model_class.from_ini(ini)
74
            for field_name, model_type in cls.fields.items()
75
        })
76
77 1
    def to_ini(self, ini):
78
        for field_name in self.iter():
79
            self[field_name].to_ini(ini)
80
81
    @classmethod
82
    def default(cls):
83
        return cls({
84
            field_name: model_type.model_class.default()
85
            for field_name, model_type in cls.fields.items()
86
        })
87