Skip to content

Commit 5839618

Browse files
committed
warn if using non-integers on integer slider
1 parent a73104d commit 5839618

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

Readme.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ game specific things:
2222
### v1.10
2323
- Moved a few warnings to go through Python's system, so they get attributed to the right place.
2424

25+
- Added a warning for initializing a non-integer slider option with `is_integer=True` (the default).
26+
2527
- Added support for BL1.
2628

2729
### v1.9

options.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,17 @@ def __post_init__(self) -> None:
225225
if self.step > (self.max_value - self.min_value):
226226
raise ValueError("Can't give slider option a step larger than its allowed range")
227227

228+
# This isn't as serious, but still show a warning
229+
if self.is_integer and any(
230+
x != int(x) for x in (self.value, self.min_value, self.max_value, self.step)
231+
):
232+
warnings.warn(
233+
"Spinner has non-integer fields despite is_integer being True. This may cause"
234+
" unexpected rounding.",
235+
# +1 to skip the generated dataclass `__init__` too
236+
stacklevel=3,
237+
)
238+
228239
def _from_json(self, value: JSON) -> None:
229240
try:
230241
self.value = float(value) # type: ignore

0 commit comments

Comments
 (0)