@jcline is this what you had in mind, in your comments on #10? Sorry it took me so long to get back to this...
Personally I am neutral on this change. Having exceptions instead of the ADT-style values looks more Pythonic, and it makes the Rule.check() method feel cleaner -- raise if something is wrong else return.
But because we need to also count satisfied rules, not just unsatisfied ones, we end up dealing in lists where each element is either None or an exception instance:
[None, RuleNotSatisfied(...), None, ...]
which feels very strange to me.
Also the .is_satisfied check is replaced with an is None check which actually feels more likely to cause confusion.
@jcline is this what you had in mind, in your comments on #10? Sorry it took me so long to get back to this...
Personally I am neutral on this change. Having exceptions instead of the ADT-style values looks more Pythonic, and it makes the Rule.check() method feel cleaner -- raise if something is wrong else return.
But because we need to also count satisfied rules, not just unsatisfied ones, we end up dealing in lists where each element is either
Noneor an exception instance:which feels very strange to me.
Also the
.is_satisfiedcheck is replaced with anis Nonecheck which actually feels more likely to cause confusion.