Zero animation time for `SwitchRound` causes `ZeroDivisionError`
The-Compiler opened this issue · 5 comments
The docs claim that it's possible to set animation_time
to zero:
animation: Set
animation_time
to the duration (in seconds) it will take to transition the switch, set zero if you want it to snap into position immediately
However, the code doesn't actually handle that case, thus leading to a ZeroDivisionError
here:
Traceback:
Traceback (most recent call last):
[...]
File "adafruit_displayio_layout/widgets/switch_round.py", line 830, in value
File "adafruit_displayio_layout/widgets/switch_round.py", line 792, in selected
File "adafruit_displayio_layout/widgets/switch_round.py", line 767, in _animate_switch
Adding this a good first issue so maybe someone will pick it up for Hacktoberfest. The fix is to make sure that if the animation time is zero that the animation process is skipped. This should look something like a check to see if _animation_time
is zero, and if it is, calculate the final position, and avoid dividing by the animation time entirely.
I'll pick this up soon-ish if no one does soon!
Can you specify which files are involved?
I can work on this then.
@The-Debarghya See the file I linked in my issue description - that _animate_switch
method should be the only place needing a change. Often, changes will also require corresponding doc or tests changes. However, in this case, the docs are already correct, and there seem to be no existing tests (so I'm assuming you won't be expected to add a new one for this change).
Ok thanks, I'm trying to fix this.