File tree Expand file tree Collapse file tree 4 files changed +18
-13
lines changed Expand file tree Collapse file tree 4 files changed +18
-13
lines changed Original file line number Diff line number Diff line change @@ -776,6 +776,11 @@ def is_dom_root(self) -> bool:
776776 """Is this a root node (i.e. the App)?"""
777777 return True
778778
779+ @property
780+ def is_attached (self ) -> bool :
781+ """Is this node linked to the app through the DOM?"""
782+ return True
783+
779784 @property
780785 def debug (self ) -> bool :
781786 """Is debug mode enabled?"""
Original file line number Diff line number Diff line change @@ -746,8 +746,7 @@ def css_path_nodes(self) -> list[DOMNode]:
746746 append = result .append
747747
748748 node : DOMNode = self
749- while isinstance (node ._parent , DOMNode ):
750- node = node ._parent
749+ while isinstance ((node := node ._parent ), DOMNode ):
751750 append (node )
752751 return result [::- 1 ]
753752
@@ -1078,12 +1077,11 @@ def ancestors_with_self(self) -> list[DOMNode]:
10781077 Returns:
10791078 A list of nodes.
10801079 """
1081- nodes : list [MessagePump | None ] = []
1080+ nodes : list [MessagePump | None ] = [self ]
10821081 add_node = nodes .append
10831082 node : MessagePump | None = self
1084- while node is not None :
1083+ while ( node := node . _parent ) is not None :
10851084 add_node (node )
1086- node = node ._parent
10871085 return cast ("list[DOMNode]" , nodes )
10881086
10891087 @property
@@ -1093,7 +1091,12 @@ def ancestors(self) -> list[DOMNode]:
10931091 Returns:
10941092 A list of nodes.
10951093 """
1096- return self .ancestors_with_self [1 :]
1094+ nodes : list [MessagePump | None ] = []
1095+ add_node = nodes .append
1096+ node : MessagePump | None = self
1097+ while (node := node ._parent ) is not None :
1098+ add_node (node )
1099+ return cast ("list[DOMNode]" , nodes )
10971100
10981101 @property
10991102 def displayed_children (self ) -> list [Widget ]:
Original file line number Diff line number Diff line change @@ -247,8 +247,6 @@ def app(self) -> "App[object]":
247247 @property
248248 def is_attached (self ) -> bool :
249249 """Is this node linked to the app through the DOM?"""
250- if self .is_dom_root :
251- return True
252250 node : MessagePump | None = self
253251 while (node := node ._parent ) is not None :
254252 if node .is_dom_root :
Original file line number Diff line number Diff line change @@ -65,14 +65,13 @@ def walk_depth_first(
6565 if with_root and isinstance (root , check_type ):
6666 yield root
6767 while stack :
68- node = next (stack [- 1 ], None )
69- if node is None :
68+ if (node := next (stack [- 1 ], None )) is None :
7069 pop ()
7170 else :
7271 if isinstance (node , check_type ):
7372 yield node
74- if node .children :
75- push (iter (node . children ))
73+ if children := node ._nodes :
74+ push (iter (children ))
7675
7776
7877@overload
@@ -127,4 +126,4 @@ def walk_breadth_first(
127126 node = popleft ()
128127 if isinstance (node , check_type ):
129128 yield node
130- extend (node .children )
129+ extend (node ._nodes )
You can’t perform that action at this time.
0 commit comments