|
ATLAS Offline Software
|
|
dict[str, Node] | build_tree (Mapping[str, DefectLogic] all_logic) |
|
def | walk (Node node, set[Node] visited, bool visit_primary, TextIO fd) |
|
def | dump_visited (TextIO fd, Node current_node, set[Node] nodes, Mapping[Union[str, int], str] descs, bool parents) |
|
def | build_dependency_graph (str output_dir, Node node, Mapping[Union[str, int], str] descs) |
|
def | build_parent_tree (str output_dir, Node node, Mapping[Union[str, int], str] descs) |
|
def | render_all_flags (str output_dir, dict[str, Node] all_nodes, Mapping[Union[str, int], str] descs) |
|
def | main () |
|
◆ build_dependency_graph()
def defects_dump_graph.build_dependency_graph |
( |
str |
output_dir, |
|
|
Node |
node, |
|
|
Mapping[Union[str, int], str] |
descs |
|
) |
| |
Definition at line 114 of file defects_dump_graph.py.
116 with open(
"%s/%s.dot" % (output_dir, node.name),
"w")
as fd:
117 print(f
"strict digraph {node.name} {{", file=fd)
118 print(
"rankdir=LR;\n", file=fd)
122 for parent
in sorted(node.parents, key=Node.get_name):
123 print(f
"{parent.name} -> {node.name}", file=fd)
126 walk(node, visited, node.has_primary_children, fd)
◆ build_parent_tree()
def defects_dump_graph.build_parent_tree |
( |
str |
output_dir, |
|
|
Node |
node, |
|
|
Mapping[Union[str, int], str] |
descs |
|
) |
| |
Definition at line 132 of file defects_dump_graph.py.
132 def build_parent_tree(output_dir: str, node: Node, descs: Mapping[Union[str, int], str]):
134 visited =
set([node])
136 with open(f
"{output_dir}/{DEPENDSON_DIR}/{node.name}.dot",
"w")
as fd:
137 def walk_parents(node):
139 for parent
in node.parents:
140 print(f
"{parent.name} -> {node.name}", file=fd)
143 print(f
"strict digraph {node.name} {{", file=fd)
144 print(
"rankdir=LR;\n", file=fd)
◆ build_tree()
dict[str, Node] defects_dump_graph.build_tree |
( |
Mapping[str, DefectLogic] |
all_logic | ) |
|
Definition at line 64 of file defects_dump_graph.py.
64 def build_tree(all_logic: Mapping[str, DefectLogic]) -> dict[str, Node]:
66 all_nodes: dict[str, Node] = {}
68 def make_primary(current_logic: str) -> Node:
69 if current_logic
in all_nodes:
70 return all_nodes[current_logic]
71 all_nodes[current_logic] = node = Node(current_logic)
74 def explore_virtual(current_logic: str) -> Node:
75 if current_logic
in all_nodes:
76 return all_nodes[current_logic]
78 this_logic = all_logic[current_logic]
79 all_nodes[current_logic] = node = Node(current_logic)
81 for name
in this_logic.clauses:
83 child = explore_virtual(name)
85 child = make_primary(name)
87 child.parents.add(node)
88 node.children.add(child)
92 for name
in all_logic:
◆ dump_visited()
def defects_dump_graph.dump_visited |
( |
TextIO |
fd, |
|
|
Node |
current_node, |
|
|
set[Node] |
nodes, |
|
|
Mapping[Union[str, int], str] |
descs, |
|
|
bool |
parents |
|
) |
| |
Definition at line 105 of file defects_dump_graph.py.
105 def dump_visited(fd: TextIO, current_node: Node, nodes: set[Node],
106 descs: Mapping[Union[str, int], str], parents: bool):
107 for node
in sorted(nodes, key=Node.get_name):
108 at_current_node = node.name == current_node.name
109 description = descs.get(node.name, node.name)
111 description = description.replace(
'\n',
' ')
112 print(node.dot(at_current_node, description, parents), file=fd)
◆ main()
def defects_dump_graph.main |
( |
| ) |
|
Definition at line 162 of file defects_dump_graph.py.
164 parser = ArgumentParser(description=
"Dump defect viewer information")
166 parser.add_argument(
"-t",
"--tag", default=
"HEAD", help=
"Defect tag")
167 parser.add_argument(
"-o",
"--output", default=
".", help=
"Directory to dump files")
169 args = parser.parse_args()
172 db = DefectsDB(tag=args.tag)
174 descs = db.all_defect_descriptions
177 all_nodes =
build_tree(db.virtual_defect_logics)
180 output_dir =
"%s/%s" % (args.output, args.tag)
◆ render_all_flags()
def defects_dump_graph.render_all_flags |
( |
str |
output_dir, |
|
|
dict[str, Node] |
all_nodes, |
|
|
Mapping[Union[str, int], str] |
descs |
|
) |
| |
Definition at line 152 of file defects_dump_graph.py.
152 def render_all_flags(output_dir: str, all_nodes: dict[str, Node], descs: Mapping[Union[str, int], str]):
154 path =
"%s/%s" % (output_dir, DEPENDSON_DIR)
158 for _, node
in sorted(all_nodes.items()):
◆ walk()
def defects_dump_graph.walk |
( |
Node |
node, |
|
|
set[Node] |
visited, |
|
|
bool |
visit_primary, |
|
|
TextIO |
fd |
|
) |
| |
Definition at line 97 of file defects_dump_graph.py.
97 def walk(node: Node, visited: set[Node], visit_primary: bool, fd: TextIO):
100 for subnode
in sorted(node.children, key=Node.get_name):
101 if subnode.virtual
or (subnode.primary
and visit_primary):
102 print(f
"{node.name} -> {subnode.name}", file=fd)
103 walk(subnode, visited, visit_primary, fd)
◆ DEPENDSON_DIR
string defects_dump_graph.DEPENDSON_DIR = "dependson" |
def render_all_flags(str output_dir, dict[str, Node] all_nodes, Mapping[Union[str, int], str] descs)
def build_parent_tree(str output_dir, Node node, Mapping[Union[str, int], str] descs)
dict[str, Node] build_tree(Mapping[str, DefectLogic] all_logic)
def walk(Node node, set[Node] visited, bool visit_primary, TextIO fd)
std::vector< typename T::value_type > sorted(T begin, T end)
Helper function to create a sorted vector from an unsorted one.
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
void print(char *figname, TCanvas *c1)
def build_dependency_graph(str output_dir, Node node, Mapping[Union[str, int], str] descs)
def dump_visited(TextIO fd, Node current_node, set[Node] nodes, Mapping[Union[str, int], str] descs, bool parents)