Raise error not string (#7945) · maxleaf/Python@daa1c75 · GitHub
Skip to content

Commit daa1c75

Browse files
CaedenPHpre-commit-ci[bot]cclauss
authored
Raise error not string (TheAlgorithms#7945)
* ci: Add `B023` to `.flake8` ignores * refactor: Return `bool`/raise Exception * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * revert: Remove previous branch commit * Update data_structures/binary_tree/segment_tree_other.py Co-authored-by: Christian Clauss <cclauss@me.com> * feat: Apply `__repr__` changes * chore: Fix failing tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update data_structures/binary_tree/segment_tree_other.py Co-authored-by: Christian Clauss <cclauss@me.com> * test: Fix doctests * random.choice(population_score[:N_SELECTED])[0] * Update basic_string.py Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com>
1 parent 5170853 commit daa1c75

14 files changed

Lines changed: 123 additions & 120 deletions

File tree

boolean_algebra/quine_mc_cluskey.py

Lines changed: 6 additions & 5 deletions

ciphers/shuffled_shift_cipher.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def __str__(self) -> str:
4242
"""
4343
:return: passcode of the cipher object
4444
"""
45-
return "Passcode is: " + "".join(self.__passcode)
45+
return "".join(self.__passcode)
4646

4747
def __neg_pos(self, iterlist: list[int]) -> list[int]:
4848
"""

computer_vision/harris_corner.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ def __init__(self, k: float, window_size: int):
2222
raise ValueError("invalid k value")
2323

2424
def __str__(self) -> str:
25-
26-
return f"Harris Corner detection with k : {self.k}"
25+
return str(self.k)
2726

2827
def detect(self, img_path: str) -> tuple[cv2.Mat, list[list[int]]]:
2928

data_structures/binary_tree/segment_tree_other.py

Lines changed: 58 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -16,40 +16,36 @@ def __init__(self, start, end, val, left=None, right=None):
1616
self.left = left
1717
self.right = right
1818

19-
def __str__(self):
20-
return f"val: {self.val}, start: {self.start}, end: {self.end}"
19+
def __repr__(self):
20+
return f"SegmentTreeNode(start={self.start}, end={self.end}, val={self.val})"
2121

2222

2323
class SegmentTree:
2424
"""
2525
>>> import operator
2626
>>> num_arr = SegmentTree([2, 1, 5, 3, 4], operator.add)
27-
>>> for node in num_arr.traverse():
28-
... print(node)
29-
...
30-
val: 15, start: 0, end: 4
31-
val: 8, start: 0, end: 2
32-
val: 7, start: 3, end: 4
33-
val: 3, start: 0, end: 1
34-
val: 5, start: 2, end: 2
35-
val: 3, start: 3, end: 3
36-
val: 4, start: 4, end: 4
37-
val: 2, start: 0, end: 0
38-
val: 1, start: 1, end: 1
27+
>>> tuple(num_arr.traverse()) # doctest: +NORMALIZE_WHITESPACE
28+
(SegmentTreeNode(start=0, end=4, val=15),
29+
SegmentTreeNode(start=0, end=2, val=8),
30+
SegmentTreeNode(start=3, end=4, val=7),
31+
SegmentTreeNode(start=0, end=1, val=3),
32+
SegmentTreeNode(start=2, end=2, val=5),
33+
SegmentTreeNode(start=3, end=3, val=3),
34+
SegmentTreeNode(start=4, end=4, val=4),
35+
SegmentTreeNode(start=0, end=0, val=2),
36+
SegmentTreeNode(start=1, end=1, val=1))
3937
>>>
4038
>>> num_arr.update(1, 5)
41-
>>> for node in num_arr.traverse():
42-
... print(node)
43-
...
44-
val: 19, start: 0, end: 4
45-
val: 12, start: 0, end: 2
46-
val: 7, start: 3, end: 4
47-
val: 7, start: 0, end: 1
48-
val: 5, start: 2, end: 2
49-
val: 3, start: 3, end: 3
50-
val: 4, start: 4, end: 4
51-
val: 2, start: 0, end: 0
52-
val: 5, start: 1, end: 1
39+
>>> tuple(num_arr.traverse()) # doctest: +NORMALIZE_WHITESPACE
40+
(SegmentTreeNode(start=0, end=4, val=19),
41+
SegmentTreeNode(start=0, end=2, val=12),
42+
SegmentTreeNode(start=3, end=4, val=7),
43+
SegmentTreeNode(start=0, end=1, val=7),
44+
SegmentTreeNode(start=2, end=2, val=5),
45+
SegmentTreeNode(start=3, end=3, val=3),
46+
SegmentTreeNode(start=4, end=4, val=4),
47+
SegmentTreeNode(start=0, end=0, val=2),
48+
SegmentTreeNode(start=1, end=1, val=5))
5349
>>>
5450
>>> num_arr.query_range(3, 4)
5551
7
@@ -62,29 +58,29 @@ class SegmentTree:
6258
>>> for node in max_arr.traverse():
6359
... print(node)
6460
...
65-
val: 5, start: 0, end: 4
66-
val: 5, start: 0, end: 2
67-
val: 4, start: 3, end: 4
68-
val: 2, start: 0, end: 1
69-
val: 5, start: 2, end: 2
70-
val: 3, start: 3, end: 3
71-
val: 4, start: 4, end: 4
72-
val: 2, start: 0, end: 0
73-
val: 1, start: 1, end: 1
61+
SegmentTreeNode(start=0, end=4, val=5)
62+
SegmentTreeNode(start=0, end=2, val=5)
63+
SegmentTreeNode(start=3, end=4, val=4)
64+
SegmentTreeNode(start=0, end=1, val=2)
65+
SegmentTreeNode(start=2, end=2, val=5)
66+
SegmentTreeNode(start=3, end=3, val=3)
67+
SegmentTreeNode(start=4, end=4, val=4)
68+
SegmentTreeNode(start=0, end=0, val=2)
69+
SegmentTreeNode(start=1, end=1, val=1)
7470
>>>
7571
>>> max_arr.update(1, 5)
7672
>>> for node in max_arr.traverse():
7773
... print(node)
7874
...
79-
val: 5, start: 0, end: 4
80-
val: 5, start: 0, end: 2
81-
val: 4, start: 3, end: 4
82-
val: 5, start: 0, end: 1
83-
val: 5, start: 2, end: 2
84-
val: 3, start: 3, end: 3
85-
val: 4, start: 4, end: 4
86-
val: 2, start: 0, end: 0
87-
val: 5, start: 1, end: 1
75+
SegmentTreeNode(start=0, end=4, val=5)
76+
SegmentTreeNode(start=0, end=2, val=5)
77+
SegmentTreeNode(start=3, end=4, val=4)
78+
SegmentTreeNode(start=0, end=1, val=5)
79+
SegmentTreeNode(start=2, end=2, val=5)
80+
SegmentTreeNode(start=3, end=3, val=3)
81+
SegmentTreeNode(start=4, end=4, val=4)
82+
SegmentTreeNode(start=0, end=0, val=2)
83+
SegmentTreeNode(start=1, end=1, val=5)
8884
>>>
8985
>>> max_arr.query_range(3, 4)
9086
4
@@ -97,29 +93,29 @@ class SegmentTree:
9793
>>> for node in min_arr.traverse():
9894
... print(node)
9995
...
100-
val: 1, start: 0, end: 4
101-
val: 1, start: 0, end: 2
102-
val: 3, start: 3, end: 4
103-
val: 1, start: 0, end: 1
104-
val: 5, start: 2, end: 2
105-
val: 3, start: 3, end: 3
106-
val: 4, start: 4, end: 4
107-
val: 2, start: 0, end: 0
108-
val: 1, start: 1, end: 1
96+
SegmentTreeNode(start=0, end=4, val=1)
97+
SegmentTreeNode(start=0, end=2, val=1)
98+
SegmentTreeNode(start=3, end=4, val=3)
99+
SegmentTreeNode(start=0, end=1, val=1)
100+
SegmentTreeNode(start=2, end=2, val=5)
101+
SegmentTreeNode(start=3, end=3, val=3)
102+
SegmentTreeNode(start=4, end=4, val=4)
103+
SegmentTreeNode(start=0, end=0, val=2)
104+
SegmentTreeNode(start=1, end=1, val=1)
109105
>>>
110106
>>> min_arr.update(1, 5)
111107
>>> for node in min_arr.traverse():
112108
... print(node)
113109
...
114-
val: 2, start: 0, end: 4
115-
val: 2, start: 0, end: 2
116-
val: 3, start: 3, end: 4
117-
val: 2, start: 0, end: 1
118-
val: 5, start: 2, end: 2
119-
val: 3, start: 3, end: 3
120-
val: 4, start: 4, end: 4
121-
val: 2, start: 0, end: 0
122-
val: 5, start: 1, end: 1
110+
SegmentTreeNode(start=0, end=4, val=2)
111+
SegmentTreeNode(start=0, end=2, val=2)
112+
SegmentTreeNode(start=3, end=4, val=3)
113+
SegmentTreeNode(start=0, end=1, val=2)
114+
SegmentTreeNode(start=2, end=2, val=5)
115+
SegmentTreeNode(start=3, end=3, val=3)
116+
SegmentTreeNode(start=4, end=4, val=4)
117+
SegmentTreeNode(start=0, end=0, val=2)
118+
SegmentTreeNode(start=1, end=1, val=5)
123119
>>>
124120
>>> min_arr.query_range(3, 4)
125121
3
@@ -128,7 +124,6 @@ class SegmentTree:
128124
>>> min_arr.query_range(1, 3)
129125
3
130126
>>>
131-
132127
"""
133128

134129
def __init__(self, collection: Sequence, function):

data_structures/binary_tree/wavelet_tree.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ def __repr__(self) -> str:
2424
"""
2525
>>> node = Node(length=27)
2626
>>> repr(node)
27-
'min_value: -1, max_value: -1'
27+
'Node(min_value=-1 max_value=-1)'
2828
>>> repr(node) == str(node)
2929
True
3030
"""
31-
return f"min_value: {self.minn}, max_value: {self.maxx}"
31+
return f"Node(min_value={self.minn} max_value={self.maxx})"
3232

3333

3434
def build_tree(arr: list[int]) -> Node | None:
@@ -37,7 +37,7 @@ def build_tree(arr: list[int]) -> Node | None:
3737
of the constructed tree
3838
3939
>>> build_tree(test_array)
40-
min_value: 0, max_value: 9
40+
Node(min_value=0 max_value=9)
4141
"""
4242
root = Node(len(arr))
4343
root.minn, root.maxx = min(arr), max(arr)

data_structures/linked_list/doubly_linked_list.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ def delete(self, data) -> str:
159159
if current.next:
160160
current = current.next
161161
else: # We have reached the end an no value matches
162-
return "No data matching given value"
162+
raise ValueError("No data matching given value")
163163

164164
if current == self.head:
165165
self.delete_head()

data_structures/queue/double_ended_queue.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ def __repr__(self) -> str:
425425
values_list.append(aux.val)
426426
aux = aux.next_node
427427

428-
return "[" + ", ".join(repr(val) for val in values_list) + "]"
428+
return f"[{', '.join(repr(val) for val in values_list)}]"
429429

430430

431431
if __name__ == "__main__":

graphs/breadth_first_search_shortest_path.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ def shortest_path(self, target_vertex: str) -> str:
5858
5959
Case 1 - No path is found.
6060
>>> g.shortest_path("Foo")
61-
'No path from vertex:G to vertex:Foo'
61+
Traceback (most recent call last):
62+
...
63+
ValueError: No path from vertex: G to vertex: Foo
6264
6365
Case 2 - The path is found.
6466
>>> g.shortest_path("D")
@@ -71,7 +73,9 @@ def shortest_path(self, target_vertex: str) -> str:
7173

7274
target_vertex_parent = self.parent.get(target_vertex)
7375
if target_vertex_parent is None:
74-
return f"No path from vertex:{self.source_vertex} to vertex:{target_vertex}"
76+
raise ValueError(
77+
f"No path from vertex: {self.source_vertex} to vertex: {target_vertex}"
78+
)
7579

7680
return self.shortest_path(target_vertex_parent) + f"->{target_vertex}"
7781

graphs/page_rank.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def add_outbound(self, node):
2727
self.outbound.append(node)
2828

2929
def __repr__(self):
30-
return f"Node {self.name}: Inbound: {self.inbound} ; Outbound: {self.outbound}"
30+
return f"<node={self.name} inbound={self.inbound} outbound={self.outbound}>"
3131

3232

3333
def page_rank(nodes, limit=3, d=0.85):

linear_algebra/src/polynom_for_points.py

Lines changed: 9 additions & 5 deletions

0 commit comments

Comments
 (0)