Skip to content

Commit 2957539

Browse files
committed
don't use chainmap
1 parent 676da58 commit 2957539

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/textual/css/styles.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__ import annotations
22

3-
from collections import ChainMap
43
from dataclasses import dataclass, field
54
from functools import lru_cache, partial
65
from operator import attrgetter
@@ -1103,9 +1102,6 @@ def __init__(self, node: DOMNode, base: Styles, inline_styles: Styles) -> None:
11031102
self._updates: int = 0
11041103
self._rich_style: tuple[int, Style] | None = None
11051104
self._gutter: tuple[int, Spacing] | None = None
1106-
self._render_rules = ChainMap(inline_styles._rules, base._rules)
1107-
self.get_rule = self._render_rules.get # type: ignore[assignment]
1108-
self.has_rule = self._render_rules.__contains__ # type: ignore[assignment]
11091105

11101106
def __eq__(self, other: object) -> bool:
11111107
if isinstance(other, RenderStyles):
@@ -1226,10 +1222,19 @@ def reset(self) -> None:
12261222
self._inline_styles.reset()
12271223
self._updates += 1
12281224

1225+
def has_rule(self, rule: str) -> bool:
1226+
"""Check if a rule has been set."""
1227+
return self._inline_styles.has_rule(rule) or self._base_styles.has_rule(rule)
1228+
12291229
def set_rule(self, rule: str, value: object | None) -> bool:
12301230
self._updates += 1
12311231
return self._inline_styles.set_rule(rule, value)
12321232

1233+
def get_rule(self, rule: str, default: object = None) -> object:
1234+
if self._inline_styles.has_rule(rule):
1235+
return self._inline_styles.get_rule(rule, default)
1236+
return self._base_styles.get_rule(rule, default)
1237+
12331238
def clear_rule(self, rule_name: str) -> bool:
12341239
"""Clear a rule (from inline)."""
12351240
self._updates += 1

0 commit comments

Comments
 (0)