further optimizations

This commit is contained in:
Will McGugan
2022-08-25 17:17:25 +01:00
parent c3489f9e35
commit e19a0090f7

View File

@@ -87,6 +87,7 @@ class DOMNode(MessagePump):
self._auto_refresh: float | None = None
self._auto_refresh_timer: Timer | None = None
self._css_types = {cls.__name__ for cls in self._css_bases(self.__class__)}
super().__init__()
@@ -144,10 +145,6 @@ class DOMNode(MessagePump):
# Node bases are in reversed order so that the base class is lower priority
return self._css_bases(self.__class__)
@property
def css_types(self) -> set[str]:
return {cls.__name__ for cls in self._css_bases(self.__class__)}
@classmethod
def _css_bases(cls, base: Type[DOMNode]) -> Iterator[Type[DOMNode]]:
"""Get the DOMNode base classes, which inherit CSS.
@@ -325,7 +322,7 @@ class DOMNode(MessagePump):
selectors: list[str] = [
*(f".{class_name}" for class_name in self._classes),
*(f":{class_name}" for class_name in self.get_pseudo_classes()),
*self.css_types,
*self._css_types,
]
if self._id is not None:
selectors.append(f"#{self._id}")