From 304f6828088a05f1254a21a8de8bd5de1aad441c Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 3 Jul 2020 12:24:43 +0530 Subject: [PATCH] Avoid re-parsing identical selectors for class names --- src/calibre/ebooks/oeb/polish/css.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/calibre/ebooks/oeb/polish/css.py b/src/calibre/ebooks/oeb/polish/css.py index cb84f20de0..7c96380c8b 100644 --- a/src/calibre/ebooks/oeb/polish/css.py +++ b/src/calibre/ebooks/oeb/polish/css.py @@ -18,6 +18,7 @@ from calibre.ebooks.oeb.polish.pretty import pretty_script_or_style, pretty_xml_ from calibre.utils.icu import numeric_sort_key from css_selectors import Select, SelectorError from polyglot.builtins import iteritems, itervalues, unicode_type, filter +from polyglot.functools import lru_cache def filter_used_rules(rules, log, select): @@ -291,6 +292,7 @@ def _classes_in_selector(selector, classes): classes.add(cn) +@lru_cache(maxsize=4096) def classes_in_selector(text): classes = set() try: