Skip to content

Commit 37f0ec3

Browse files
committed
refactor: code improvements related to min/man calculations
Refactored in "AnalogGaugeWidget" class a few conditional statements using Python's built-in "min()" and "max()" functions with clear comments. The new code is more Pythonic & readable. 1. "rescale_method()" method. 2. "update_value()" method - implemented a classic value "clamping" operation (constraining a value to stay within a min/max range). This is a well-known Python idiom for clamping values. 3. "set_MinValue()" & "set_MinValue()" methods. 4. "set_scala_main_count()" method. Co-authored-by: Cursor AI Signed-off-by: Pavel Bar <pbar@redhat.com>
1 parent c17e6a7 commit 37f0ec3

File tree

1 file changed

+13
-25
lines changed

1 file changed

+13
-25
lines changed

gauge.py

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,7 @@ def __init__(self, parent=None):
112112
self.rescale_method()
113113

114114
def rescale_method(self):
115-
if self.width() <= self.height():
116-
self.widget_diameter = self.width()
117-
else:
118-
self.widget_diameter = self.height()
115+
self.widget_diameter = min(self.width(), self.height())
119116

120117
ypos = - int(self.widget_diameter / 2 * self.needle_scale_factor)
121118
self.change_value_needle_style([QPolygon([
@@ -148,12 +145,8 @@ def change_value_needle_style(self, design):
148145
self.update()
149146

150147
def update_value(self, value):
151-
if value <= self.value_min:
152-
self.value = self.value_min
153-
elif value >= self.value_max:
154-
self.value = self.value_max
155-
else:
156-
self.value = value
148+
# Clamp value between min and max limits
149+
self.value = max(self.value_min, min(value, self.value_max))
157150
self.valueChanged.emit(int(value))
158151

159152
if not self.use_timer_event:
@@ -266,31 +259,26 @@ def set_enable_fine_scaled_marker(self, enable = True):
266259
self.update()
267260

268261
def set_scala_main_count(self, count):
269-
if count < 1:
270-
count = 1
271-
self.scala_main_count = count
262+
# Ensure count is at least 1
263+
self.scala_main_count = max(count, 1)
272264

273265
if not self.use_timer_event:
274266
self.update()
275267

276268
def set_MinValue(self, new_value_min):
277-
if self.value < new_value_min:
278-
self.value = new_value_min
279-
if new_value_min >= self.value_max:
280-
self.value_min = self.value_max - 1
281-
else:
282-
self.value_min = new_value_min
269+
# Ensure value is not below the new minimum
270+
self.value = max(self.value, new_value_min)
271+
# Update the minimum value, but ensure it stays below the current maximum
272+
self.value_min = min(new_value_min, self.value_max - 1)
283273

284274
if not self.use_timer_event:
285275
self.update()
286276

287277
def set_MaxValue(self, new_value_max):
288-
if self.value > new_value_max:
289-
self.value = new_value_max
290-
if new_value_max <= self.value_min:
291-
self.value_max = self.value_min + 1
292-
else:
293-
self.value_max = new_value_max
278+
# Ensure value doesn't exceed the new maximum
279+
self.value = min(self.value, new_value_max)
280+
# Update the maximum value, but ensure it stays above the current minimum
281+
self.value_max = max(new_value_max, self.value_min + 1)
294282

295283
if not self.use_timer_event:
296284
self.update()

0 commit comments

Comments
 (0)