]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc/script/gen_state_diagram: add "output" parameter to emit_dot()
authorKefu Chai <kchai@redhat.com>
Thu, 19 Nov 2020 06:15:53 +0000 (14:15 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 19 Nov 2020 09:00:29 +0000 (17:00 +0800)
this allows us to reuse this python script as a module.

Signed-off-by: Kefu Chai <kchai@redhat.com>
doc/scripts/gen_state_diagram.py

index 2054bfb1f09d5400437ce0b576dae47542d58eee..d1efdc0c3e99f575aeb64b09dd4e7aa4c5bde9d8 100755 (executable)
@@ -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)