// UML for the standard Sphinx build workflow digraph build { graph [ rankdir=LR ]; node [ shape=rect style=rounded ]; "Sphinx" [ shape=record label = "Sphinx | __init__ | build" ]; "Sphinx":init -> "Builder.init"; "Sphinx":build -> "Builder.build_all"; "Sphinx":build -> "Builder.build_specific"; "Builder.build_update" [ shape=record label = " Builder.build_update | Builder.get_outdated_docs" ]; "Sphinx":build -> "Builder.build_update":p1 ; "Builder.build_all" -> "Builder.build"; "Builder.build_specific" -> "Builder.build"; "Builder.build_update":p1 -> "Builder.build"; "Builder.build" -> "Builder.read"; "Builder.write" [ shape=record label = " Builder.write | Builder._write_serial | Builder._write_parallel" ]; "Builder.build" -> "Builder.write"; "Builder.build" -> "Builder.finish"; "Builder.read" -> "Builder.read_doc"; "Builder.read_doc" -> "Builder.write_doctree"; "Builder.write":p1 -> "Builder.prepare_writing"; "Builder.write":p1 -> "Builder.copy_assets"; "Builder.write":p1 -> "Builder.write_doc"; "Builder.write_doc" -> "Builder.get_relative_uri"; "Builder.get_relative_uri" -> "Builder.get_target_uri"; }