Passed
Push — 2.x ( 0ba30f...7ab1ba )
by Jordi
08:49
created

senaite.core.browser.widgets.analysisprofileswidget.AnalysisProfilesWidget.folderitem()   C

Complexity

Conditions 10

Size

Total Lines 71
Code Lines 45

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 45
dl 0
loc 71
rs 5.9999
c 0
b 0
f 0
cc 10
nop 4

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 senaite.core.browser.widgets.analysisprofileswidget.AnalysisProfilesWidget.folderitem() 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
# -*- coding: utf-8 -*-
2
3
from zope import deprecation
4
5
# BBB
6
from .analysisprofile_services_widget import AnalysisProfileServicesWidget
7
8
9
class AnalysisProfilesWidget(AnalysisProfileServicesWidget):
10
    pass
11
12
13
deprecation.deprecated("AnalysisProfilesWidget",
14
                       "Moved to senaite.core.browser.widgets.analysisprofile_services_widget.AnalysisProfileServicesWidget")  # noqa E501
15