3 # The MIT License (MIT)
5 # Copyright (c) 2015 Philippe Proulx <pproulx@efficios.com>
7 # Permission is hereby granted, free of charge, to any person obtaining a copy
8 # of this software and associated documentation files (the "Software"), to deal
9 # in the Software without restriction, including without limitation the rights
10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 # copies of the Software, and to permit persons to whom the Software is
12 # furnished to do so, subject to the following conditions:
14 # The above copyright notice and this permission notice shall be included in
15 # all copies or substantial portions of the Software.
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
32 def _get_section_infos(json_path
):
33 with
open(json_path
) as f
:
40 section_infos
= _get_section_infos(sys
.argv
[1])
41 digraph
= graphviz
.Digraph(format
='png', engine
='dot')
42 digraph
.attr('node', fontname
='Terminus', fontsize
='8')
44 for sid
, section_info
in section_infos
.items():
47 in_links_count
= len(section_info
['in-links'])
48 out_links_count
= len(section_info
['out-links'])
50 if in_links_count
== 0 and out_links_count
== 0:
52 elif in_links_count
== 0:
54 elif out_links_count
== 0:
60 digraph
.node(sid
, style
=style
, color
=color
)
62 for sid
, section_info
in section_infos
.items():
63 out_links
= section_info
['out-links']
65 for out_link
in out_links
:
66 if 'section' in out_link
:
67 dest
= out_link
['section']
68 digraph
.edge(sid
, dest
)
70 digraph
.render(filename
='linkgraph')
75 if __name__
== '__main__':
76 sys
.exit(0 if dotlinks() else 1)
This page took 0.030236 seconds and 4 git commands to generate.