geo-activity-playground 0.40.1__py3-none-any.whl → 0.42.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. geo_activity_playground/alembic/versions/38882503dc7c_add_tags_to_activities.py +70 -0
  2. geo_activity_playground/alembic/versions/script.py.mako +0 -6
  3. geo_activity_playground/core/activities.py +21 -44
  4. geo_activity_playground/core/datamodel.py +121 -60
  5. geo_activity_playground/core/enrichment.py +11 -4
  6. geo_activity_playground/core/missing_values.py +13 -0
  7. geo_activity_playground/core/test_missing_values.py +19 -0
  8. geo_activity_playground/explorer/tile_visits.py +1 -1
  9. geo_activity_playground/webui/app.py +7 -3
  10. geo_activity_playground/webui/blueprints/activity_blueprint.py +38 -13
  11. geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py +50 -25
  12. geo_activity_playground/webui/blueprints/calendar_blueprint.py +12 -4
  13. geo_activity_playground/webui/blueprints/eddington_blueprints.py +253 -0
  14. geo_activity_playground/webui/blueprints/entry_views.py +30 -15
  15. geo_activity_playground/webui/blueprints/explorer_blueprint.py +83 -9
  16. geo_activity_playground/webui/blueprints/settings_blueprint.py +32 -0
  17. geo_activity_playground/webui/blueprints/summary_blueprint.py +102 -42
  18. geo_activity_playground/webui/columns.py +37 -0
  19. geo_activity_playground/webui/templates/activity/edit.html.j2 +15 -0
  20. geo_activity_playground/webui/templates/activity/show.html.j2 +27 -5
  21. geo_activity_playground/webui/templates/bubble_chart/index.html.j2 +24 -8
  22. geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2 +150 -0
  23. geo_activity_playground/webui/templates/elevation_eddington/index.html.j2 +150 -0
  24. geo_activity_playground/webui/templates/explorer/server-side.html.j2 +72 -0
  25. geo_activity_playground/webui/templates/home.html.j2 +14 -5
  26. geo_activity_playground/webui/templates/page.html.j2 +10 -1
  27. geo_activity_playground/webui/templates/settings/index.html.j2 +9 -0
  28. geo_activity_playground/webui/templates/settings/tags-edit.html.j2 +17 -0
  29. geo_activity_playground/webui/templates/settings/tags-list.html.j2 +19 -0
  30. geo_activity_playground/webui/templates/settings/tags-new.html.j2 +17 -0
  31. geo_activity_playground/webui/templates/summary/index.html.j2 +91 -2
  32. {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/METADATA +2 -1
  33. {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/RECORD +37 -27
  34. {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/WHEEL +1 -1
  35. geo_activity_playground/webui/blueprints/eddington_blueprint.py +0 -194
  36. /geo_activity_playground/webui/templates/eddington/{index.html.j2 → distance.html.j2} +0 -0
  37. {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/LICENSE +0 -0
  38. {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/entry_points.txt +0 -0
@@ -3,21 +3,23 @@ geo_activity_playground/__main__.py,sha256=eL7NlKydYrzi4ikTvvKmlwkEFxx0V6CXOHOhR
3
3
  geo_activity_playground/alembic/README,sha256=MVlc9TYmr57RbhXET6QxgyCcwWP7w-vLkEsirENqiIQ,38
4
4
  geo_activity_playground/alembic/env.py,sha256=46oMzwSROaAsYuYWTd46txFdRLD3adm_SCn01A_ex8Q,2081
5
5
  geo_activity_playground/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
6
+ geo_activity_playground/alembic/versions/38882503dc7c_add_tags_to_activities.py,sha256=HmvYgHlVodHB7xyigg7zHkFXSi1znWqKfOHcd6y9sZE,3157
6
7
  geo_activity_playground/alembic/versions/451e7836b53d_add_square_planner_bookmark.py,sha256=WrmlDllnJECg6cSOeS05wYCa977_SXbJUV5khDSzntw,1082
7
8
  geo_activity_playground/alembic/versions/63d3b7f6f93c_initial_version.py,sha256=YTnnENkQ8WqLz7PFof7tUWNkWcoHGkAfAM52x1N9umo,3029
8
9
  geo_activity_playground/alembic/versions/93cc82ad1b60_add_parametricplotspec.py,sha256=P9nG348kz6Wi2lD8lJ_f-0juBtlJb1tqBWYqP2XMQPE,1365
9
10
  geo_activity_playground/alembic/versions/ab83b9d23127_add_upstream_id.py,sha256=Wz02lBP2r7-09DjuQP8u8i7ypQ2SZU5RUc422-_ZBDk,851
10
11
  geo_activity_playground/alembic/versions/b03491c593f6_add_crop_indices.py,sha256=1pt7aes0PWJXZ98HxqeDK-ehaU9KLApjCmZYoqCa8V0,975
11
12
  geo_activity_playground/alembic/versions/e02e27876deb_add_square_planner_bookmark_name.py,sha256=Y0OMxp5z_-CQ83rww6GEBFRawXu0J0pLrLArgSjJ7wQ,866
12
- geo_activity_playground/alembic/versions/script.py.mako,sha256=3qBrHBf7F7ChKDUIdiNItiSXrDpgQdM7sR0YKzpaC50,689
13
+ geo_activity_playground/alembic/versions/script.py.mako,sha256=JADdI7OljvzEw8JTwKoIw589EZWmKBjtqdRsjnpNd_c,578
13
14
  geo_activity_playground/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- geo_activity_playground/core/activities.py,sha256=R3RDvOkHyWL2Wr-Bgqjgr5wDjVqaJ3WSECL2fbMyiu8,5485
15
+ geo_activity_playground/core/activities.py,sha256=R3S5sLsT3Eot2P7TcR2pd35YrkICMjjV38I2v6ewzqE,4597
15
16
  geo_activity_playground/core/config.py,sha256=eGWWbNfHa6H64AHCnFYTsAJ7-pWi-PhyxL4hjZ4u03U,5256
16
17
  geo_activity_playground/core/coordinates.py,sha256=tDfr9mlXhK6E_MMIJ0vYWVCoH0Lq8uyuaqUgaa8i0jg,966
17
- geo_activity_playground/core/datamodel.py,sha256=EHfZEYL4Dc881R5fL7eiJ24867NYgAbdXtRYI_I-sPI,10279
18
- geo_activity_playground/core/enrichment.py,sha256=kc9747ocSs2_3R7oW9Rjs3_lKP37gdvBUbyWpILaqHc,7346
18
+ geo_activity_playground/core/datamodel.py,sha256=IAjgTwUv-kfP1reep3YMyCIuo74dZjrvZt3ZQK6p19g,11823
19
+ geo_activity_playground/core/enrichment.py,sha256=RYfnBZgPsgdwuIv1byMo5Hh3JJjoFiG6CDugsE9WVKk,7614
19
20
  geo_activity_playground/core/heart_rate.py,sha256=-S3WAhS7AOywrw_Lk5jfuo_fu6zvZQ1VtjwEKSycWpU,1542
20
21
  geo_activity_playground/core/meta_search.py,sha256=naErjAC7ZCFhOF6d492kbegZxCdzbpGcJvjQLJTE4xE,5016
22
+ geo_activity_playground/core/missing_values.py,sha256=ByS7EVynohXga9IRlPOlyS8TY2qQ7bve9nJlA7za0KI,242
21
23
  geo_activity_playground/core/parametric_plot.py,sha256=IefPc6lwthxowvjUDA5wu23oBSw9jq399l04gSaNrOQ,3880
22
24
  geo_activity_playground/core/paths.py,sha256=aUXGuNn9hBvGPQWPoUJeImHN0PB0fS1tja1tm2eq8mA,2595
23
25
  geo_activity_playground/core/privacy_zones.py,sha256=4TumHsVUN1uW6RG3ArqTXDykPVipF98DCxVBe7YNdO8,512
@@ -27,6 +29,7 @@ geo_activity_playground/core/summary_stats.py,sha256=v5FtWnE1imDF5axI6asVN55wCrl
27
29
  geo_activity_playground/core/tasks.py,sha256=-_9cxekoHSWzCW4XblNeqrwi2tTqr5AE7_-p8fdqhwc,2886
28
30
  geo_activity_playground/core/test_datamodel.py,sha256=-VrGHgx5Z3MSQPqHGmmm7atRJYbg5y_ukvRHKxk22PI,569
29
31
  geo_activity_playground/core/test_meta_search.py,sha256=zhuD343Xce-4Fkznw81DHQ7pK5eyX5UbcyCHuYRKsr8,3091
32
+ geo_activity_playground/core/test_missing_values.py,sha256=zlyrKHLCzUSBdktiy87oKz7_bySpfohVPxG1HRGRHqw,278
30
33
  geo_activity_playground/core/test_summary_stats.py,sha256=qH_45mPRFD2H-Rr0Ku-RYc67vhC7qKxbPr7J2F36uV8,3081
31
34
  geo_activity_playground/core/test_tiles.py,sha256=zce1FxNfsSpOQt66jMehdQRVoNdl-oiFydx6iVBHZXM,764
32
35
  geo_activity_playground/core/test_time_conversion.py,sha256=Sh6nZA3uCTOdZTZa3yOijtR0m74QtZu2mcWXsDNnyQI,984
@@ -34,7 +37,7 @@ geo_activity_playground/core/tiles.py,sha256=lV6X1Uc9XQecu2LALIvxpnMcLsVtWx7JczJ
34
37
  geo_activity_playground/core/time_conversion.py,sha256=x5mXG6Y4GtdX7CBmwucGNSWBp9JQJDbZ7u0JkdUY1Vs,379
35
38
  geo_activity_playground/explorer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
39
  geo_activity_playground/explorer/grid_file.py,sha256=YNL_c4O1-kxaajATJwj4ZLywCL5Hpj9qy2h-F7rk8Yg,3260
37
- geo_activity_playground/explorer/tile_visits.py,sha256=C8IpAGmrjMGYhyTVK-tl2ptM9-CXF2mwibhJYn7gLf8,13905
40
+ geo_activity_playground/explorer/tile_visits.py,sha256=ESHI67xV53gmhMXAFzoPR0Uz7lc8T2gViyvjckrBo90,13907
38
41
  geo_activity_playground/explorer/video.py,sha256=7j6Qv3HG6On7Tn7xh7Olwrx_fbQnfzS7CeRg3TEApHg,4397
39
42
  geo_activity_playground/heatmap_video.py,sha256=I8i1uVvbbPUXVtvLAROaLy58nQoUPnuMCZkERWNkQjg,3318
40
43
  geo_activity_playground/importers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -47,25 +50,26 @@ geo_activity_playground/importers/test_csv_parser.py,sha256=nOTVTdlzIY0TDcbWp7xN
47
50
  geo_activity_playground/importers/test_directory.py,sha256=_fn_-y98ZyElbG0BRxAmGFdtGobUShPU86SdEOpuv-A,691
48
51
  geo_activity_playground/importers/test_strava_api.py,sha256=7b8bl5Rh2BctCmvTPEhCadxtUOq3mfzuadD6F5XxRio,398
49
52
  geo_activity_playground/webui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- geo_activity_playground/webui/app.py,sha256=xoRnF2ISq74v48ZBpyrCxEFPCwtS4fw3WZvWbvExSmE,7208
53
+ geo_activity_playground/webui/app.py,sha256=fUbKRpQh558D19cPUOHScSG-Cur61B41rVDsAtxQt-4,7281
51
54
  geo_activity_playground/webui/authenticator.py,sha256=jtQqvpVHa_eLTAulmvvJgDRoCWOEege49G9zn3MfYk8,1394
52
55
  geo_activity_playground/webui/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=A0hxhdEY_Ma5AEWT3Gv70Ys70DWSqSJOEdQAMeNb5CU,24337
56
+ geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=NDFw5v765uGpaX2kMIH09EALsZmYYLSJRkrn7bq_Wvo,25258
54
57
  geo_activity_playground/webui/blueprints/auth_blueprint.py,sha256=_VZeP3VN626BoOOZUkNVnuw9v-cEOrkHz5lhFPmxqMY,784
55
- geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py,sha256=tiqDf-DZLdjm8faatZ5fqbh7gkII2KmBPRtkcKqoLIA,2194
56
- geo_activity_playground/webui/blueprints/calendar_blueprint.py,sha256=L6R8xieYYXeEMDzJs-MjWax1JAHhppWy3r3U8MyCOAk,2585
57
- geo_activity_playground/webui/blueprints/eddington_blueprint.py,sha256=DHvq1gY8-C7xsHp5LxqM3eN2eAOwbyLyBH3J8E0zXps,6937
58
- geo_activity_playground/webui/blueprints/entry_views.py,sha256=-CRrE5b9QYyrmQhLYSW0qo20XRY9RDDJUepJCwFoKOs,2322
58
+ geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py,sha256=xESHzYxlbhz4oNDuxV0A70eVKpFwz84pYC3q_YVZZg8,2812
59
+ geo_activity_playground/webui/blueprints/calendar_blueprint.py,sha256=4EIBZ8rdXEu3tbl1faVlRwHb8Qp0JuMc3eyxwMkq6g8,2848
60
+ geo_activity_playground/webui/blueprints/eddington_blueprints.py,sha256=Umb2wtKmAXuQZEXt0d985qMILtvqc3vxj_yXymnzmUs,8702
61
+ geo_activity_playground/webui/blueprints/entry_views.py,sha256=RK2ypZO75DhweGjoKK7pG699urDB7twFkWaS2CyWmtw,2824
59
62
  geo_activity_playground/webui/blueprints/equipment_blueprint.py,sha256=juQ5L2BlrECb00LBbiY2yc0b8W_B9Y3fPwtbiaRfgpo,5634
60
- geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=ZNDRwtmYvWGyqDe3fszGp0DR5qzRRxRss32ZGPRuXsY,12469
63
+ geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=6w6seOCVf7Z5y4BBtgVwoZ4t8qastnm7ViX8Bs_zj2w,15566
61
64
  geo_activity_playground/webui/blueprints/heatmap_blueprint.py,sha256=iHI5YJYhX7ZOlzTgzl2efIRDzt3UMYCx7X4-LVd0MWk,8702
62
65
  geo_activity_playground/webui/blueprints/plot_builder_blueprint.py,sha256=7HrjpBM-608HSOh0i31Lmt7yDNMfWlEn6G7DlYqlV9w,3031
63
66
  geo_activity_playground/webui/blueprints/search_blueprint.py,sha256=Sv_KL1Cdai26y51qVfI-5jZLhtElREsEar1dbR_VAC4,2275
64
- geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=UUv63BDQFnBPq8fLDdlWHd5mxL5qIgcGUuqQRFemyEA,16108
67
+ geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=p_17BC2ZQyPu5VSl7evc5YyQmB3-L-WxgzOTv9UJsK0,17245
65
68
  geo_activity_playground/webui/blueprints/square_planner_blueprint.py,sha256=xVaxJxmt8Dysl3UL9f2y__LVLtTH2Np1Ust4OSXKRAk,4746
66
- geo_activity_playground/webui/blueprints/summary_blueprint.py,sha256=-CArocRkcjzC7aTOCsG_8BnLJSX2b9X9C79mesyfvRw,9465
69
+ geo_activity_playground/webui/blueprints/summary_blueprint.py,sha256=rK4LGR2Rpioy4wSqNYuyRn4WxaWeBLensJ3PmAd-ouY,11469
67
70
  geo_activity_playground/webui/blueprints/tile_blueprint.py,sha256=YzZf9OrNdjhc1_j4MtO1DMcw1uCv29ueNsYd-mWqgbg,837
68
71
  geo_activity_playground/webui/blueprints/upload_blueprint.py,sha256=_VeGu08vlRZlRn5J4t7VdBk2TTW5GXB4JUcge9mbX9Y,4111
72
+ geo_activity_playground/webui/columns.py,sha256=hSW8bFVKRUMBlWZYAN-tZ_tfED3VDQK75e4Zzw7_jZ0,642
69
73
  geo_activity_playground/webui/flasher.py,sha256=Covc1D9cO_jjokRWnvyiXCc2tfp3aZ8XkNqFdA1AXtk,500
70
74
  geo_activity_playground/webui/plot_util.py,sha256=5Uesjj-xcMskQX2z9viDZYHSxLGrH2a5dHA1ogsJW9U,261
71
75
  geo_activity_playground/webui/search_util.py,sha256=uAxnN9Tdei8IKV6Lqx4z5UIJf0_HKLd9NG9meiu5u4s,2202
@@ -104,21 +108,24 @@ geo_activity_playground/webui/static/vega@5,sha256=5DLHUaY2P0ph2mKSDMfX69E88J2Cl
104
108
  geo_activity_playground/webui/static/web-app-manifest-192x192.png,sha256=eEImN6iWfSv-EnSNPL5WbX84PKakse_8VZMBPWWye3o,13582
105
109
  geo_activity_playground/webui/static/web-app-manifest-512x512.png,sha256=vU9oQ4HnQerFDZVzcAT9twj4_Doc6_9v9wVvoRI-f_E,48318
106
110
  geo_activity_playground/webui/templates/activity/day.html.j2,sha256=CHEvxlZralCm3-kTbZsGn0xj9VdSv9V5zalPSoAluus,2810
107
- geo_activity_playground/webui/templates/activity/edit.html.j2,sha256=9HDFjYfUQBB6HAgeIZppFPlpiJ1vDZWcGyP7uYG_Hnw,1369
111
+ geo_activity_playground/webui/templates/activity/edit.html.j2,sha256=r979JPqaZi_2ymTykxpkjdpw0D2tsB9VJaf7OaGPaME,1961
108
112
  geo_activity_playground/webui/templates/activity/lines.html.j2,sha256=_ZDg1ruW-9UMJfOudy1-uY_-IcSSaagq7tPCih5Bb8g,1079
109
113
  geo_activity_playground/webui/templates/activity/name.html.j2,sha256=7Wbh3IrVL5lMRve467H0P10Shn5FzGpaXLhV0H-X4Hk,2725
110
- geo_activity_playground/webui/templates/activity/show.html.j2,sha256=NKXplqDMkzS5z7JKJliNr5bKxTG6cr3ahd6vrmN0280,8322
114
+ geo_activity_playground/webui/templates/activity/show.html.j2,sha256=ciUMJAU56nUVbl61NiVuJ4vAr1f7dPrx2kRJzkNrE9E,9273
111
115
  geo_activity_playground/webui/templates/activity/trim.html.j2,sha256=3oAXQab6QqWjGBC9KCvWNOVn8uRmxoDLj3hx_O63TXc,1836
112
116
  geo_activity_playground/webui/templates/auth/index.html.j2,sha256=ILQ5HvTEYc3OrtOAIFt1VrqWorVD70V9DC342znmP70,579
113
- geo_activity_playground/webui/templates/bubble_chart/index.html.j2,sha256=pqyafhIgL97FuD4_-lMb8lRWC3rejwrjawbmfp17XFY,1143
117
+ geo_activity_playground/webui/templates/bubble_chart/index.html.j2,sha256=yd7lWjtxxVmJZqCiXb0Y1gMEOQ7LQYJXEdpE7JB1OZY,1616
114
118
  geo_activity_playground/webui/templates/calendar/index.html.j2,sha256=8dV9yeDwfv0Mm81mhiPHN5r3hdPUWl1Yye03x0Rqbo8,1601
115
119
  geo_activity_playground/webui/templates/calendar/month.html.j2,sha256=IEhGqknL69okX5brMzTgZdnmrgUQLmGGkDE5zd7RG7s,2008
116
- geo_activity_playground/webui/templates/eddington/index.html.j2,sha256=_3oxzHhC_s9ATtvGmuIWKqvjIQYJNvdCxmYnOyN9QnY,3716
120
+ geo_activity_playground/webui/templates/eddington/distance.html.j2,sha256=_3oxzHhC_s9ATtvGmuIWKqvjIQYJNvdCxmYnOyN9QnY,3716
121
+ geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2,sha256=an8eaZIMFpGwQiwVWkNhLtu6djl_NU7eTaOsBEiMUK8,4931
122
+ geo_activity_playground/webui/templates/elevation_eddington/index.html.j2,sha256=pG7w3QY0yZKI322_EzDgCc1c1p5k2Xl-WqemiKa4MVY,4969
117
123
  geo_activity_playground/webui/templates/equipment/index.html.j2,sha256=wwrGmfCCBn-5CzMymi80hg3lNMZ7J1fAWWl_2zHeiMc,1845
118
124
  geo_activity_playground/webui/templates/explorer/index.html.j2,sha256=3t9ikAF6oMvEaVlS3Kb1tj9ngomIQlatzqPnqVsEDKA,6908
125
+ geo_activity_playground/webui/templates/explorer/server-side.html.j2,sha256=3eYh3mmgPDmxFjH6Ofx1iw-jptcD9ctZixYh59mka3w,2496
119
126
  geo_activity_playground/webui/templates/heatmap/index.html.j2,sha256=kTVvEt-GmSNebDlVMa6zwyIuP0mJcZQFuqj-IY8JV5U,1359
120
- geo_activity_playground/webui/templates/home.html.j2,sha256=vQp9uMn7BLY7pexWJVpQVWN8ZbbtWZvkW_hYSkYQeZs,2212
121
- geo_activity_playground/webui/templates/page.html.j2,sha256=1if_h8w2nsq9wNut-nzlpTNsPsQTxV0yPMdgUvz7bz8,11250
127
+ geo_activity_playground/webui/templates/home.html.j2,sha256=L0wVZ6RA3mel1Wt7ZD7PbaMUEEcdO2XLDy1e1ZdRPUY,2697
128
+ geo_activity_playground/webui/templates/page.html.j2,sha256=d8-wLkWPzcuvrbkAT1viTbeVyH29__TMyAoMjYmzuVs,11939
122
129
  geo_activity_playground/webui/templates/plot_builder/edit.html.j2,sha256=x5Ki425me3HY6CcBQ37le9g8rCpbOxFVkdr0N_L84-g,2230
123
130
  geo_activity_playground/webui/templates/plot_builder/index.html.j2,sha256=fBuGLT2HIwlgz5eGeKXOdIDqzDSQoY99w-hyt_0JP-w,832
124
131
  geo_activity_playground/webui/templates/search/index.html.j2,sha256=_kxTgsdbT8o-4ryW0pvyWE7a-rOs7xzGUpdSPp8Q1is,1320
@@ -126,7 +133,7 @@ geo_activity_playground/webui/templates/search_form.html.j2,sha256=TG9xIql0HnhsX
126
133
  geo_activity_playground/webui/templates/settings/admin-password.html.j2,sha256=VYwddpObD1RpeTH5Dm4y7VtmT7kwURDCIjxyzJeq08c,495
127
134
  geo_activity_playground/webui/templates/settings/color-schemes.html.j2,sha256=iR91Wxd2_TMuIo9dBDZBrWSUGHNwTwzC6O8oNH-XBt4,1653
128
135
  geo_activity_playground/webui/templates/settings/heart-rate.html.j2,sha256=UPT3MegRgSeff36lhCo0l3ZwhqNSIg5gM6h2s32GkCY,4255
129
- geo_activity_playground/webui/templates/settings/index.html.j2,sha256=3a62-F3EWZpY-n0zB8sBgQSx_HUyr_2OWOa5neln94o,4648
136
+ geo_activity_playground/webui/templates/settings/index.html.j2,sha256=sphzznODrgb9I3SdYoV8zsmnh2FHxzt5NhhrVPPO9wY,5062
130
137
  geo_activity_playground/webui/templates/settings/manage-equipments.html.j2,sha256=vPGGlwyG_xMZc4a6JdajwWMJBfN1lBNBtDSt6QPJBiY,1585
131
138
  geo_activity_playground/webui/templates/settings/manage-kinds.html.j2,sha256=382VW-cEe0iPJ8TNL2jrcRtVYb_RFdzDyeC1ncpWZ9M,1616
132
139
  geo_activity_playground/webui/templates/settings/metadata-extraction.html.j2,sha256=0g9RlHFKipN45RaH_FANWnY1lfXUkKjtc_9B-vJ19LQ,2298
@@ -134,12 +141,15 @@ geo_activity_playground/webui/templates/settings/privacy-zones.html.j2,sha256=Kp
134
141
  geo_activity_playground/webui/templates/settings/segmentation.html.j2,sha256=QV72TZcIxqql-vEsq2lKHzo5UxoxeeXkRA9se46GWKU,1187
135
142
  geo_activity_playground/webui/templates/settings/sharepic.html.j2,sha256=qZkfEpd4CtKKMaSSVadqvNEgMRYLV-0X-pw5-nJvukk,678
136
143
  geo_activity_playground/webui/templates/settings/strava.html.j2,sha256=GCE5gskQ6xJ8AM1qGrrUVLDOiuqg510mWzzsZjia0gk,2211
144
+ geo_activity_playground/webui/templates/settings/tags-edit.html.j2,sha256=OAXg_P-ZN7-LLvvzP0xVtadxb0t0TDD8xiWniL4U1FM,378
145
+ geo_activity_playground/webui/templates/settings/tags-list.html.j2,sha256=AsFhWyMejbNMvOgWhqRtAiJGK8eqkHgECZ7mKFpQWkA,366
146
+ geo_activity_playground/webui/templates/settings/tags-new.html.j2,sha256=xi6KbwydDVrUJM4_ty4KbMa74k3QaoyZhZAn2paERnM,358
137
147
  geo_activity_playground/webui/templates/square_planner/index.html.j2,sha256=-OnY2nQCgZCslOzf28ogZwFykwF8tZm7PgFwOE3eBDk,8176
138
- geo_activity_playground/webui/templates/summary/index.html.j2,sha256=T8YUGMXaZYeVl7Q5-H1YhdnGo3bx_LtExPQ60qj_Zhs,5638
148
+ geo_activity_playground/webui/templates/summary/index.html.j2,sha256=ozGuoF36RBUN56Cnc8AFFguRdu_c4dP4eAotw8aidE8,9262
139
149
  geo_activity_playground/webui/templates/upload/index.html.j2,sha256=I1Ix8tDS3YBdi-HdaNfjkzYXVVCjfUTe5PFTnap1ydc,775
140
150
  geo_activity_playground/webui/templates/upload/reload.html.j2,sha256=YZWX5eDeNyqKJdQAywDBcU8DZBm22rRBbZqFjrFrCvQ,556
141
- geo_activity_playground-0.40.1.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
142
- geo_activity_playground-0.40.1.dist-info/METADATA,sha256=A-lrCQSSUmsBauIvH6dFq3Gbn7nlKQmstaPaN78TInw,1758
143
- geo_activity_playground-0.40.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
144
- geo_activity_playground-0.40.1.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
145
- geo_activity_playground-0.40.1.dist-info/RECORD,,
151
+ geo_activity_playground-0.42.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
152
+ geo_activity_playground-0.42.0.dist-info/METADATA,sha256=inIY4eJNLOogHUVXAvLBuBYmxc_Cp1p0FipaGN0SJq8,1809
153
+ geo_activity_playground-0.42.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
154
+ geo_activity_playground-0.42.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
155
+ geo_activity_playground-0.42.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,194 +0,0 @@
1
- import datetime
2
-
3
- import altair as alt
4
- import numpy as np
5
- import pandas as pd
6
- from flask import Blueprint
7
- from flask import render_template
8
- from flask import request
9
-
10
- from ...core.activities import ActivityRepository
11
- from ...core.meta_search import apply_search_query
12
- from ..search_util import search_query_from_form
13
- from ..search_util import SearchQueryHistory
14
-
15
-
16
- def register_eddington_blueprint(
17
- repository: ActivityRepository, search_query_history: SearchQueryHistory
18
- ) -> Blueprint:
19
- blueprint = Blueprint("eddington", __name__, template_folder="templates")
20
-
21
- @blueprint.route("/")
22
- def index():
23
- query = search_query_from_form(request.args)
24
- search_query_history.register_query(query)
25
- activities = (
26
- apply_search_query(repository.meta, query)
27
- .dropna(subset=["start", "distance_km"])
28
- .copy()
29
- )
30
-
31
- activities["year"] = [start.year for start in activities["start"]]
32
- activities["date"] = [start.date() for start in activities["start"]]
33
- activities["isoyear"] = [
34
- start.isocalendar().year for start in activities["start"]
35
- ]
36
- activities["isoweek"] = [
37
- start.isocalendar().week for start in activities["start"]
38
- ]
39
-
40
- en_per_day, eddington_df_per_day = _get_distances_per_group(
41
- activities.groupby("date")
42
- )
43
- en_per_week, eddington_df_per_week = _get_distances_per_group(
44
- activities.groupby(["isoyear", "isoweek"])
45
- )
46
-
47
- return render_template(
48
- "eddington/index.html.j2",
49
- eddington_number=en_per_day,
50
- logarithmic_plot=_make_eddington_plot(
51
- eddington_df_per_day, en_per_day, "Days"
52
- ),
53
- eddington_per_week=en_per_week,
54
- eddington_per_week_plot=_make_eddington_plot(
55
- eddington_df_per_week, en_per_week, "Weeks"
56
- ),
57
- eddington_table=eddington_df_per_day.loc[
58
- (eddington_df_per_day["distance_km"] > en_per_day)
59
- & (eddington_df_per_day["distance_km"] <= en_per_day + 10)
60
- ].to_dict(orient="records"),
61
- eddington_table_weeks=eddington_df_per_week.loc[
62
- (eddington_df_per_week["distance_km"] > en_per_week)
63
- & (eddington_df_per_week["distance_km"] <= en_per_week + 10)
64
- ].to_dict(orient="records"),
65
- query=query.to_jinja(),
66
- yearly_eddington=_get_yearly_eddington(activities),
67
- eddington_number_history_plot=_get_eddington_number_history(activities),
68
- )
69
-
70
- return blueprint
71
-
72
-
73
- def _get_distances_per_group(grouped) -> tuple[int, pd.DataFrame]:
74
- sum_per_group = grouped.apply(
75
- lambda group: int(sum(group["distance_km"])), include_groups=False
76
- )
77
- counts = dict(zip(*np.unique(sorted(sum_per_group), return_counts=True)))
78
- eddington = pd.DataFrame(
79
- {"distance_km": d, "count": counts.get(d, 0)}
80
- for d in range(max(counts.keys()) + 1)
81
- )
82
- eddington["total"] = eddington["count"][::-1].cumsum()[::-1]
83
- en = eddington.loc[eddington["total"] >= eddington["distance_km"]][
84
- "distance_km"
85
- ].iloc[-1]
86
- eddington["missing"] = eddington["distance_km"] - eddington["total"]
87
- return en, eddington
88
-
89
-
90
- def _make_eddington_plot(eddington_df: pd.DataFrame, en: int, interval: str) -> dict:
91
- x = list(range(1, max(eddington_df["distance_km"]) + 1))
92
- return (
93
- (
94
- (
95
- alt.Chart(
96
- eddington_df,
97
- height=500,
98
- width=800,
99
- title=f"Eddington Number {en}",
100
- )
101
- .mark_area(interpolate="step")
102
- .encode(
103
- alt.X(
104
- "distance_km",
105
- scale=alt.Scale(domainMin=0),
106
- title="Distance / km",
107
- ),
108
- alt.Y(
109
- "total",
110
- scale=alt.Scale(domainMax=en + 10),
111
- title=f"{interval} exceeding distance",
112
- ),
113
- [
114
- alt.Tooltip("distance_km", title="Distance / km"),
115
- alt.Tooltip("total", title=f"{interval} exceeding distance"),
116
- alt.Tooltip("missing", title=f"{interval} missing for next"),
117
- ],
118
- )
119
- )
120
- + (
121
- alt.Chart(pd.DataFrame({"distance_km": x, "total": x}))
122
- .mark_line(color="red")
123
- .encode(alt.X("distance_km"), alt.Y("total"))
124
- )
125
- )
126
- .interactive(bind_x=False)
127
- .to_json(format="vega")
128
- )
129
-
130
-
131
- def _get_eddington_number(distances: pd.Series) -> int:
132
- if len(distances) == 1:
133
- if distances.iloc[0] >= 1:
134
- return 1
135
- else:
136
- 0
137
-
138
- sorted_distances = sorted(distances, reverse=True)
139
- for en, distance in enumerate(sorted_distances, 1):
140
- if distance < en:
141
- return en - 1
142
-
143
-
144
- def _get_yearly_eddington(meta: pd.DataFrame) -> dict[int, int]:
145
- meta = meta.dropna(subset=["start", "distance_km"]).copy()
146
- meta["year"] = [start.year for start in meta["start"]]
147
- meta["date"] = [start.date() for start in meta["start"]]
148
-
149
- yearly_eddington = meta.groupby("year").apply(
150
- lambda group: _get_eddington_number(
151
- group.groupby("date").apply(
152
- lambda group2: int(group2["distance_km"].sum()), include_groups=False
153
- )
154
- ),
155
- include_groups=False,
156
- )
157
- return yearly_eddington.to_dict()
158
-
159
-
160
- def _get_eddington_number_history(meta: pd.DataFrame) -> dict:
161
-
162
- daily_distances = meta.groupby("date").apply(
163
- lambda group2: int(group2["distance_km"].sum()), include_groups=False
164
- )
165
-
166
- eddington_number_history = {"date": [], "eddington_number": []}
167
- top_days = []
168
- for date, distance in daily_distances.items():
169
- if len(top_days) == 0:
170
- top_days.append(distance)
171
- else:
172
- if distance >= top_days[0]:
173
- top_days.append(distance)
174
- top_days.sort()
175
- while top_days[0] < len(top_days):
176
- top_days.pop(0)
177
- eddington_number_history["date"].append(
178
- datetime.datetime.combine(date, datetime.datetime.min.time())
179
- )
180
- eddington_number_history["eddington_number"].append(len(top_days))
181
- history = pd.DataFrame(eddington_number_history)
182
-
183
- return (
184
- alt.Chart(history)
185
- .mark_line(interpolate="step-after")
186
- .encode(
187
- alt.X("date", title="Date"),
188
- alt.Y("eddington_number", title="Eddington number"),
189
- [
190
- alt.Tooltip("date", title="Date"),
191
- alt.Tooltip("eddington_number", title="Eddington number"),
192
- ],
193
- )
194
- ).to_json(format="vega")