-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpgn_to_json_csv_converter.py
More file actions
72 lines (64 loc) · 3.03 KB
/
Copy pathpgn_to_json_csv_converter.py
File metadata and controls
72 lines (64 loc) · 3.03 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import time
import argparse
import threading
# Project Import
import arg_checker
import task
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--files-list', nargs='+', default=[])
parser.add_argument('-n', '--number-of-games', default=0)
parser.add_argument('-b', '--batch-of-games', default=0)
parser.add_argument('-s', '--skip-games', default=0)
parser.add_argument('-dj', '--dump-json', action='store_true', default=False)
parser.add_argument('-dc', '--dump-csv', action='store_true', default=False)
parser.add_argument('-o', '--output-dir', type=arg_checker.dir_path, default='./output/')
parser.add_argument('-u', '--unique-batch-identifier')
parser.add_argument('--moves', action='store_true', default=True)
parser.add_argument('--zobrist-hash', action='store_true', default=False)
parser.add_argument('--board-2d', action='store_true', default=False)
parser.add_argument('--evals', action='store_true', default=False)
parser.add_argument('--engine-evals', action='store_true', default=False)
parser.add_argument('--engine-path', default='./engine/stockfish_10_x64.exe')
parser.add_argument('--engine-eval-depth', default=20)
parser.add_argument('--engine-eval-time', default=0.1)
parser.add_argument('--comments', action='store_true', default=True)
parser.add_argument('--center-control', action='store_true', default=False)
parser.add_argument('--diagonal-control', action='store_true', default=False)
parser.add_argument('--pins', action='store_true', default=False)
args = parser.parse_args()
print('------------------------------')
print('Gathering from files?:', args.files_list)
print('Skip games per file?:', args.skip_games)
print('Number of games to parse per file?:', args.number_of_games)
print('Print every how many number of games?:', args.batch_of_games)
print('Dumping to JSON?:', args.dump_json)
print('Dumping to CSV?:', args.dump_csv)
print('Unique batch identifier?:', args.unique_batch_identifier)
print('Dumping to JSON and CSV where?:', args.output_dir)
print('------------------------------')
print('Getting moves?:', args.moves)
print('Getting Zobrist hash?:', args.zobrist_hash)
print('Getting Board 2d?:', args.board_2d)
print('Getting evals?:', args.evals)
print('Getting engine evals?:', args.engine_evals)
print('Getting comments?:', args.comments)
print('Getting center control?:', args.center_control)
print('Getting diagonal control?:', args.diagonal_control)
print('Getting pins?:', args.pins)
print()
batch = str(args.unique_batch_identifier)
tasks = []
for file_name in args.files_list:
pgn = None
try:
pgn = open(file_name)
except Exception as e:
print("File not found: {}!".format(file_name))
t = threading.Thread(target=task.run_task, args=[pgn, args, batch])
tasks.append(t)
for t in tasks:
t.start()
for t in tasks:
t.join()
print("DONE!")