Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 1 | """This script updates the file torch/_masked/_docs.py that contains |
| 2 | the generated doc-strings for various masked operations. The update |
| 3 | should be triggered whenever a new masked operation is introduced to |
| 4 | torch._masked package. Running the script requires that torch package |
| 5 | is functional. |
| 6 | """ |
| 7 | |
| 8 | import os |
| 9 | |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 10 | |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 11 | def main() -> None: |
| 12 | |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 13 | target = os.path.join("torch", "_masked", "_docs.py") |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 14 | |
| 15 | try: |
| 16 | import torch |
| 17 | except ImportError as msg: |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 18 | print(f"Failed to import torch required to build {target}: {msg}") |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 19 | return |
| 20 | |
| 21 | if os.path.isfile(target): |
| 22 | with open(target) as _f: |
| 23 | current_content = _f.read() |
| 24 | else: |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 25 | current_content = "" |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 26 | |
| 27 | _new_content = [] |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 28 | _new_content.append( |
| 29 | """\ |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 30 | # -*- coding: utf-8 -*- |
| 31 | # This file is generated, do not modify it! |
| 32 | # |
| 33 | # To update this file, run the update masked docs script as follows: |
| 34 | # |
| 35 | # python tools/update_masked_docs.py |
| 36 | # |
| 37 | # The script must be called from an environment where the development |
| 38 | # version of torch package can be imported and is functional. |
| 39 | # |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 40 | """ |
| 41 | ) |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 42 | |
| 43 | for func_name in sorted(torch._masked.__all__): |
| 44 | func = getattr(torch._masked, func_name) |
| 45 | func_doc = torch._masked._generate_docstring(func) |
| 46 | _new_content.append(f'{func_name}_docstring = """{func_doc}"""\n') |
| 47 | |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 48 | new_content = "\n".join(_new_content) |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 49 | |
| 50 | if new_content == current_content: |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 51 | print(f"Nothing to update in {target}") |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 52 | return |
| 53 | |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 54 | with open(target, "w") as _f: |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 55 | _f.write(new_content) |
| 56 | |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 57 | print(f"Successfully updated {target}") |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 58 | |
| 59 | |
Edward Z. Yang | a11c1bb | 2022-04-20 08:51:02 -0400 | [diff] [blame] | 60 | if __name__ == "__main__": |
Pearu Peterson | 456d96d | 2022-02-16 18:40:19 -0800 | [diff] [blame] | 61 | main() |