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.
- geo_activity_playground/alembic/versions/38882503dc7c_add_tags_to_activities.py +70 -0
- geo_activity_playground/alembic/versions/script.py.mako +0 -6
- geo_activity_playground/core/activities.py +21 -44
- geo_activity_playground/core/datamodel.py +121 -60
- geo_activity_playground/core/enrichment.py +11 -4
- geo_activity_playground/core/missing_values.py +13 -0
- geo_activity_playground/core/test_missing_values.py +19 -0
- geo_activity_playground/explorer/tile_visits.py +1 -1
- geo_activity_playground/webui/app.py +7 -3
- geo_activity_playground/webui/blueprints/activity_blueprint.py +38 -13
- geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py +50 -25
- geo_activity_playground/webui/blueprints/calendar_blueprint.py +12 -4
- geo_activity_playground/webui/blueprints/eddington_blueprints.py +253 -0
- geo_activity_playground/webui/blueprints/entry_views.py +30 -15
- geo_activity_playground/webui/blueprints/explorer_blueprint.py +83 -9
- geo_activity_playground/webui/blueprints/settings_blueprint.py +32 -0
- geo_activity_playground/webui/blueprints/summary_blueprint.py +102 -42
- geo_activity_playground/webui/columns.py +37 -0
- geo_activity_playground/webui/templates/activity/edit.html.j2 +15 -0
- geo_activity_playground/webui/templates/activity/show.html.j2 +27 -5
- geo_activity_playground/webui/templates/bubble_chart/index.html.j2 +24 -8
- geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2 +150 -0
- geo_activity_playground/webui/templates/elevation_eddington/index.html.j2 +150 -0
- geo_activity_playground/webui/templates/explorer/server-side.html.j2 +72 -0
- geo_activity_playground/webui/templates/home.html.j2 +14 -5
- geo_activity_playground/webui/templates/page.html.j2 +10 -1
- geo_activity_playground/webui/templates/settings/index.html.j2 +9 -0
- geo_activity_playground/webui/templates/settings/tags-edit.html.j2 +17 -0
- geo_activity_playground/webui/templates/settings/tags-list.html.j2 +19 -0
- geo_activity_playground/webui/templates/settings/tags-new.html.j2 +17 -0
- geo_activity_playground/webui/templates/summary/index.html.j2 +91 -2
- {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/METADATA +2 -1
- {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/RECORD +37 -27
- {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/WHEEL +1 -1
- geo_activity_playground/webui/blueprints/eddington_blueprint.py +0 -194
- /geo_activity_playground/webui/templates/eddington/{index.html.j2 → distance.html.j2} +0 -0
- {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/LICENSE +0 -0
- {geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/entry_points.txt +0 -0
{geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/RECORD
RENAMED
@@ -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=
|
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=
|
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=
|
18
|
-
geo_activity_playground/core/enrichment.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
56
|
-
geo_activity_playground/webui/blueprints/calendar_blueprint.py,sha256=
|
57
|
-
geo_activity_playground/webui/blueprints/
|
58
|
-
geo_activity_playground/webui/blueprints/entry_views.py,sha256
|
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=
|
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=
|
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
|
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=
|
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=
|
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=
|
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/
|
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=
|
121
|
-
geo_activity_playground/webui/templates/page.html.j2,sha256=
|
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=
|
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=
|
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.
|
142
|
-
geo_activity_playground-0.
|
143
|
-
geo_activity_playground-0.
|
144
|
-
geo_activity_playground-0.
|
145
|
-
geo_activity_playground-0.
|
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,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")
|
File without changes
|
{geo_activity_playground-0.40.1.dist-info → geo_activity_playground-0.42.0.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|