Events.to_ini()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 3
Ratio 100 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 3
loc 3
ccs 0
cts 0
cp 0
rs 10
cc 1
crap 2
1
# coding: utf-8
2
3 1
import zope.interface
4
5 1
from schematics.models import Model
6 1
from schematics.types import StringType, IntType, BooleanType
7 1
from schematics.types.compound import ModelType
8
9 1
from .interfaces import INISerializable, DefaultProvider
10 1
from .helpers import field_from_ini, field_to_ini
11
12
13 1 View Code Duplication
@zope.interface.implementer(INISerializable)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
14 1
@zope.interface.implementer(DefaultProvider)
15 1
class Logging(Model):
16 1
    file_name = StringType(
17
        default="eventlog.lst",
18
        min_length=1,
19
        required=True,
20
    )
21 1
    keep_file = BooleanType(
22
        default=True,
23
        required=True,
24
    )
25 1
    log_buildings = BooleanType(
26
        default=False,
27
        required=True,
28
    )
29
30 1
    @classmethod
31
    def from_ini(cls, ini):
32
        return cls({
33
            'file_name': field_from_ini(
34
                cls.file_name, ini,
35
                'game', 'eventlog',
36
            ),
37
            'keep_file': field_from_ini(
38
                cls.keep_file, ini,
39
                'game', 'eventlogkeep',
40
            ),
41
            'log_buildings': field_from_ini(
42
                cls.log_buildings, ini,
43
                'game', 'eventlogHouse',
44
            ),
45
        })
46
47 1
    def to_ini(self, ini):
48
        field_to_ini(self.file_name, ini, 'game', 'eventlog')
49
        field_to_ini(self.keep_file, ini, 'game', 'eventlogkeep')
50
        field_to_ini(self.log_buildings, ini, 'game', 'eventlogHouse')
51
52
    @classmethod
53
    def default(cls):
54
        return cls({
55 1
            field_name: field.default
56 1
            for field_name, field in cls.fields.items()
57 1
        })
58 1
59
60 View Code Duplication
@zope.interface.implementer(INISerializable)
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
61
@zope.interface.implementer(DefaultProvider)
62
class Events(Model):
63
    chat_level = IntType(
64 1
        min_value=0,
65
        max_value=3,
66
        default=3,
67
        required=True,
68
    )
69 1
    logging = ModelType(
70
        model_spec=Logging,
71
        required=True,
72
    )
73
74
    @classmethod
75
    def from_ini(cls, ini):
76
        return cls({
77
            'chat_level': field_from_ini(
78
                cls.chat_level, ini,
79 1
                'chat', 'autoLogDetail',
80
            ),
81
            'logging': Logging.from_ini(ini),
82
        })
83
84
    def to_ini(self, ini):
85
        field_to_ini(self.chat_level, ini, 'chat', 'autoLogDetail')
86
        self.logging.to_ini(ini)
87
88
    @classmethod
89
    def default(cls):
90
        return cls({
91
            'chat_level': cls.chat_level.default,
92
            'logging': Logging.default(),
93
        })
94