@@ -442,9 +442,20 @@ def pull_docs_files(
442
442
target_dir : str = "docs/source-pytorch/XXX" ,
443
443
checkout : str = "refs/tags/1.0.0" ,
444
444
source_dir : str = "docs/source" ,
445
+ single_page : Optional [str ] = None ,
445
446
as_orphan : bool = False ,
446
447
) -> None :
447
- """Pull docs pages from external source and append to local docs."""
448
+ """Pull docs pages from external source and append to local docs.
449
+
450
+ Args:
451
+ gh_user_repo: standard GitHub user/repo string
452
+ target_dir: relative location inside the docs folder
453
+ checkout: specific tag or branch to checkout
454
+ source_dir: relative location inside the remote / external repo
455
+ single_page: copy only single page from the remote repo and name it as the repo name
456
+ as_orphan: append orphan statement to the page
457
+
458
+ """
448
459
import zipfile
449
460
450
461
zip_url = f"https://github.com/{ gh_user_repo } /archive/{ checkout } .zip"
@@ -464,6 +475,14 @@ def pull_docs_files(
464
475
assert len (zip_dirs ) == 1
465
476
repo_dir = zip_dirs [0 ]
466
477
478
+ if single_page : # special case for copying single page
479
+ single_page = os .path .join (repo_dir , source_dir , single_page )
480
+ assert os .path .isfile (single_page ), f"File '{ single_page } ' does not exist."
481
+ name = re .sub (r"lightning[-_]?" , "" , gh_user_repo .split ("/" )[- 1 ])
482
+ new_rst = os .path .join (_PROJECT_ROOT , target_dir , f"{ name } .rst" )
483
+ AssistantCLI ._copy_rst (single_page , new_rst , as_orphan = as_orphan )
484
+ return
485
+ # continue with copying all pages
467
486
ls_pages = glob .glob (os .path .join (repo_dir , source_dir , "*.rst" ))
468
487
ls_pages += glob .glob (os .path .join (repo_dir , source_dir , "**" , "*.rst" ))
469
488
for rst in ls_pages :
0 commit comments