From 498d3e18b9bcb8f3db486ac810bfe02a2577567b Mon Sep 17 00:00:00 2001 From: Guillaume Ayoub Date: Fri, 30 Sep 2022 15:02:44 +0200 Subject: [PATCH] Optimize __missing__ functions --- weasyprint/css/__init__.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/weasyprint/css/__init__.py b/weasyprint/css/__init__.py index f91103052..1cb966290 100644 --- a/weasyprint/css/__init__.py +++ b/weasyprint/css/__init__.py @@ -626,18 +626,18 @@ def copy(self): return copy def __missing__(self, key): - if key in INHERITED or key.startswith('__'): - self[key] = self.parent_style[key] + if key in INHERITED or key[:2] == '__': + value = self[key] = self.parent_style[key] elif key == 'page': # page is not inherited but taken from the ancestor if 'auto' - self[key] = self.parent_style[key] - elif key.startswith('text_decoration_'): - self[key] = text_decoration( + value = self[key] = self.parent_style[key] + elif key[:16] == 'text_decoration_': + value = self[key] = text_decoration( key, INITIAL_VALUES[key], self.parent_style[key], cascaded=False) else: - self[key] = INITIAL_VALUES[key] - return self[key] + value = self[key] = INITIAL_VALUES[key] + return value class ComputedStyle(dict): @@ -676,7 +676,7 @@ def __missing__(self, key): if key in self.cascaded: value = keyword = self.cascaded[key][0] else: - if key in INHERITED or key.startswith('__'): + if key in INHERITED or key[:2] == '__': keyword = 'inherit' else: keyword = 'initial' @@ -686,7 +686,7 @@ def __missing__(self, key): keyword = 'initial' if keyword == 'initial': - value = None if key.startswith('__') else INITIAL_VALUES[key] + value = None if key[:2] == '__' else INITIAL_VALUES[key] if key not in INITIAL_NOT_COMPUTED: # The value is the same as when computed self[key] = value @@ -694,7 +694,7 @@ def __missing__(self, key): # Values in parent_style are already computed. self[key] = value = self.parent_style[key] - if key.startswith('text_decoration_') and self.parent_style: + if key[:16] == 'text_decoration_' and self.parent_style: value = text_decoration( key, value, self.parent_style[key], key in self.cascaded) if key in self: