Completed
Push — master ( 9d3bc0...b059cb )
by Oleksandr
01:07
created

HUD   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 100 %

Test Coverage

Coverage 80%

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 3
c 3
b 0
f 1
dl 38
loc 38
ccs 8
cts 10
cp 0.8
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A from_ini() 14 14 1
A default() 5 5 2

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

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
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
    no_mission_info = BooleanType(
16
        default=False,
17
        required=True,
18
    )
19 1
    no_kill_info = BooleanType(
20
        default=False,
21
        required=True,
22
    )
23 1
    display_at_bottom = BooleanType(
24
        default=False,
25
        required=True,
26
    )
27
28 1
    @classmethod
29
    def from_ini(cls, ini):
30
        return cls({
31
            'no_mission_info': field_from_ini(
32
                cls.no_mission_info, ini,
33
                'game', 'NoMissionInfoHud',
34
            ),
35
            'no_kill_info': field_from_ini(
36
                cls.no_kill_info, ini,
37
                'game', 'noKillInfoHud',
38
            ),
39
            'display_at_bottom': field_from_ini(
40
                cls.display_at_bottom, ini,
41
                'game', 'lowInfoHud',
42
            ),
43
        })
44
45 1
    @classmethod
46
    def default(cls):
47
        return cls({
48
            field_name: field.default
49
            for field_name, field in cls.fields.items()
50
        })
51