-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparse_draft.py
93 lines (70 loc) · 2.53 KB
/
parse_draft.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
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/env python3
"""
Reduce the draft data to a manageable dict
Result is a dict - key is the player_id, list of transactions
Maybe combine the downloads (get-...) with this work but we'll see.
Written by: Al Scherer 2022-01-14
"""
import argparse
import json
import sys
import datetime
# DRAFT = 'data/2023/draft-2023.json'
DRAFT = 'data/2024/draft-2024.json'
DRAFT_DATE = 'Aug 26, 2024'
# ---------------------------------------------------------
def get_args():
"""Get command-line arguments"""
parser = argparse.ArgumentParser(
description='combine_rosters <json player file>',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('-o',
'--outfile',
help='Output filename (default: )',
metavar='outfile',
type=str,
default='')
parser.add_argument('-v',
'--verbose',
help='Be chatty',
action='store_true')
return parser.parse_args()
# ---------------------------------------------------------
def get_data(file_name):
''' get data from json file '''
with open(file_name,'r') as data_file:
data = data_file.read()
details = json.loads(data)
return details
# ---------------------------------------------------------
def get_usable_draft_data(draft):
usable = {}
for draft_data in draft:
player_id = draft_data["metadata"]["player_id"]
usable[player_id] = {}
event_list = []
event_info = {}
event_info["type"] = 'draft'
event_info["roster_id"] = draft_data["roster_id"]
event_info["price"] = int(draft_data["metadata"]["amount"])
event_info["date"] = DRAFT_DATE
event_list.append(event_info)
usable[player_id] = event_list
return usable
# ---------------------------------------------------------
def main() -> None:
""" Main function of app """
args = get_args()
verbose = args.verbose
draft = get_data(DRAFT)
usable_draft_data = get_usable_draft_data(draft)
if verbose:
print (json.dumps(usable_draft_data))
out_fh = open(args.outfile,'wt') if args.outfile else sys.stdout
out_fh.write(json.dumps(usable_draft_data))
print("\nBye, Al!")
print('\nRun at {:%Y%m%d-%H%M%S}'.format(datetime.datetime.now()))
out_fh.close()
# ---------------------------------------------------------
if __name__ == '__main__':
main()