text-generation-inference
/
update_doc.py
64 строки · 1.9 Кб
1import subprocess2import argparse3
4
5def main():6parser = argparse.ArgumentParser()7parser.add_argument("--check", action="store_true")8
9args = parser.parse_args()10
11output = subprocess.check_output(["text-generation-launcher", "--help"]).decode(12"utf-8"13)14
15wrap_code_blocks_flag = "<!-- WRAP CODE BLOCKS -->"16final_doc = f"# Text-generation-launcher arguments\n\n{wrap_code_blocks_flag}\n\n"17
18lines = output.split("\n")19
20header = ""21block = []22for line in lines:23if line.startswith(" -") or line.startswith(" -"):24rendered_block = "\n".join(block)25if header:26final_doc += f"## {header}\n```shell\n{rendered_block}\n```\n"27else:28final_doc += f"```shell\n{rendered_block}\n```\n"29block = []30tokens = line.split("<")31if len(tokens) > 1:32header = tokens[-1][:-1]33else:34header = line.split("--")[-1]35header = header.upper().replace("-", "_")36
37block.append(line)38
39rendered_block = "\n".join(block)40final_doc += f"## {header}\n```shell\n{rendered_block}\n```\n"41block = []42
43filename = "docs/source/basic_tutorials/launcher.md"44if args.check:45with open(filename, "r") as f:46doc = f.read()47if doc != final_doc:48tmp = "launcher.md"49with open(tmp, "w") as g:50g.write(final_doc)51diff = subprocess.run(52["diff", tmp, filename], capture_output=True53).stdout.decode("utf-8")54print(diff)55raise Exception(56"Doc is not up-to-date, run `python update_doc.py` in order to update it"57)58else:59with open(filename, "w") as f:60f.write(final_doc)61
62
63if __name__ == "__main__":64main()65