Beispiel #1
0
    def decode_property_value(self, value=''):
        """
        Decode the encoded property ``value`` input e.g. 'bold', '1-5-1-5', '1_32rem', '1p-10p-3p-1p', 'n12px',
        'n5_25cm-n6_1cm'. Returns parsed, but non-validated CSS property value.

        :type value: str

        :param value: An encoded CSS property value.
        :return: (*str*) -- Returns the decoded, but non-validated CSS property value.

        **Examples:**

        >>> value_parser = CSSPropertyValueParser(
        >>>     property_name='padding', use_em=True
        >>> )
        >>> value_parser.decode_property_value(value='1-5-1-5')
        '0.0625em 0.3125em 0.0625em 0.3125em'
        >>> value_parser.unit_parser.use_em = False
        >>> value_parser.decode_property_value(value='1-5-1-5')
        '1px 5px 1px 5px'

        """

        # Skip values that are built-in to the CSS standard, and represent the literal property value.
        if not self.is_built_in(value=value):
            # Apply to all non-built-in values.
            value = self.replace_dashes(value=value)

            # These only apply if value contains a digit.
            value = self.replace_underscore_with_decimal(value=value)
            value = self.replace_p_with_percent(value=value)
            value = self.replace_n_with_minus(value=value)

            # Parse color and units
            value = self.color_parser.replace_h_with_hash(value=value)
            value = self.color_parser.add_color_parenthetical(value=value)
            value = self.unit_parser.add_units(property_value=value)
        else:
            # Generate web safe font-family fallback strings.
            if self.property_name == 'font-family':
                font_parser = FontParser(font_value=value)
                value = font_parser.generate_fallback_fonts()
        return value
Beispiel #2
0

def setup_logger():
    logger = logging.getLogger('InteractiveHtmlBom')
    logger.setLevel(logging.INFO)
    ch = logging.StreamHandler(sys.stdout)
    ch.setLevel(logging.INFO)
    formatter = logging.Formatter("%(asctime)-15s %(levelname)s %(message)s")
    ch.setFormatter(formatter)
    logger.addHandler(ch)
    return logger


logger = setup_logger()
is_cli = False
font_parser = FontParser()


def loginfo(*args):
    if is_cli:
        logger.info(*args)


def logerror(msg):
    if is_cli:
        logger.error(msg)
    else:
        wx.MessageBox(msg)


def logwarn(msg):