chore: import upstream snapshot with attribution
Docs/Test Workflow / Test docs build (push) Failing after 0s
Check links & references / links-check (push) Failing after 1s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.10) (push) Failing after 0s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.11) (push) Failing after 0s
PR Conflict Labeler / main (push) Failing after 2s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.12) (push) Failing after 2s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.13) (push) Failing after 0s
Pytest/Test Workflow / Build this Package (push) Failing after 5s
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.10) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.11) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.12) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.13) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.10) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.11) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.12) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.13) (push) Has been cancelled
Pytest/Test Workflow / testing-guardian (push) Has been cancelled
Docs/Test Workflow / Test docs build (push) Failing after 0s
Check links & references / links-check (push) Failing after 1s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.10) (push) Failing after 0s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.11) (push) Failing after 0s
PR Conflict Labeler / main (push) Failing after 2s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.12) (push) Failing after 2s
Pytest/Test Workflow / Import Test and Pytest Run (ubuntu-latest, 3.13) (push) Failing after 0s
Pytest/Test Workflow / Build this Package (push) Failing after 5s
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.10) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.11) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.12) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (macos-latest, 3.13) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.10) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.11) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.12) (push) Has been cancelled
Pytest/Test Workflow / Import Test and Pytest Run (windows-latest, 3.13) (push) Has been cancelled
Pytest/Test Workflow / testing-guardian (push) Has been cancelled
This commit is contained in:
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Script to augment relative links in markdown files to GitHub URLs.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
from re import Match
|
||||
|
||||
|
||||
def get_repo_root() -> str:
|
||||
"""Get the repository root path."""
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
return os.path.dirname(os.path.dirname(script_dir))
|
||||
|
||||
|
||||
def augment_links_in_file(file_path: str, branch: str = "main") -> None:
|
||||
"""
|
||||
Augment relative links in a markdown file to GitHub URLs.
|
||||
|
||||
Args:
|
||||
file_path: Path to the markdown file.
|
||||
branch: Branch name, default "main".
|
||||
"""
|
||||
repo_root = get_repo_root()
|
||||
|
||||
if not file_path.endswith(".md"):
|
||||
return
|
||||
|
||||
with open(file_path) as f:
|
||||
content = f.read()
|
||||
|
||||
def replace_link(match: Match[str]) -> str:
|
||||
full_match = match.group(0)
|
||||
text = match.group(2)
|
||||
url = match.group(3)
|
||||
if not url.startswith("http"):
|
||||
# Resolve relative to an absolute path
|
||||
abs_path = os.path.normpath(os.path.join(os.path.dirname(file_path), url))
|
||||
if os.path.exists(abs_path):
|
||||
# Use 'tree' for directories and 'blob' for files
|
||||
ref = "tree" if os.path.isdir(abs_path) else "blob"
|
||||
rel_to_root = os.path.relpath(abs_path, repo_root)
|
||||
new_url = f"https://github.com/roboflow/supervision/{ref}/{branch}/{rel_to_root}"
|
||||
if full_match.startswith("!"):
|
||||
return f""
|
||||
else:
|
||||
return f"[{text}]({new_url})"
|
||||
return full_match
|
||||
|
||||
new_content = re.sub(r"(!?)\[([^\]]+)\]\(([^)]+)\)", replace_link, content)
|
||||
with open(file_path, "w") as f:
|
||||
f.write(new_content)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Augment relative links to GitHub URLs."
|
||||
)
|
||||
parser.add_argument("--branch", default="main", help="Branch name")
|
||||
parser.add_argument("files", nargs="+", help="Files to process")
|
||||
args = parser.parse_args()
|
||||
|
||||
for file in args.files:
|
||||
augment_links_in_file(file, args.branch)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user