@@ -713,13 +713,15 @@ def get_rule(self, rule: str, default: object = None) -> object:
713713 def refresh (
714714 self , * , layout : bool = False , children : bool = False , parent : bool = False
715715 ) -> None :
716- if parent and self .node and self .node .parent :
717- self .node .parent .refresh ()
718- if self .node is not None :
719- self .node .refresh (layout = layout )
720- if children :
721- for child in self .node .walk_children (with_self = False , reverse = True ):
722- child .refresh (layout = layout )
716+ node = self .node
717+ if node is None or not node ._is_mounted :
718+ return
719+ if parent and node ._parent is not None :
720+ node ._parent .refresh ()
721+ node .refresh (layout = layout )
722+ if children :
723+ for child in node .walk_children (with_self = False , reverse = True ):
724+ child .refresh (layout = layout )
723725
724726 def reset (self ) -> None :
725727 """Reset the rules to initial state."""
@@ -757,11 +759,12 @@ def extract_rules(
757759 A list containing a tuple of <RULE NAME>, <SPECIFICITY> <RULE VALUE>.
758760 """
759761 is_important = self .important .__contains__
762+ default_rules = 0 if is_default_rules else 1
760763 rules : list [tuple [str , Specificity6 , Any ]] = [
761764 (
762765 rule_name ,
763766 (
764- 0 if is_default_rules else 1 ,
767+ default_rules ,
765768 1 if is_important (rule_name ) else 0 ,
766769 * specificity ,
767770 tie_breaker ,
0 commit comments