1
0
Fork 0

Extract palette names to a constant

to avoid calculating it each time the class is constructed.
This commit is contained in:
Ivan Habunek 2023-04-20 11:34:32 +02:00
parent b99a193704
commit 9efac32228
No known key found for this signature in database
GPG Key ID: CDBD63C43A30BB95
1 changed files with 6 additions and 7 deletions

View File

@ -10,19 +10,18 @@ from .constants import PALETTE
from bs4.element import NavigableString, Tag
class ContentParser:
def __init__(self):
self.palette_names = []
for p in PALETTE:
self.palette_names.append(p[0])
PALETTE_NAMES = [name for name, _, _ in PALETTE]
"""Parse a limited subset of HTML and create urwid widgets."""
class ContentParser:
"""Parse a limited subset of HTML and create urwid widgets."""
def html_to_widgets(self, html) -> List[urwid.Widget]:
"""Convert html to urwid widgets"""
widgets: List[urwid.Widget] = []
html = unicodedata.normalize("NFKC", html)
soup = bs4_parse(html)
for e in soup.body or soup:
if isinstance(e, NavigableString):
continue
@ -121,7 +120,7 @@ class ContentParser:
style_name = "class_" + "_".join(clss)
# return the class name, only if we
# find it as a defined palette name
if style_name in self.palette_names:
if style_name in PALETTE_NAMES:
return style_name
# fallback to returning the tag name