Merge branch 'databse-config' into superscript-v1

Former-commit-id: a64c2c71ca
This commit is contained in:
Arthur Lu 2021-09-22 20:28:55 -07:00 committed by GitHub
commit fb1033e92c
2 changed files with 37 additions and 18 deletions

View File

@ -114,13 +114,13 @@ def unkeyify_2l(layered_dict):
out[i] = list(map(lambda x: x[1], add))
return out
def get_previous_time(apikey):
def get_previous_time(client):
previous_time = get_analysis_flags(apikey, "latest_update")
previous_time = get_analysis_flags(client, "latest_update")
if previous_time == None:
set_analysis_flags(apikey, "latest_update", 0)
set_analysis_flags(client, "latest_update", 0)
previous_time = 0
else:
@ -129,21 +129,29 @@ def get_previous_time(apikey):
return previous_time
def set_current_time(apikey, current_time):
def set_current_time(client, current_time):
set_analysis_flags(apikey, "latest_update", {"latest_update":current_time})
set_analysis_flags(client, "latest_update", {"latest_update":current_time})
def load_match(apikey, competition):
def get_database_config(client):
return get_match_data_formatted(apikey, competition)
return get_analysis_flags(client, "config")["config"]
def load_metric(apikey, competition, match, group_name, metrics):
def set_database_config(client, config):
set_analysis_flags(client, "config", {"config": config})
def load_match(client, competition):
return get_match_data_formatted(client, competition)
def load_metric(client, competition, match, group_name, metrics):
group = {}
for team in match[group_name]:
db_data = get_team_metrics_data(apikey, competition, team)
db_data = get_team_metrics_data(client, competition, team)
if db_data == None:
@ -165,24 +173,24 @@ def load_metric(apikey, competition, match, group_name, metrics):
return group
def load_pit(apikey, competition):
def load_pit(client, competition):
return get_pit_data_formatted(apikey, competition)
return get_pit_data_formatted(client, competition)
def push_match(apikey, competition, results):
def push_match(client, competition, results):
for team in results:
push_team_tests_data(apikey, competition, team, results[team])
push_team_tests_data(client, competition, team, results[team])
def push_metric(apikey, competition, metric):
def push_metric(client, competition, metric):
for team in metric:
push_team_metrics_data(apikey, competition, team, metric[team])
push_team_metrics_data(client, competition, team, metric[team])
def push_pit(apikey, competition, pit):
def push_pit(client, competition, pit):
for variable in pit:
push_team_pit_data(apikey, competition, variable, pit[variable])
push_team_pit_data(client, competition, variable, pit[variable])

View File

@ -16,6 +16,9 @@ __changelog__ = """changelog:
- added profile option to linux superscript to profile runtime of script
- reduced memory usage slightly by consolidating the unwrapped input data
- added debug option, which performs one loop of analysis and dumps results to local files
- added event and time delay options to config
- event delay pauses loop until even listener recieves an update
- time delay pauses loop until the time specified has elapsed since the BEGINNING of previous loop
0.9.3:
- improved data loading performance by removing redundant PyMongo client creation (120s to 14s)
- passed singular instance of PyMongo client as standin for apikey parameter in all data.py functions
@ -205,7 +208,9 @@ sample_json = """{
"climb-mechanism":true,
"attitude":true
}
}
},
"even-delay":false,
"loop-delay":60
}"""
def main(send, verbose = False, profile = False, debug = False):
@ -390,6 +395,12 @@ def main(send, verbose = False, profile = False, debug = False):
set_current_time(client, current_time)
send(stdout, INF, "finished all tests in " + str(time.time() - loop_start) + " seconds, looping")
loop_delay = float(config["loop-delay"])
remaining_time = loop_delay - (time.time() - loop_start)
if remaining_time > 0:
send(stdout, INF, "loop delayed by " + str(remaining_time) + " seconds")
time.sleep(remaining_time)
except KeyboardInterrupt:
send(stdout, INF, "detected KeyboardInterrupt, killing threads")
if "exec_threads" in locals():