HUD.default()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 5

Duplication

Lines 5
Ratio 100 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 5
loc 5
ccs 0
cts 0
cp 0
rs 9.4285
cc 2
crap 6
1
# coding: utf-8
2
3 1
import zope.interface
4
5 1
from schematics.models import Model
6 1
from schematics.types import BooleanType
7
8 1
from .interfaces import INISerializable, DefaultProvider
9 1
from .helpers import field_from_ini, field_to_ini
10
11
12 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...
13 1
@zope.interface.implementer(DefaultProvider)
14 1
class HUD(Model):
15 1
    show_mission_info = BooleanType(
16
        default=True,
17
        required=True,
18
    )
19 1
    show_kill_info = BooleanType(
20
        default=True,
21
        required=True,
22
    )
23 1
    show_at_bottom = BooleanType(
24
        default=False,
25
        required=True,
26
    )
27
28 1
    @classmethod
29
    def from_ini(cls, ini):
30
        return cls({
31
            'show_mission_info': not field_from_ini(
32
                cls.show_mission_info, ini,
33
                'game', 'NoMissionInfoHud',
34
                False,
35
            ),
36
            'show_kill_info': not field_from_ini(
37
                cls.show_kill_info, ini,
38
                'game', 'noKillInfoHud',
39
                False,
40
            ),
41
            'show_at_bottom': field_from_ini(
42
                cls.show_at_bottom, ini,
43
                'game', 'lowInfoHud',
44
            ),
45 1
        })
46
47
    def to_ini(self, ini):
48
        field_to_ini(not self.show_mission_info, ini, 'game', 'NoMissionInfoHud')
49
        field_to_ini(not self.show_kill_info, ini, 'game', 'noKillInfoHud')
50
        field_to_ini(self.show_at_bottom, ini, 'game', 'lowInfoHud')
51
52
    @classmethod
53
    def default(cls):
54
        return cls({
55
            field_name: field.default
56
            for field_name, field in cls.fields.items()
57
        })
58