MCPcopy
hub / github.com/beeware/toga / _create_node

Method _create_node

core/src/toga/sources/tree_source.py:257–279  ·  view source on GitHub ↗
(
        self,
        parent: Node | None,
        data: object,
        children: object | None = None,
    )

Source from the content-addressed store, hash-verified

255 ######################################################################
256
257 def _create_node(
258 self,
259 parent: Node | None,
260 data: object,
261 children: object | None = None,
262 ) -> Node:
263 if isinstance(data, Mapping):
264 node = Node(**data)
265 elif self._accessors is not None:
266 if hasattr(data, "__iter__") and not isinstance(data, str):
267 node = Node(**dict(zip(self._accessors, data, strict=False)))
268 else:
269 node = Node(**{self._accessors[0]: data})
270 else:
271 raise ValueError("TreeSource requires accessors for non-mapping node data")
272
273 node._parent = parent
274 node._source = self
275
276 if children is not None:
277 node._children = self._create_nodes(parent=node, value=children)
278
279 return node
280
281 def _create_nodes(self, parent: Node | None, value: object) -> list[Node]:
282 match value:

Callers 5

_create_nodesMethod · 0.95
__setitem__Method · 0.95
insertMethod · 0.95
__setitem__Method · 0.80
insertMethod · 0.80

Calls 2

_create_nodesMethod · 0.95
NodeClass · 0.70

Tested by

no test coverage detected