Passed
Push — master ( ed280a...13e7ac )
by Dave
01:13
created

domain.minerstatistics.MinerStatistics.__init__()   A

Complexity

Conditions 1

Size

Total Lines 24
Code Lines 24

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 24
nop 18
dl 0
loc 24
rs 9.304
c 0
b 0
f 0

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
2
class MinerStatistics(object):
3
    '''Statistics for a miner
4
    temperature and hash
5
    '''
6
    def __init__(self, miner, when=None, minercount=0, currenthash=0,
7
                 controllertemp=0,
8
                 tempboard1=0, tempboard2=0, tempboard3=0,
9
                 elapsed=0,
10
                 fan1='', fan2='', fan3='',
11
                 boardstatus1='', boardstatus2='', boardstatus3='',
12
                 frequency='', rawstats=None):
13
        self.miner = miner
14
        self.when = when
15
        self.minercount = minercount
16
        self.currenthash = currenthash
17
        self.controllertemp = controllertemp
18
        self.tempboard1 = tempboard1
19
        self.tempboard2 = tempboard2
20
        self.tempboard3 = tempboard3
21
        self.elapsed = elapsed
22
        self.fan1 = fan1
23
        self.fan2 = fan2
24
        self.fan3 = fan3
25
        self.boardstatus1 = boardstatus1
26
        self.boardstatus2 = boardstatus2
27
        self.boardstatus3 = boardstatus3
28
        self.frequency = frequency
29
        self.rawstats = rawstats
30
31
    def tempboardmax(self):
32
        return max(self.tempboard1, self.tempboard2, self.tempboard3)
33
34
    def format_elapsed(self):
35
        seconds = self.elapsed
36
        numdays = seconds // 86400
37
        numhours = (seconds % 86400) // 3600
38
        numminutes = ((seconds % 86400) % 3600) // 60
39
        numseconds = ((seconds % 86400) % 3600) % 60
40
        return '{0}:{1}:{2}:{3}'.format(numdays, numhours, numminutes, numseconds)
41
42
    def stats_summary(self):
43
        return '{0} {1}/{2} {3}'.format(self.currenthash, self.controllertemp, self.tempboardmax(), self.format_elapsed())
44
45