davanstrien HF staff commited on
Commit
9a0fc73
1 Parent(s): 13c4458

add urls for prs to summary

Browse files
Files changed (1) hide show
  1. app.py +37 -5
app.py CHANGED
@@ -21,6 +21,7 @@ from huggingface_hub.utils import HfHubHTTPError, RepositoryNotFoundError
21
  from tqdm.asyncio import tqdm as atqdm
22
  from tqdm.auto import tqdm
23
  import random
 
24
 
25
  cache.setup("mem://")
26
 
@@ -48,8 +49,8 @@ def get_models(user_or_org):
48
  iter(
49
  list_models(
50
  filter=model_filter,
51
- sort="downloads",
52
- direction=-1,
53
  cardData=True,
54
  full=True,
55
  )
@@ -185,6 +186,16 @@ For a hands-on example of how such metadata can play a pivotal role in mapping m
185
  This PR was requested via the [Librarian Bot](https://huggingface.co/librarian-bot) [metadata request service](https://huggingface.co/spaces/librarian-bots/metadata_request_service) by request of [{opened_by}](https://huggingface.co/{opened_by})
186
  """
187
 
 
 
 
 
 
 
 
 
 
 
188
  def update_metadata(metadata_payload: Dict[str, str], user_making_request=None):
189
  metadata_payload["opened_pr"] = False
190
  regex_match = metadata_payload["match"]
@@ -214,7 +225,7 @@ def update_metadata(metadata_payload: Dict[str, str], user_making_request=None):
214
  logger.info("previously opened PR to add base_model tag")
215
  metadata_payload["opened_pr"] = True
216
  return metadata_payload
217
- model_card.push_to_hub(
218
  repo_id,
219
  token=token,
220
  repo_type="model",
@@ -223,6 +234,9 @@ def update_metadata(metadata_payload: Dict[str, str], user_making_request=None):
223
  commit_description=template,
224
  )
225
  metadata_payload["opened_pr"] = True
 
 
 
226
  return metadata_payload
227
  except HfHubHTTPError:
228
  return metadata_payload
@@ -246,7 +260,24 @@ def open_prs(profile: gr.OAuthProfile | None, user_or_org: str = None):
246
  )
247
  except Exception as e:
248
  logger.error(e)
249
- return f"Opened {len([r for r in results if r['opened_pr']])} PRs"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
 
251
 
252
  # description_text = """
@@ -310,7 +341,8 @@ For a hands-on example of how such metadata can play a pivotal role in mapping m
310
 
311
  with gr.Blocks() as demo:
312
  gr.HTML(
313
- "<h1 style='text-align:center;'><span>&#129302;</span> Librarian Bot Metadata Request Service <span>&#129302;</span></h1>"
 
314
  )
315
  gr.Markdown(
316
  """<div style='text-align:center;'><img src='https://huggingface.co/spaces/davanstrien/librarian_bot_request_metadata/resolve/main/image.png' style='display:block;margin-left:auto;margin-right:auto;width:150px;'></div><p>"""
 
21
  from tqdm.asyncio import tqdm as atqdm
22
  from tqdm.auto import tqdm
23
  import random
24
+ from huggingface_hub import get_discussion_details
25
 
26
  cache.setup("mem://")
27
 
 
49
  iter(
50
  list_models(
51
  filter=model_filter,
52
+ # sort="downloads",
53
+ # direction=-1,
54
  cardData=True,
55
  full=True,
56
  )
 
186
  This PR was requested via the [Librarian Bot](https://huggingface.co/librarian-bot) [metadata request service](https://huggingface.co/spaces/librarian-bots/metadata_request_service) by request of [{opened_by}](https://huggingface.co/{opened_by})
187
  """
188
 
189
+
190
+ PR_FROM_COMMIT_PATTERN = re.compile(r"pr%2F(\d{1,3})/README.md")
191
+
192
+
193
+ def get_pr_url_from_commit_url(commit_url, repo_id):
194
+ re_match = re.search(PR_FROM_COMMIT_PATTERN, commit_url)
195
+ pr_number = int(re_match.groups()[0])
196
+ return get_discussion_details(repo_id=repo_id, discussion_num=pr_number).url
197
+
198
+
199
  def update_metadata(metadata_payload: Dict[str, str], user_making_request=None):
200
  metadata_payload["opened_pr"] = False
201
  regex_match = metadata_payload["match"]
 
225
  logger.info("previously opened PR to add base_model tag")
226
  metadata_payload["opened_pr"] = True
227
  return metadata_payload
228
+ commit_url = model_card.push_to_hub(
229
  repo_id,
230
  token=token,
231
  repo_type="model",
 
234
  commit_description=template,
235
  )
236
  metadata_payload["opened_pr"] = True
237
+ metadata_payload["pr_url"] = get_pr_url_from_commit_url(
238
+ commit_url=commit_url, repo_id=repo_id
239
+ )
240
  return metadata_payload
241
  except HfHubHTTPError:
242
  return metadata_payload
 
260
  )
261
  except Exception as e:
262
  logger.error(e)
263
+ if not results:
264
+ return "No PRs to open"
265
+ if not any(r["opened_pr"] for r in results):
266
+ return "No PRs to open"
267
+ message = "# &#x2728; Librarian Bot Metadata Request Summary &#x2728; \n\n"
268
+ message += (
269
+ f"Librarian bot has {len([r for r in results if r['opened_pr']])} PRs open"
270
+ " against your repos \n\n"
271
+ )
272
+ message += "# URLs for newly opened PRs\n"
273
+ for result in results:
274
+ if result["opened_pr"]:
275
+ print(result)
276
+ try:
277
+ message += f"- {result['pr_url']}\n"
278
+ except KeyError:
279
+ continue
280
+ return message
281
 
282
 
283
  # description_text = """
 
341
 
342
  with gr.Blocks() as demo:
343
  gr.HTML(
344
+ "<h1 style='text-align:center;'><span>&#129302;</span> Librarian Bot Metadata"
345
+ " Request Service <span>&#129302;</span></h1>"
346
  )
347
  gr.Markdown(
348
  """<div style='text-align:center;'><img src='https://huggingface.co/spaces/davanstrien/librarian_bot_request_metadata/resolve/main/image.png' style='display:block;margin-left:auto;margin-right:auto;width:150px;'></div><p>"""