GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

_create_boom_parameter()   F
last analyzed

Complexity

Conditions 28

Size

Total Lines 108
Code Lines 56

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 41
CRAP Score 29.6326

Importance

Changes 0
Metric Value
cc 28
eloc 56
nop 1
dl 0
loc 108
ccs 41
cts 47
cp 0.8723
crap 29.6326
rs 0
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

Complexity

Complex classes like kerapu.boom.boom_parameter._create_boom_parameter() often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
from kerapu.boom.boom_parameter.BehandelKlasse import BehandelKlasse
2
from kerapu.boom.boom_parameter.BoomParameter import BoomParameter
3
from kerapu.boom.boom_parameter.DiagnoseCluster import DiagnoseCluster
4 1
from kerapu.boom.boom_parameter.DiagnoseCode import DiagnoseCode
5 1
from kerapu.boom.boom_parameter.Geslacht import Geslacht
6 1
from kerapu.boom.boom_parameter.Leeftijd import Leeftijd
7 1
from kerapu.boom.boom_parameter.SpecialismeCluster import SpecialismeCluster
8 1
from kerapu.boom.boom_parameter.SpecialismeCode import SpecialismeCode
9 1
from kerapu.boom.boom_parameter.ZorgActiviteitCluster import ZorgActiviteitCluster
10 1
from kerapu.boom.boom_parameter.ZorgActiviteitCode import ZorgActiviteitCode
11 1
from kerapu.boom.boom_parameter.ZorgInstellingCode import ZorgInstellingCode
12 1
from kerapu.boom.boom_parameter.ZorgTypeCode import ZorgTypeCode
13 1
from kerapu.boom.boom_parameter.ZorgVraagCluster import ZorgVraagCluster
14 1
from kerapu.boom.boom_parameter.ZorgVraagCode import ZorgVraagCode
15 1
16 1
# ----------------------------------------------------------------------------------------------------------------------
17 1
_boom_parameters = {}
18
"""
19
Poel met alle boomparameters
20 1
"""
21
22
23
# ----------------------------------------------------------------------------------------------------------------------
24
def create_boom_parameter(boom_parameter_nummer: int) -> BoomParameter:
25
    """
26
    Een fabriek met hergebruik voor het maken van boomparameters. Het aanroepen van deze functie met hetzelfde
27 1
    boomparameternummer zal tekens het zelfde object opleveren.
28
29
    :param int boom_parameter_nummer: Het nummer van de boomparameter.
30
31
    :rtype: BoomParameter
32
    """
33
    if boom_parameter_nummer in _boom_parameters:
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable _boom_parameters does not seem to be defined.
Loading history...
34
        return _boom_parameters[boom_parameter_nummer]
35
36 1
    _boom_parameters[boom_parameter_nummer] = _create_boom_parameter(boom_parameter_nummer)
37 1
38
    return _boom_parameters[boom_parameter_nummer]
39 1
40
41 1
# ----------------------------------------------------------------------------------------------------------------------
42
def _create_boom_parameter(boom_parameter_nummer: int) -> BoomParameter:
43
    """
44
    Een fabriek voor het maken van boomparameters.
45 1
46
    :param int boom_parameter_nummer: Het nummer van de boomparameter.
47
48
    :rtype: BoomParameter
49
    """
50
    if boom_parameter_nummer == 100:
51
        return Leeftijd()
52
53 1
    if boom_parameter_nummer == 101:
54 1
        return Geslacht()
55
56 1
    if boom_parameter_nummer == 110:
57 1
        return ZorgInstellingCode()
58
59 1
    if boom_parameter_nummer == 111:
60 1
        # Zorginstellingscluster 1
61
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
62 1
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
63
64
    if boom_parameter_nummer == 112:
65
        # Zorginstellingscluster 2
66
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
67 1
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
68
69
    if boom_parameter_nummer == 200:
70
        return SpecialismeCode()
71
72 1
    if boom_parameter_nummer == 201:
73 1
        return SpecialismeCluster(1)
74
75 1
    if boom_parameter_nummer == 202:
76 1
        return SpecialismeCluster(2)
77
78 1
    if boom_parameter_nummer == 210:
79
        return ZorgTypeCode()
80
81 1
    if boom_parameter_nummer == 211:
82 1
        # Zorgtypecluster 1
83
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
84 1
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
85
86
    if boom_parameter_nummer == 212:
87
        # Zorgtypecluster 2
88
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
89 1
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
90
91
    if boom_parameter_nummer == 220:
92
        return ZorgVraagCode()
93
94 1
    if boom_parameter_nummer == 221:
95 1
        return ZorgVraagCluster(1)
96
97 1
    if boom_parameter_nummer == 222:
98 1
        return ZorgVraagCluster(2)
99
100 1
    if boom_parameter_nummer == 230:
101
        return DiagnoseCode()
102
103 1
    if boom_parameter_nummer == 231:
104 1
        # ICD-diagnosecode
105
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
106 1
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
107
108
    if 232 <= boom_parameter_nummer <= 237:
109
        return DiagnoseCluster(boom_parameter_nummer - 231)
110
111 1
    if boom_parameter_nummer == 241:
112 1
        # Begindatum subtraject
113
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
114 1
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
115
116
    if boom_parameter_nummer == 300:
117
        return ZorgActiviteitCode(0)
118
119 1
    if 301 <= boom_parameter_nummer <= 310:
120 1
        return ZorgActiviteitCluster(boom_parameter_nummer - 300, 0)
121
122 1
    if boom_parameter_nummer == 351:
123 1
        return BehandelKlasse(0)
124
125 1
    if boom_parameter_nummer == 400:
126 1
        return ZorgActiviteitCode(1)
127
128 1
    if 401 <= boom_parameter_nummer <= 410:
129
        return ZorgActiviteitCluster(boom_parameter_nummer - 400, 1)
130
131 1
    if boom_parameter_nummer == 451:
132
        # Behandelklasse – som van (aantal * weegfactor 1)
133
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
134 1
        # return BehandelKlasse(1)
135
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
136
137
    if boom_parameter_nummer == 500:
138
        return ZorgActiviteitCode(2)
139
140 1
    if 501 <= boom_parameter_nummer <= 510:
141
        return ZorgActiviteitCluster(boom_parameter_nummer - 500, 2)
142
143 1
    if boom_parameter_nummer == 551:
144 1
        # Behandelklasse – som van (aantal * weegfactor 2)
145
        # Deze boomparameter wordt thans niet gebruikt door de grouper.
146
        # return BehandelKlasse(1)
147
        raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
148
149
    raise RuntimeError("Onbekende boomparameter '%s'." % boom_parameter_nummer)
150
151
# ----------------------------------------------------------------------------------------------------------------------
152