Correct handling of boolean selections
authorJeremy Stanley <fungi@yuggoth.org>
Wed, 10 Nov 2021 18:38:34 +0000 (18:38 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Wed, 10 Nov 2021 18:59:18 +0000 (18:59 +0000)
commitcbdccf95dcdbd7ee1254b1db3b8726b13c2a6548
tree374c97e46bcb4a78cf4bc62fcb51e13cae0e931b
parentd556621feae79351ec51a9c6d95e076f788bf11a
Correct handling of boolean selections

The selections proxy class, which mashes together command-line
arguments and configuration options, contained a longstanding and
fatal flaw with its handling of boolean values. In particular,
falsey values were consistently treated as truthy due to naively
recasting str to bool (which will always yield True unless empty).
This went unnoticed for so long because the majority of these
settings default to False, meaning the only reason most users had to
set them was to override them to True.

Many thanks to Jordan Russell for bringing this bug to my attention,
and for supplying an initial patch on which this fix is heavily
based.

Co-Authored-By: Jordan Russell
weather.py