print all training stats after GPX processing
This commit is contained in:
parent
ff2dbd8906
commit
320123ad74
3
main.py
3
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__':
|
||||
|
20
stats.py
Normal file
20
stats.py
Normal file
@ -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)"]))
|
Loading…
x
Reference in New Issue
Block a user