コード例 #1
0
 def get_recursive_node_entities(id_: int, data: list[dict[str, Any]]) \
         -> list[dict[str, Any]]:
     for entity in g.types[id_].get_linked_entities(['P2', 'P89'],
                                                    inverse=True):
         data.append(get_node_dict(entity))
     for sub_id in g.types[id_].subs:
         GetNodeEntitiesAll.get_recursive_node_entities(sub_id, data)
     return data
コード例 #2
0
 def get_node(id_: int) -> list[dict[str, Any]]:
     if id_ not in g.types:
         raise InvalidSubunitError  # pragma: no cover
     return [
         get_node_dict(entity)
         for entity in g.types[id_].get_linked_entities(['P2', 'P89'],
                                                        inverse=True)
     ]
コード例 #3
0
 def get_subunits_recursive(
         entity: Optional[Entity],
         data: list[dict[str, Any]]) -> list[dict[str, Any]]:
     structure = get_structure(entity)
     if structure and structure['subunits']:
         for subunit in structure['subunits']:
             data.append(get_node_dict(subunit))
     node = get_structure(entity)
     if node:
         for sub_id in node['subunits']:
             GetSubunitHierarchy.get_subunits_recursive(sub_id, data)
     return data
コード例 #4
0
 def get_subunits(id_: int) -> list[dict[str, Any]]:
     structure = get_structure(get_entity_by_id(id_))
     if not structure or not structure['subunits']:
         raise InvalidSubunitError  # pragma: no cover
     return [get_node_dict(subunit) for subunit in structure['subunits']]