forked from yosupo06/library-checker-problems
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathci_generate_parallel.py
executable file
·29 lines (24 loc) · 1.01 KB
/
ci_generate_parallel.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/env python3
import os
import argparse
from pathlib import Path
import toml
import generate
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Testcase Generator for Matrix build')
parser.add_argument('--show-list', action='store_true', help='Show problem list')
parser.add_argument('num', type=int, help='# of server')
parser.add_argument('id', type=int, help='server ID(1 <= id <= num)')
parser.add_argument('args', nargs=argparse.REMAINDER)
args = parser.parse_args()
tomls = list(filter(lambda p: not p.match('test/**/info.toml'),
Path('.').glob('**/info.toml')))
tomls = sorted(tomls, key=lambda x: x.parent.name)
tomls = [tomls[i] for i in range(args.id - 1, len(tomls), args.num)]
if args.show_list:
print('Server ID: {} / {}'.format(args.id, args.num))
print('Problem List:')
for x in tomls:
print(' {}'.format(x))
else:
generate.main(['--test'] + list(map(str, tomls)) + args.args)