infra: create api rst for specific pkg (#18144)

Example: create rst for libs/core only
```bash
poetry run python docs/api_reference/create_api_rst.py core
```
This commit is contained in:
Bagatur 2024-02-26 11:04:22 -08:00 committed by GitHub
parent cd3ab3703b
commit 96bff0ed5d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,6 +3,7 @@
import importlib import importlib
import inspect import inspect
import os import os
import sys
import typing import typing
from enum import Enum from enum import Enum
from pathlib import Path from pathlib import Path
@ -344,28 +345,29 @@ def _doc_first_line(package_name: str) -> str:
return f".. {package_name.replace('-', '_')}_api_reference:\n\n" return f".. {package_name.replace('-', '_')}_api_reference:\n\n"
def main() -> None: def main(dirs: Optional[list] = None) -> None:
"""Generate the api_reference.rst file for each package.""" """Generate the api_reference.rst file for each package."""
print("Starting to build API reference files.") print("Starting to build API reference files.")
for dir in os.listdir(ROOT_DIR / "libs"): if not dirs:
dirs = [
dir_
for dir_ in os.listdir(ROOT_DIR / "libs")
if dir_ not in ("cli", "partners")
]
dirs += os.listdir(ROOT_DIR / "libs" / "partners")
for dir_ in dirs:
# Skip any hidden directories # Skip any hidden directories
# Some of these could be present by mistake in the code base # Some of these could be present by mistake in the code base
# e.g., .pytest_cache from running tests from the wrong location. # e.g., .pytest_cache from running tests from the wrong location.
if dir.startswith("."): if dir_.startswith("."):
print("Skipping dir:", dir) print("Skipping dir:", dir_)
continue
if dir in ("cli", "partners"):
continue continue
else: else:
print("Building package:", dir) print("Building package:", dir_)
_build_rst_file(package_name=dir) _build_rst_file(package_name=dir_)
partner_packages = os.listdir(ROOT_DIR / "libs" / "partners")
print("Building partner packages:", partner_packages)
for dir in partner_packages:
_build_rst_file(package_name=dir)
print("API reference files built.") print("API reference files built.")
if __name__ == "__main__": if __name__ == "__main__":
main() dirs = sys.argv[1:] or None
main(dirs=dirs)