Skip to content

Instantly share code, notes, and snippets.

@jpignata
Last active June 12, 2020 13:27
Show Gist options
  • Save jpignata/feece131f12c5fa682981eb05fcc7ada to your computer and use it in GitHub Desktop.
Save jpignata/feece131f12c5fa682981eb05fcc7ada to your computer and use it in GitHub Desktop.
#!/usr/bin/env python3
from random import shuffle
from sys import argv
from typing import Iterator, List, Tuple
DEFAULT_REVIEWER = 'JP'
def pairs(names: List[str], default: str) -> Iterator[Tuple[str, str]]:
if len(names) % 2 != 0:
names.append(default)
shuffle(names)
eligible = set(names)
return ((eligible.pop(), eligible.pop()) for _ in range(len(eligible) // 2))
if __name__ == '__main__':
if len(argv) < 2:
print('Usage: ./buds.py [NAME] [NAME] ...')
names = argv[1:]
width = len(max(names, key=len))
for name1, name2 in pairs(names, DEFAULT_REVIEWER):
print(f'{name1:<{width}} {name2:<{width}}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment