We've just pushed a patch release for boolrule that correctly handles boolean literals (i.e. true
and false
) in expressions:
r = BoolRule('fixed is true')
print r.test({'fixed': True}) # true
This was always part of the spec for boolrule expressions, but was being parsed incorrectly. For the curious, we'd unintentionally used a feature of pyparsing that allows you to provide a name for a given parsed element, but the expression handling code was expecting both right and left hand values for an expression or subexpression to always be unnamed. Since we weren't using the name, we just dropped the call to setResultsName()
for the boolean element.
boolrule 0.2.1 is now available on pypi. Thanks to @homholueng for the bug report.