mumrah commented on code in PR #11096:
URL: https://github.com/apache/kafka/pull/11096#discussion_r1159825800
##########
reviewers.py:
##########
@@ -0,0 +1,76 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from collections import defaultdict
+import operator
+import os
+import re
+
+
+def prompt_for_user():
+ while True:
+ try:
+ user_input = input("\nName or email (case insensitive): ")
+ except (KeyboardInterrupt, EOFError):
+ return None
+ clean_input = user_input.strip().lower()
+ if clean_input != "":
+ return clean_input
+
+
+if __name__ == "__main__":
+ print("Utility to help generate 'Reviewers' string for Pull Requests. Use Ctrl+D or Ctrl+C to exit")
+
+ stream = os.popen("git log | grep Reviewers")
+ lines = stream.readlines()
+ all_reviewers = defaultdict(int)
+ for line in lines:
+ stripped = line.strip().lstrip("Reviewers: ")
+ reviewers = stripped.split(",")
+ for reviewer in reviewers:
+ all_reviewers[reviewer.strip()] += 1
+ parsed_reviewers = []
+
+ for item in all_reviewers.items():
+ m = re.match("(?P<name>.*)\s<(?P<email>.*)>", item[0])
+ if m is not None and len(m.groups()) == 2:
+ if item[1] > 2:
+ parsed_reviewers.append((m.group("name"), m.group("email"), item[1]))
+
+ selected_reviewers = []
+ while True:
+ if len(selected_reviewers) != 0:
+ print(f"Reviewers so far: {selected_reviewers}")
+ user_input = prompt_for_user()
+ if user_input is None:
+ break
+ candidates = []
+ for reviewer, email, count in parsed_reviewers:
+ if reviewer.lower().startswith(user_input) or email.lower().startswith(user_input):
+ candidates.append((reviewer, email, count))
+ if len(candidates) == 10:
+ break
+ if len(candidates) == 0:
+ continue
+
+ print("\nPossible matches (in order of most recent):")
Review Comment:
@showuon the zip + range(10) has the effect of only showing the top 10
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: jira-unsubscribe@kafka.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org