def _image_height(image, **kwargs): root = kwargs.get('root') path = os.path.abspath( os.path.join(root.get_opt('path'), StringValue(image).value)) size = __get_size(path, root=root) return NumberValue([size[1], 'px'])
def parse(self, target): if isinstance(target, ParseNode): name = self.data[1].data[0][1:] for i in xrange(int(float(self.data[2])), int(float(self.data[3])) + 1): body = self.data[4].copy() body.ctx.update({name: NumberValue(i)}) body.parse(target)
def _percentage(value, **kwargs): value = NumberValue(value) if not value.units == '%': value.value *= 100 value.units = '%' return value
def _blue(color, **kwargs): """ Gets the blue component of a color. """ return NumberValue(color.value[2])
def _green(color, **kwargs): """ Gets the green component of a color. """ return NumberValue(color.value[1])
def _red(color, **kwargs): """ Gets the red component of a color. """ return NumberValue(color.value[0])
def _comparable(n1, n2, **kwargs): n1, n2 = NumberValue(n1), NumberValue(n2) type1 = CONV_TYPE.get(n1.units) type2 = CONV_TYPE.get(n2.units) return BooleanValue(type1 == type2)
def _unitless(value, **kwargs): if NumberValue(value).units: return BooleanValue(False) return BooleanValue(True)
def _unit(value, **kwargs): return NumberValue(value).units
def _pi(**kwargs): return NumberValue(math.pi)
def _alpha(color, **kwargs): c = ColorValue(color).value return NumberValue(c[3])
def _saturation(color, **kwargs): """ Get saturation value of HSL color. """ s = colorsys.rgb_to_hls(*map(lambda x: x / 255.0, color.value[:3]))[2] return NumberValue((s * 100, '%'))
def _lightness(color, **kwargs): """ Get lightness value of HSL color. """ l = colorsys.rgb_to_hls(*map(lambda x: x / 255.0, color.value[:3]))[1] return NumberValue((l * 100, '%'))
def _hue(color, **kwargs): """ Get hue value of HSL color. """ h = colorsys.rgb_to_hls(*map(lambda x: x / 255.0, color.value[:3]))[0] return NumberValue(h * 360.0)
def _percentage(value, root=None): value = NumberValue(value) if not value.units == '%': value.value *= 100 value.units = '%' return value