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
|
import gpxpy
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
from stats import print_stats
|
||||||
|
|
||||||
|
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read('config.ini')
|
config.read('config.ini')
|
||||||
@ -117,6 +119,7 @@ def main():
|
|||||||
init_database()
|
init_database()
|
||||||
get_gpx_files_from_mail()
|
get_gpx_files_from_mail()
|
||||||
db.transaction(process_gpx_files)
|
db.transaction(process_gpx_files)
|
||||||
|
print_stats(db)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
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