superscript.pv v 0.0.0.008

data.py created
This commit is contained in:
art 2020-03-03 18:02:24 -06:00
parent 0d5dea9bc9
commit 09e6dc16f3
5 changed files with 70 additions and 18 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ data analysis/test.ipynb
data analysis/.ipynb_checkpoints/test-checkpoint.ipynb data analysis/.ipynb_checkpoints/test-checkpoint.ipynb
.vscode/settings.json .vscode/settings.json
.vscode .vscode
data analysis/arthur_pull.ipynb

Binary file not shown.

55
data analysis/data.py Normal file
View File

@ -0,0 +1,55 @@
import requests
import pymongo
import pandas as pd
def req_event_matches(eventkey,apikey):
headers={'X-TBA-Auth-Key':apikey}
r=requests.get('https://www.thebluealliance.com/api/v3/event/'+eventkey+'/matches/simple', headers=headers)
return r
def get_match_data(request):
if request.status_code == 200:
x=[]
for i in sorted(request.json(), key=lambda i: i['actual_time']):
x.append([[i['alliances']['red']['team_keys'], i['alliances']['blue']['team_keys']],i['winning_alliance']])
return x
def get_team_match_data(apikey, competition, team_num):
client = pymongo.MongoClient(apikey)
db = client.data_scouting
mdata = db.matchdata
out = {}
for i in mdata.find({"competition" : competition, "team_scouted": team_num}):
out[i['match']] = i['data']
return pd.DataFrame(out)
def get_team_pit_data(apikey, competition, team_num):
client = pymongo.MongoClient(apikey)
db = client.data_scouting
mdata = db.pitdata
out = {}
for i in mdata.find({"competition" : competition, "team_scouted": team_num}):
out[i['match']] = i['data']
return pd.DataFrame(out)
def unkeyify_2l(layered_dict):
out = {}
for i in layered_dict.keys():
add = []
sortkey = []
for j in layered_dict[i].keys():
add.append([j,layered_dict[i][j]])
add.sort(key = lambda x: x[0])
out[i] = list(map(lambda x: x[1], add))
return out
def get_data_formatted(apikey, competition):
client = pymongo.MongoClient(apikey)
db = client.data_scouting
mdata = db.teamlist
x=mdata.find_one({"competition":competition})
out = {}
for i in x:
try:
out[int(i)] = unkeyify_2l(get_team_match_data(apikey, competition, int(i)).transpose().to_dict())
except:
pass
return out

View File

@ -3,10 +3,14 @@
# Notes: # Notes:
# setup: # setup:
__version__ = "0.0.0.007" __version__ = "0.0.0.008"
# changelog should be viewed using print(analysis.__changelog__) # changelog should be viewed using print(analysis.__changelog__)
__changelog__ = """changelog: __changelog__ = """changelog:
0.0.0.008:
- added data import
- removed tba import
- finished main method
0.0.0.007: 0.0.0.007:
- added load_config - added load_config
- optimized simpleloop for readibility - optimized simpleloop for readibility
@ -48,7 +52,7 @@ from analysis import analysis as an
from numba import jit from numba import jit
import numpy as np import numpy as np
import pickle import pickle
import tba import data as d
try: try:
from analysis import trueskill as Trueskill from analysis import trueskill as Trueskill
except: except:
@ -56,16 +60,19 @@ except:
def main(): def main():
while(True): while(True):
config = load_config("config.csv") competition, config = load_config("config.csv")
simpleloop(data, config) apikey = an.load_csv("keys.txt")[0][0]
data = d.get_data_formatted(apikey, competition)
results = simpleloop(data, config)
print(results)
def load_config(file): def load_config(file):
config_vector = {} config_vector = {}
file = an.load_csv(file) file = an.load_csv(file)
for line in file: for line in file[2:]:
config_vector[line[0]] = line[1:] config_vector[line[0]] = line[2:]
return config_vector return (file[0][0], config_vector)
def simpleloop(data, tests): # expects 3D array with [Team][Variable][Match] def simpleloop(data, tests): # expects 3D array with [Team][Variable][Match]
return_vector = {} return_vector = {}

View File

@ -1,11 +0,0 @@
import requests
def req_event_matches(eventkey,apikey):
headers={'X-TBA-Auth-Key':apikey}
r=requests.get('https://www.thebluealliance.com/api/v3/event/'+eventkey+'/matches/simple', headers=headers)
return r
def get_match_data(request):
if request.status_code == 200:
x=[]
for i in sorted(request.json(), key=lambda i: i['actual_time']):
x.append([[i['alliances']['red']['team_keys'], i['alliances']['blue']['team_keys']],i['winning_alliance']])
return x