Completed
Push — master ( be0bb5...16e7a2 )
by Matthew
01:20
created

IdGenerator   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 20
rs 10
c 1
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __init__() 0 4 1
A gen_id() 0 10 2
A del_id() 0 3 1
1
2
def set_uid_list(uidList, uid, data):
3
    try:
4
        uidList[uid] = data
5
    except IndexError:
6
        uidList.append(data)
7
8
9
class IdGenerator(object):
10
    def __init__(self):
11
        self.reusableIDs = []
12
        self.allocatedIds = 0
13
        self.idIncrement = 0
14
15
    def gen_id(self):
16
17
        self.allocatedIds += 1
18
        if self.reusableIDs:
19
            uid = self.reusableIDs.pop(0)
20
        else:
21
            self.idIncrement += 1
22
            uid = self.idIncrement
23
24
        return uid
25
26
    def del_id(self, uid):
27
        self.allocatedIds -= 1
28
        self.reusableIDs.append(uid)
29
30