From 320123ad74160e8cc1e5a28704f081bb31e5c7da Mon Sep 17 00:00:00 2001 From: Riccardo Berto Date: Mon, 1 Mar 2021 15:45:46 +0100 Subject: [PATCH] print all training stats after GPX processing --- main.py | 3 +++ stats.py | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 stats.py diff --git a/main.py b/main.py index 1fa1655..5927183 100644 --- a/main.py +++ b/main.py @@ -11,6 +11,8 @@ from sqlalchemy.engine import Connection import gpxpy from bs4 import BeautifulSoup +from stats import print_stats + config = configparser.ConfigParser() config.read('config.ini') @@ -117,6 +119,7 @@ def main(): init_database() get_gpx_files_from_mail() db.transaction(process_gpx_files) + print_stats(db) if __name__ == '__main__': diff --git a/stats.py b/stats.py new file mode 100644 index 0000000..8769a77 --- /dev/null +++ b/stats.py @@ -0,0 +1,20 @@ +from sqlalchemy.engine import Connection +from tabulate import tabulate + +def print_stats(db: Connection): + overall_stats = """ + select distinct + td.t::date, + date_trunc('second', training_duration.start_time::time) as start_time, + date_trunc('second', training_duration.end_time::time) as end_time, + training_duration.duration as duration, + round(((t.moving_distance)/1000)::numeric, 2) as distance, + round(( (t.moving_distance / 1000) / (select extract(epoch from training_duration.duration)/3600))::numeric, 1) as pace_kmh + from training t + join training_data td on (t.id = td.training_id) + join training_duration on (t.id = training_duration.id) + order by td.t::date, date_trunc('second', training_duration.start_time::time) asc + """ + + print(tabulate(list(db.execute(overall_stats)), + headers = ["date", "start_time", "end_time", "duration", "distance", "pace (km/h)"])) \ No newline at end of file