MCPcopy
hub / github.com/ormar-orm/ormar / add

Method add

ormar/models/traversible.py:18–47  ·  view source on GitHub ↗

Adds new Node or returns the existing one :param node_class: Model in current node :type node_class: ormar.models.metaclass.ModelMetaclass :param relation_name: name of the current relation :type relation_name: str :param parent_node: parent node

(
        self,
        node_class: type["RelationMixin"],
        relation_name: Optional[str] = None,
        parent_node: Optional["Node"] = None,
    )

Source from the content-addressed store, hash-verified

16 return self.node_list.__getitem__(item)
17
18 def add(
19 self,
20 node_class: type["RelationMixin"],
21 relation_name: Optional[str] = None,
22 parent_node: Optional["Node"] = None,
23 ) -> "Node":
24 """
25 Adds new Node or returns the existing one
26
27 :param node_class: Model in current node
28 :type node_class: ormar.models.metaclass.ModelMetaclass
29 :param relation_name: name of the current relation
30 :type relation_name: str
31 :param parent_node: parent node
32 :type parent_node: Optional[Node]
33 :return: returns new or already existing node
34 :rtype: Node
35 """
36 existing_node = self.find(
37 relation_name=relation_name, node_class=node_class, parent_node=parent_node
38 )
39 if not existing_node:
40 current_node = Node(
41 node_class=node_class,
42 relation_name=relation_name,
43 parent_node=parent_node,
44 )
45 self.node_list.append(current_node)
46 return current_node
47 return existing_node # pragma: no cover
48
49 def find(
50 self,

Callers 11

__setattr__Method · 0.45
_construct_relationsMethod · 0.45
_set_slotMethod · 0.45
_traverse_dictMethod · 0.45
add_property_fieldsFunction · 0.45
_emit_signalMethod · 0.45
extract_through_namesMethod · 0.45
extract_related_namesMethod · 0.45

Calls 3

findMethod · 0.95
appendMethod · 0.80
NodeClass · 0.70

Tested by

no test coverage detected