From: Kefu Chai Date: Thu, 19 Nov 2020 06:15:53 +0000 (+0800) Subject: doc/script/gen_state_diagram: add "output" parameter to emit_dot() X-Git-Tag: v16.1.0~542^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a14b2b42beaf35a34cdb42e02f7c3cdfe1654b82;p=ceph.git doc/script/gen_state_diagram: add "output" parameter to emit_dot() this allows us to reuse this python script as a module. Signed-off-by: Kefu Chai --- diff --git a/doc/scripts/gen_state_diagram.py b/doc/scripts/gen_state_diagram.py index 2054bfb1f09d..d1efdc0c3e99 100755 --- a/doc/scripts/gen_state_diagram.py +++ b/doc/scripts/gen_state_diagram.py @@ -170,21 +170,21 @@ class StateMachineRenderer(object): self.edges[self.context[-1][2]] = [] self.edges[self.context[-1][2]].append((self.context[-1][0], i.group(1))) - def emit_dot(self): + def emit_dot(self, output): top_level = [] for state in self.machines.keys(): if state not in self.states.keys(): top_level.append(state) print('Top Level States: ', top_level, file=sys.stderr) - print('digraph G {') - print('\tsize="7,7"') - print('\tcompound=true;') + print('digraph G {', file=output) + print('\tsize="7,7"', file=output) + print('\tcompound=true;', file=output) for i in self.emit_state(top_level[0]): - print('\t' + i) + print('\t' + i, file=output) for i in self.edges.keys(): for j in self.emit_event(i): - print(j) - print('}') + print(j, file=output) + print('}', file=output) def emit_state(self, state): if state in self.state_contents.keys(): @@ -239,4 +239,4 @@ if __name__ == '__main__': INPUT_GENERATOR = do_filter(line for line in sys.stdin) RENDERER = StateMachineRenderer() RENDERER.read_input(INPUT_GENERATOR) - RENDERER.emit_dot() + RENDERER.emit_dot(output=sys.stdout)