evalstate/diffusers-pr-api
0
1from __future__ import annotations2 3 4def _repo_title(repo_slug: str) -> str:5 name = repo_slug.split("/", 1)[-1]6 return name.replace("-", " ").replace("_", " ").title()7 8 9def build_hf_dataset_card(10 repo_slug: str,11 snapshot_id: str,12 *,13 include_new_contributors: bool = False,14 notes: list[str] | None = None,15) -> str:16 repo_title = _repo_title(repo_slug)17 dataset_title = f"{repo_title} PR Dataset"18 new_contributor_config = ""19 new_contributor_files = ""20 if include_new_contributors:21 new_contributor_config = """- config_name: new_contributors22 data_files:23 - split: train24 path: new_contributors.parquet25"""26 new_contributor_files = """- `new_contributors.parquet`27- `new-contributors-report.json`28- `new-contributors-report.md`29"""30 note_lines = "\n".join(f"- {note}" for note in (notes or []))31 if note_lines:32 note_lines = f"{note_lines}\n"33 return f"""---34pretty_name: {dataset_title}35configs:36- config_name: issues37 data_files:38 - split: train39 path: issues.parquet40 default: true41- config_name: prs42 data_files:43 - split: train44 path: pull_requests.parquet45- config_name: issue_comments46 data_files:47 - split: train48 path: issue_comments.parquet49- config_name: pr_comments50 data_files:51 - split: train52 path: pr_comments.parquet53- config_name: pr_reviews54 data_files:55 - split: train56 path: reviews.parquet57- config_name: pr_files58 data_files:59 - split: train60 path: pr_files.parquet61- config_name: pr_diffs62 data_files:63 - split: train64 path: pr_diffs.parquet65- config_name: review_comments66 data_files:67 - split: train68 path: review_comments.parquet69- config_name: links70 data_files:71 - split: train72 path: links.parquet73- config_name: events74 data_files:75 - split: train76 path: events.parquet77{new_contributor_config}---78---79 80# {dataset_title}81 82Normalized snapshots of issues, pull requests, comments, reviews, and linkage data from `{repo_slug}`.83 84Files:85- `issues.parquet`86- `pull_requests.parquet`87- `comments.parquet`88- `issue_comments.parquet` (derived view of issue discussion comments)89- `pr_comments.parquet` (derived view of pull request discussion comments)90- `reviews.parquet`91- `pr_files.parquet`92- `pr_diffs.parquet`93- `review_comments.parquet`94- `links.parquet`95- `events.parquet`96{new_contributor_files}97Use:98- duplicate PR and issue analysis99- triage and ranking experiments100- eval set creation101 102Notes:103- latest snapshot: `{snapshot_id}`104- raw data only; no labels or moderation decisions105- PR metadata, file-level patch hunks, and full unified diffs are included106- full file contents for changed files are not included107{note_lines}"""108 