-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.py
More file actions
113 lines (87 loc) · 2.84 KB
/
utils.py
File metadata and controls
113 lines (87 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import xml.etree.ElementTree as ET
encoding = 'ascii'
class GlobalNodePool:
def __init__(self):
self.node_pool: dict = {}
def addNode(self, node: ET.Element, index: int):
self.node_pool[index] = node
def getNodeIndexByRefName(self, name: str):
for index, node in self.node_pool.items():
refname = node.get('refname')
if refname == name:
return int(index)
return None
class Counter:
"""
A general purpose counter class. It can increment or decrement
the counter value by a set amount or by default amount set when
initializing the object.
"""
__value = 0
__default_incr_value = 1
__default_decr_value = 1
def __init__(self, init_value: int = 0, default_incr_value: int = 1, default_decr_value: int = 1):
self.__value = init_value
self.__default_incr_value = default_incr_value
self.__default_decr_value = default_decr_value
def __call__(self, *args, **kwargs) -> int:
return int(self.__value)
def __getitem__(self, item):
pass
def __str__(self):
return str(self.__value)
def __int__(self):
return self.__value
def __add__(self, other):
if isinstance(other, int):
return Counter(other + int(self.__value))
def __iadd__(self, other):
if isinstance(other, int):
self.__value += other
def increment(self, incr_value: int = None):
"""
Increments the counter by a set value or by a default value.
:param incr_value:
:return:
"""
if incr_value:
self.__value += incr_value
else:
self.__value += self.__default_incr_value
def decrement(self, decr_value: int = None):
"""
Decrements the counter by a set value or by a default value.
:param decr_value:
:return:
"""
if decr_value:
self.__value -= decr_value
else:
self.__value -= self.__default_decr_value
def set_value(self, value: int):
"""
Sets the counter value.
:param value:
:return:
"""
self.__value = value
def get_value(self) -> int:
"""
Gets the counter value.
:return:
"""
return self.__value
def set_default_incr_value(self, incr_value: int):
"""
Sets the default increment value.
:param incr_value:
:return:
"""
self.__default_incr_value = incr_value
def set_default_decr_value(self, decr_value: int):
"""
Sets the default decrement value.
:param decr_value:
:return:
"""
self.__default_decr_value = decr_value