def parse_bareword(word): if word in COLOR_NAMES: return ColorValue.from_name(word) elif word == 'null': return Null() elif word == 'undefined': return Undefined() elif word == 'true': return BooleanValue(True) elif word == 'false': return BooleanValue(False) else: return String(word, quotes=None)
def blank(*objs): """Returns true when the object is false, an empty string, or an empty list""" for o in objs: if isinstance(o, BooleanValue): is_blank = not o elif isinstance(o, QuotedStringValue): is_blank = not len(o.value.strip()) elif isinstance(o, List): is_blank = all(blank(el) for el in o) else: is_blank = False if not is_blank: return BooleanValue(False) return BooleanValue(True)
def prefixed(prefix, *args): to_fnct_str = 'to_' + to_str(prefix).replace('-', '_') for arg in List.from_maybe_starargs(args): if hasattr(arg, to_fnct_str): return BooleanValue(True) return BooleanValue(False)
def evaluate(self, calculator, divide=False): operand = self.operand.evaluate(calculator, divide=True) return BooleanValue(not (operand))
def evaluate(self, calculator, divide=False): operands = [ operand.evaluate(calculator, divide=True) for operand in self.operands ] return BooleanValue(all(operands))
def comparable(number1, number2): left = number1.to_base_units() right = number2.to_base_units() return BooleanValue(left.unit_numer == right.unit_numer and left.unit_denom == right.unit_denom)
def unitless(value): if not isinstance(value, NumberValue): raise TypeError("Expected number, got %r" % (value, )) return BooleanValue(value.is_unitless)
def index(lst, val): for i in xrange(len(lst)): if lst.value[i] == val: return NumberValue(i + 1) return BooleanValue(False)