geo-activity-playground 1.2.0__py3-none-any.whl → 1.3.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 (39) hide show
  1. geo_activity_playground/alembic/versions/85fe0348e8a2_add_time_series_uuid_field.py +28 -0
  2. geo_activity_playground/alembic/versions/f2f50843be2d_make_all_fields_in_activity_nullable.py +34 -0
  3. geo_activity_playground/core/coordinates.py +12 -1
  4. geo_activity_playground/core/copernicus_dem.py +95 -0
  5. geo_activity_playground/core/datamodel.py +43 -16
  6. geo_activity_playground/core/enrichment.py +226 -164
  7. geo_activity_playground/core/paths.py +8 -0
  8. geo_activity_playground/core/test_pandas_timezone.py +36 -0
  9. geo_activity_playground/core/test_time_zone_from_location.py +7 -0
  10. geo_activity_playground/core/test_time_zone_import.py +93 -0
  11. geo_activity_playground/core/test_timezone_sqlalchemy.py +44 -0
  12. geo_activity_playground/core/tiles.py +4 -1
  13. geo_activity_playground/core/time_conversion.py +42 -14
  14. geo_activity_playground/explorer/tile_visits.py +7 -4
  15. geo_activity_playground/importers/activity_parsers.py +21 -22
  16. geo_activity_playground/importers/directory.py +62 -108
  17. geo_activity_playground/importers/strava_api.py +53 -36
  18. geo_activity_playground/importers/strava_checkout.py +30 -56
  19. geo_activity_playground/webui/app.py +40 -2
  20. geo_activity_playground/webui/blueprints/activity_blueprint.py +13 -11
  21. geo_activity_playground/webui/blueprints/entry_views.py +1 -1
  22. geo_activity_playground/webui/blueprints/explorer_blueprint.py +1 -7
  23. geo_activity_playground/webui/blueprints/heatmap_blueprint.py +2 -2
  24. geo_activity_playground/webui/blueprints/settings_blueprint.py +3 -14
  25. geo_activity_playground/webui/blueprints/summary_blueprint.py +6 -6
  26. geo_activity_playground/webui/blueprints/time_zone_fixer_blueprint.py +69 -0
  27. geo_activity_playground/webui/blueprints/upload_blueprint.py +3 -16
  28. geo_activity_playground/webui/columns.py +9 -1
  29. geo_activity_playground/webui/templates/activity/show.html.j2 +3 -1
  30. geo_activity_playground/webui/templates/hall_of_fame/index.html.j2 +1 -1
  31. geo_activity_playground/webui/templates/home.html.j2 +3 -2
  32. geo_activity_playground/webui/templates/page.html.j2 +2 -0
  33. geo_activity_playground/webui/templates/time_zone_fixer/index.html.j2 +31 -0
  34. {geo_activity_playground-1.2.0.dist-info → geo_activity_playground-1.3.0.dist-info}/METADATA +7 -3
  35. {geo_activity_playground-1.2.0.dist-info → geo_activity_playground-1.3.0.dist-info}/RECORD +38 -30
  36. geo_activity_playground/core/test_time_conversion.py +0 -37
  37. {geo_activity_playground-1.2.0.dist-info → geo_activity_playground-1.3.0.dist-info}/LICENSE +0 -0
  38. {geo_activity_playground-1.2.0.dist-info → geo_activity_playground-1.3.0.dist-info}/WHEEL +0 -0
  39. {geo_activity_playground-1.2.0.dist-info → geo_activity_playground-1.3.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,31 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+
5
+ <h1 class="mb-3">Time Zone Fixer</h1>
6
+
7
+ <p>Prior to version 1.3.0, activity times were interpreted in the local time zone. If your software recorded in UTC, it
8
+ was assumed that this was your local time zone. This assumption was often wrong. With version 1.3.0, this got fixed.
9
+ Activities will be imported using UTC or specified time zone. They will then be localized into the time zone of the
10
+ activity position.</p>
11
+
12
+ <p>Use this tool to fix activities which were imported with an older version.</p>
13
+
14
+ <p>Your activities are shown in the local time zone of the activity but no time zone is shown. </p>
15
+ <p><a class="btn btn-small btn-danger" href="{{ url_for('.local_to_utc') }}"
16
+ onclick="if(!confirm('Are you sure to run this?')){ event.preventDefault() }">Interpret times as local time
17
+ zone</a></p>
18
+
19
+ <p>Your activities seem to be UTC and don't confirm to the local time zone. You have the impression that all the times
20
+ are off.</p>
21
+ <p><a class="btn btn-small btn-danger" href="{{ url_for('.utc_to_utc') }}"
22
+ onclick="if(!confirm('Are you sure to run this?')){ event.preventDefault() }">Interpret times as UTC</a></p>
23
+
24
+ <p>Everything seems broken. You want to reload all your activities. Be aware that with Strava API that can take ages due
25
+ to the rate limiting. Also be aware that this will delete all changes that you did after importing the activity
26
+ (changing the name, equipment, adding tags, trimming the activity). </p>
27
+ <p><a class="btn btn-small btn-danger" href="{{ url_for('.truncate_activities') }}"
28
+ onclick="if(!confirm('Are you sure to run this?')){ event.preventDefault() }">Throw all activities away and
29
+ rescan</a></p>
30
+
31
+ {% endblock %}
@@ -1,14 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geo-activity-playground
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: Analysis of geo data activities like rides, runs or hikes.
5
5
  License: MIT
6
6
  Author: Martin Ueding
7
7
  Author-email: mu@martin-ueding.de
8
- Requires-Python: >=3.10,<3.14
8
+ Requires-Python: >=3.11,<3.14
9
9
  Classifier: License :: OSI Approved :: MIT License
10
10
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.10
12
11
  Classifier: Programming Language :: Python :: 3.11
13
12
  Classifier: Programming Language :: Python :: 3.12
14
13
  Classifier: Programming Language :: Python :: 3.13
@@ -16,6 +15,7 @@ Requires-Dist: Pillow (>=11.0.0,<12.0.0)
16
15
  Requires-Dist: alembic (>=1.15.2,<2.0.0)
17
16
  Requires-Dist: altair (>=5.5.0,<6.0.0)
18
17
  Requires-Dist: appdirs (>=1.4.4,<2.0.0)
18
+ Requires-Dist: boto3 (>=1.38.45,<2.0.0)
19
19
  Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
20
20
  Requires-Dist: coloredlogs (>=15.0.1,<16.0.0)
21
21
  Requires-Dist: exifread (>=3.2.0,<4.0.0)
@@ -24,15 +24,19 @@ Requires-Dist: flask (>=3.0.0,<4.0.0)
24
24
  Requires-Dist: flask-alembic (>=3.1.1,<4.0.0)
25
25
  Requires-Dist: flask-sqlalchemy (>=3.1.1,<4.0.0)
26
26
  Requires-Dist: geojson (>=3.0.1,<4.0.0)
27
+ Requires-Dist: geotiff (>=0.2.10,<0.3.0)
27
28
  Requires-Dist: gpxpy (>=1.5.0,<2.0.0)
29
+ Requires-Dist: imagecodecs (>=2025.3.30,<2026.0.0)
28
30
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
29
31
  Requires-Dist: matplotlib (>=3.10.1,<4.0.0)
32
+ Requires-Dist: numcodecs (<0.15.0)
30
33
  Requires-Dist: numpy (>=2.2.3,<3.0.0)
31
34
  Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
32
35
  Requires-Dist: pandas (>=2.2.3,<3.0.0)
33
36
  Requires-Dist: pyarrow (>=19.0.1,<20.0.0)
34
37
  Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
35
38
  Requires-Dist: requests (>=2.28.1,<3.0.0)
39
+ Requires-Dist: scipy (>=1.16.0,<2.0.0)
36
40
  Requires-Dist: shapely (>=2.0.5,<3.0.0)
37
41
  Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0)
38
42
  Requires-Dist: stravalib (>=2.0,<3.0)
@@ -7,25 +7,28 @@ geo_activity_playground/alembic/versions/0f02b92c4f94_add_tag_color.py,sha256=gW
7
7
  geo_activity_playground/alembic/versions/38882503dc7c_add_tags_to_activities.py,sha256=HmvYgHlVodHB7xyigg7zHkFXSi1znWqKfOHcd6y9sZE,3157
8
8
  geo_activity_playground/alembic/versions/451e7836b53d_add_square_planner_bookmark.py,sha256=WrmlDllnJECg6cSOeS05wYCa977_SXbJUV5khDSzntw,1082
9
9
  geo_activity_playground/alembic/versions/63d3b7f6f93c_initial_version.py,sha256=YTnnENkQ8WqLz7PFof7tUWNkWcoHGkAfAM52x1N9umo,3029
10
+ geo_activity_playground/alembic/versions/85fe0348e8a2_add_time_series_uuid_field.py,sha256=BLvofqUnySKGnUisiZxxcDISEMo6GIo9djLaXCnmKPg,861
10
11
  geo_activity_playground/alembic/versions/93cc82ad1b60_add_parametricplotspec.py,sha256=P9nG348kz6Wi2lD8lJ_f-0juBtlJb1tqBWYqP2XMQPE,1365
11
12
  geo_activity_playground/alembic/versions/ab83b9d23127_add_upstream_id.py,sha256=Wz02lBP2r7-09DjuQP8u8i7ypQ2SZU5RUc422-_ZBDk,851
12
13
  geo_activity_playground/alembic/versions/b03491c593f6_add_crop_indices.py,sha256=1pt7aes0PWJXZ98HxqeDK-ehaU9KLApjCmZYoqCa8V0,975
13
14
  geo_activity_playground/alembic/versions/da2cba03b71d_add_photos.py,sha256=_DvUge61HsoF9LppXuavIzjAhoe1kp-dnaynxtd9h30,1394
14
15
  geo_activity_playground/alembic/versions/dc8073871da7_add_plotspec_group_by.py,sha256=AekV_JiJM5Q2RNf57XjnJpknAQZQ1cGBvKjj7Jtn304,845
15
16
  geo_activity_playground/alembic/versions/e02e27876deb_add_square_planner_bookmark_name.py,sha256=Y0OMxp5z_-CQ83rww6GEBFRawXu0J0pLrLArgSjJ7wQ,866
17
+ geo_activity_playground/alembic/versions/f2f50843be2d_make_all_fields_in_activity_nullable.py,sha256=b0GnskwsjyyftveEDD8Kaff8Vk1gZjikZPrkAW9AbHY,1321
16
18
  geo_activity_playground/alembic/versions/script.py.mako,sha256=3qBrHBf7F7ChKDUIdiNItiSXrDpgQdM7sR0YKzpaC50,689
17
19
  geo_activity_playground/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
20
  geo_activity_playground/core/activities.py,sha256=apP_-Rg1ub3lh7RARMGXf2BOmJTiahxqpX_soEnYF3E,4681
19
21
  geo_activity_playground/core/config.py,sha256=mmdMQ5iCLNGnAlriT1ETEVS-gM6Aq_9sg22QECHj4n8,5358
20
- geo_activity_playground/core/coordinates.py,sha256=tDfr9mlXhK6E_MMIJ0vYWVCoH0Lq8uyuaqUgaa8i0jg,966
21
- geo_activity_playground/core/datamodel.py,sha256=yzHdALuA9MShuBXtyEUoE0PS_7C8SNw9Weqa21_ALg4,14820
22
- geo_activity_playground/core/enrichment.py,sha256=Tju9sKI-V40CmsS9RiNeGz-Zhp_hx1xjlaWzJMrasXI,7640
22
+ geo_activity_playground/core/coordinates.py,sha256=rW_OmMRpTUyIsQwrT6mgT9Y6uPGuwqTo5XDDMS7mGuo,1140
23
+ geo_activity_playground/core/copernicus_dem.py,sha256=U6pvUAymLCX4CpbQKvUoXRj8LYdlaQTKtEVlrlHH3kw,2934
24
+ geo_activity_playground/core/datamodel.py,sha256=3LdTm7lqykeLM6KYviW9WamgnS61nGNl-NHSEQdwTXY,15765
25
+ geo_activity_playground/core/enrichment.py,sha256=gb8amLAjpcEYTeseQl6U6kOy8o1p63pzvoOf2f7iryY,8597
23
26
  geo_activity_playground/core/export.py,sha256=ayOmhWL72263oP9NLIZRYCg_Db0GLUFhgNIL_MCrV-E,4435
24
27
  geo_activity_playground/core/heart_rate.py,sha256=-S3WAhS7AOywrw_Lk5jfuo_fu6zvZQ1VtjwEKSycWpU,1542
25
28
  geo_activity_playground/core/meta_search.py,sha256=nyvCuR7v0pd6KjA8W5Kr71bBafRdE_ol7uSFRJs4eAM,6662
26
29
  geo_activity_playground/core/missing_values.py,sha256=HjonaLV0PFMICnuMrbdUNnK9uy_8PBh_RxI5GuEMQK0,250
27
30
  geo_activity_playground/core/parametric_plot.py,sha256=8CKB8dey7EmZtQnl6IOgBhpxkw0UCpQPWeiBw5PqW8k,5737
28
- geo_activity_playground/core/paths.py,sha256=GGNpqhQL7etn8-NV6hVGLT7yBZYq7AwXnWfX3l_Cj48,2670
31
+ geo_activity_playground/core/paths.py,sha256=qQ4ujaIHmsxTGEWzf-76XS8FclEI2RC5COTUeuLEbDI,2938
29
32
  geo_activity_playground/core/privacy_zones.py,sha256=4TumHsVUN1uW6RG3ArqTXDykPVipF98DCxVBe7YNdO8,512
30
33
  geo_activity_playground/core/raster_map.py,sha256=Cq8dNLdxVQg3Agzn2bmXVu0-8kZf56QrSe-LKNn3jaU,7994
31
34
  geo_activity_playground/core/similarity.py,sha256=L2de3DPRdDeDY5AxZwLDcH7FjHWRWklr41VNU06q9kQ,3117
@@ -34,49 +37,53 @@ geo_activity_playground/core/tasks.py,sha256=-_9cxekoHSWzCW4XblNeqrwi2tTqr5AE7_-
34
37
  geo_activity_playground/core/test_datamodel.py,sha256=-VrGHgx5Z3MSQPqHGmmm7atRJYbg5y_ukvRHKxk22PI,569
35
38
  geo_activity_playground/core/test_meta_search.py,sha256=zhuD343Xce-4Fkznw81DHQ7pK5eyX5UbcyCHuYRKsr8,3091
36
39
  geo_activity_playground/core/test_missing_values.py,sha256=7yvg6dUu7p8PR_rxUxgFaJCrGzfYUcF8Zf6y7bCEYKw,356
40
+ geo_activity_playground/core/test_pandas_timezone.py,sha256=-MDiLoLG5tDMqkI0iKno24kFn9X3tslh9ZpoDYLWNJU,771
37
41
  geo_activity_playground/core/test_summary_stats.py,sha256=qH_45mPRFD2H-Rr0Ku-RYc67vhC7qKxbPr7J2F36uV8,3081
38
42
  geo_activity_playground/core/test_tiles.py,sha256=zce1FxNfsSpOQt66jMehdQRVoNdl-oiFydx6iVBHZXM,764
39
- geo_activity_playground/core/test_time_conversion.py,sha256=Sh6nZA3uCTOdZTZa3yOijtR0m74QtZu2mcWXsDNnyQI,984
40
- geo_activity_playground/core/tiles.py,sha256=lV6X1Uc9XQecu2LALIvxpnMcLsVtWx7JczJ5a_S1eZE,2139
41
- geo_activity_playground/core/time_conversion.py,sha256=x5mXG6Y4GtdX7CBmwucGNSWBp9JQJDbZ7u0JkdUY1Vs,379
43
+ geo_activity_playground/core/test_time_zone_from_location.py,sha256=PKxDysm8D0FJjyuc4Kzrv65UxzP-ogUtFHQZ7mGKZQw,229
44
+ geo_activity_playground/core/test_time_zone_import.py,sha256=1CAJyGTHYPoxabBNVRfLhaRNbvvWcAYjJyDR-qvbRjg,3349
45
+ geo_activity_playground/core/test_timezone_sqlalchemy.py,sha256=OXjdowGXM-DsM4-Mpab8c3j3AtdW_yXp2NgI-B_cbvA,1172
46
+ geo_activity_playground/core/tiles.py,sha256=LBn2V6WAvMxZeXSIQ8ruZL71iyvOXoFZMz7PZgNUf7M,2189
47
+ geo_activity_playground/core/time_conversion.py,sha256=F-vQ-MdbTOqPTAELplDjT5m7kdaf1RsqBXELfsR5eOU,1329
42
48
  geo_activity_playground/explorer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
49
  geo_activity_playground/explorer/grid_file.py,sha256=YNL_c4O1-kxaajATJwj4ZLywCL5Hpj9qy2h-F7rk8Yg,3260
44
- geo_activity_playground/explorer/tile_visits.py,sha256=ESHI67xV53gmhMXAFzoPR0Uz7lc8T2gViyvjckrBo90,13907
50
+ geo_activity_playground/explorer/tile_visits.py,sha256=WK_H5fdy3S69BT4zZGP0R92qq5MlNRJMp25BrMj6O2Q,13884
45
51
  geo_activity_playground/explorer/video.py,sha256=7j6Qv3HG6On7Tn7xh7Olwrx_fbQnfzS7CeRg3TEApHg,4397
46
52
  geo_activity_playground/heatmap_video.py,sha256=I8i1uVvbbPUXVtvLAROaLy58nQoUPnuMCZkERWNkQjg,3318
47
53
  geo_activity_playground/importers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- geo_activity_playground/importers/activity_parsers.py,sha256=yD7L5eDOpiLWf6RHSQf4-Nk2S3vgfVHngc9ZlFSrioM,11090
54
+ geo_activity_playground/importers/activity_parsers.py,sha256=HVkW4Ql5vVRPlrhHgJEWeCEc1yTEWQTgJ6rkKOPWAfQ,10955
49
55
  geo_activity_playground/importers/csv_parser.py,sha256=O1pP5GLhWhnWcy2Lsrr9g17Zspuibpt-GtZ3ZS5eZF4,2143
50
- geo_activity_playground/importers/directory.py,sha256=eTLfcMdc5mt9iDBinuaXjRIA688i6QZQjXNNhm1PKz4,5282
51
- geo_activity_playground/importers/strava_api.py,sha256=J0-VXNrLq22fhTcWkQPE5AVrzy5aegC7SBi-UXFtAy4,7576
52
- geo_activity_playground/importers/strava_checkout.py,sha256=NwcOje0XxkccXRY5-3CJorYLFuniaFm8VHg4nHwkji4,10045
56
+ geo_activity_playground/importers/directory.py,sha256=kkutzFliffBjxj1GJrqhMp2cLeiAK6ZGE9Gi6Ptl-NY,3255
57
+ geo_activity_playground/importers/strava_api.py,sha256=LG8M8NRSv3kK3npf9gSY20YcqzJ0xiQoVEv0oeDXbNY,8309
58
+ geo_activity_playground/importers/strava_checkout.py,sha256=eDzjK0r3rMICSMBtfSlSwwkRxRthWjRUA5zAnblhmNQ,8910
53
59
  geo_activity_playground/importers/test_csv_parser.py,sha256=nOTVTdlzIY0TDcbWp7xNyNaIO6Mkeu55hVziVl22QE4,1092
54
60
  geo_activity_playground/importers/test_directory.py,sha256=_fn_-y98ZyElbG0BRxAmGFdtGobUShPU86SdEOpuv-A,691
55
61
  geo_activity_playground/importers/test_strava_api.py,sha256=7b8bl5Rh2BctCmvTPEhCadxtUOq3mfzuadD6F5XxRio,398
56
62
  geo_activity_playground/webui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- geo_activity_playground/webui/app.py,sha256=BXSAvvYEs4TRbQBgA_Y8iEI0Mwv3YkZScTcHIGZVYa4,8539
63
+ geo_activity_playground/webui/app.py,sha256=gvvzPpYTlC5KhMOdpvDtiH2jPyvsLMM9Wf4yWkCoyzc,10020
58
64
  geo_activity_playground/webui/authenticator.py,sha256=dhREYOu_TCD_nzFNuSlHIbf5K6TmwKdXtr1wxD8fBcc,1491
59
65
  geo_activity_playground/webui/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
- geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=F_m1jkg9dnQg7f6QfBrBHllFfw6TUuzc4UPMbWsIbI0,26732
66
+ geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=kfI7GrQUm36GuSNWv8vYQEmT7bshDFrLkWchqesa_9k,26793
61
67
  geo_activity_playground/webui/blueprints/auth_blueprint.py,sha256=iCm3hZphQKR9qFgytOrfnSmr-Og1gHuQ1Djiv2o_bkE,1031
62
68
  geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py,sha256=8R1rUVoyofGhUgesPunys1HoLPYinvhA46BBnMvEn9Q,2880
63
69
  geo_activity_playground/webui/blueprints/calendar_blueprint.py,sha256=SmOu5AfNNoWcJJNduEfPtaPRvr4EZLYAeIDLUK9P1LY,2939
64
70
  geo_activity_playground/webui/blueprints/eddington_blueprints.py,sha256=Ya5GJxfVESwmRlgMTYe9g75g8JHHTAAvYFmSD-3Uz4Q,8987
65
- geo_activity_playground/webui/blueprints/entry_views.py,sha256=5DZOl8t3QouMdr837o3Hj1YH4hyuP_v7l5tvE_MLPl0,2927
71
+ geo_activity_playground/webui/blueprints/entry_views.py,sha256=SDCzpUSb1FAb84tM0SnmrZQvtaTlO-Rqdj94hyIMDSc,2936
66
72
  geo_activity_playground/webui/blueprints/equipment_blueprint.py,sha256=8L_7NZGErvu4jyigi2gg7HN_gegZRdsSFahUH7Dz6Lw,5727
67
- geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=vOzDI2lq-eBeBRz9vHMl-LENyeHkHBS68q-6AuBcC_Q,23182
73
+ geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=wlInaRbh1Wp-Va9mqcaHsVelBUQsqHusoTvkiynoU2E,22985
68
74
  geo_activity_playground/webui/blueprints/export_blueprint.py,sha256=C9yFH5gEJs2YtWE-EhcGDEyGwwaLgC1umybgIRi6duE,1036
69
75
  geo_activity_playground/webui/blueprints/hall_of_fame_blueprint.py,sha256=zNYKw7ps9Yx9995Zsj4psAlOLnt4tFi2Hwp74-kjmzw,2806
70
- geo_activity_playground/webui/blueprints/heatmap_blueprint.py,sha256=iHI5YJYhX7ZOlzTgzl2efIRDzt3UMYCx7X4-LVd0MWk,8702
76
+ geo_activity_playground/webui/blueprints/heatmap_blueprint.py,sha256=qPwvcZLZgAH1g8FQAzjIc5LxKp2bkc7YbZwkjxVJVWc,8730
71
77
  geo_activity_playground/webui/blueprints/photo_blueprint.py,sha256=ZBh7Gt5vEzeW8JDK3t-3RcLTT40mbOqRkttkicgcIRM,7885
72
78
  geo_activity_playground/webui/blueprints/plot_builder_blueprint.py,sha256=nGtYblRTJ0rasJvl_L35cs1Iry4LONPy_9TY4ytXB-Q,3838
73
79
  geo_activity_playground/webui/blueprints/search_blueprint.py,sha256=Sv_KL1Cdai26y51qVfI-5jZLhtElREsEar1dbR_VAC4,2275
74
- geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=uPN4ORhWyLVo23YKhRFjGB-VxJFOoJIHR5NLmHi11k4,20856
80
+ geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=cwes3QmRrC_HMP1g-Yc-x2BJycF4jF3StJl75v9acWo,20377
75
81
  geo_activity_playground/webui/blueprints/square_planner_blueprint.py,sha256=xVaxJxmt8Dysl3UL9f2y__LVLtTH2Np1Ust4OSXKRAk,4746
76
- geo_activity_playground/webui/blueprints/summary_blueprint.py,sha256=AlRnsPUamoqsQ5JD5PpmSsJdhxDgrJOq5O11MQM3gME,6680
82
+ geo_activity_playground/webui/blueprints/summary_blueprint.py,sha256=ZF9Mocewddpn09pElSqrVS6jkqajhEJMn-7KbIvZodY,6751
77
83
  geo_activity_playground/webui/blueprints/tile_blueprint.py,sha256=YzZf9OrNdjhc1_j4MtO1DMcw1uCv29ueNsYd-mWqgbg,837
78
- geo_activity_playground/webui/blueprints/upload_blueprint.py,sha256=3nJGGNYjB22aFXDlgCFMK8t0RRkqQi_Pr33H3DtVP5M,5177
79
- geo_activity_playground/webui/columns.py,sha256=o5gJbMbB5gYlxWP1wktle5Ve_jjymslaJpIyCiKWBKY,1331
84
+ geo_activity_playground/webui/blueprints/time_zone_fixer_blueprint.py,sha256=PEHsk3kRHx2EvQ-6VPD4xeOmXGjh64GMAagFkQ0wbeg,2301
85
+ geo_activity_playground/webui/blueprints/upload_blueprint.py,sha256=K7bWCN9kotklbkrjPR-IV08p9O2aekzG_vuksduSJB4,4609
86
+ geo_activity_playground/webui/columns.py,sha256=FP0YfX-WFQk1JEXhrywv3NUEVq-x7Hv0or35X3Ltf9c,1525
80
87
  geo_activity_playground/webui/flasher.py,sha256=Covc1D9cO_jjokRWnvyiXCc2tfp3aZ8XkNqFdA1AXtk,500
81
88
  geo_activity_playground/webui/plot_util.py,sha256=5Uesjj-xcMskQX2z9viDZYHSxLGrH2a5dHA1ogsJW9U,261
82
89
  geo_activity_playground/webui/search_util.py,sha256=gH2cOM1FTAozZUlSQ4C1dR1xlV-8e82pD1PPi_pPBNY,2647
@@ -119,7 +126,7 @@ geo_activity_playground/webui/templates/activity/day.html.j2,sha256=CHEvxlZralCm
119
126
  geo_activity_playground/webui/templates/activity/edit.html.j2,sha256=r979JPqaZi_2ymTykxpkjdpw0D2tsB9VJaf7OaGPaME,1961
120
127
  geo_activity_playground/webui/templates/activity/lines.html.j2,sha256=_ZDg1ruW-9UMJfOudy1-uY_-IcSSaagq7tPCih5Bb8g,1079
121
128
  geo_activity_playground/webui/templates/activity/name.html.j2,sha256=RYbNGzPexa4gRUWRjw-C9nWvp5lI7agAZZCS3Du7nAs,2661
122
- geo_activity_playground/webui/templates/activity/show.html.j2,sha256=8dcEUYtjJPlInB1G3c3qJAGtpknDkd7YLufTvOT6mcY,10793
129
+ geo_activity_playground/webui/templates/activity/show.html.j2,sha256=e-jMjZ4fBwK4-u0qZmbiN76ZqrptD4xrGYhxwaUQsEE,10913
123
130
  geo_activity_playground/webui/templates/activity/trim.html.j2,sha256=3oAXQab6QqWjGBC9KCvWNOVn8uRmxoDLj3hx_O63TXc,1836
124
131
  geo_activity_playground/webui/templates/auth/index.html.j2,sha256=wzA0uxpiT1ktDadgnjvFXc9iUGMFm9GhjDkavl3S1h4,646
125
132
  geo_activity_playground/webui/templates/bubble_chart/index.html.j2,sha256=yd7lWjtxxVmJZqCiXb0Y1gMEOQ7LQYJXEdpE7JB1OZY,1616
@@ -131,10 +138,10 @@ geo_activity_playground/webui/templates/elevation_eddington/index.html.j2,sha256
131
138
  geo_activity_playground/webui/templates/equipment/index.html.j2,sha256=6pzSCJACMXA1fKgsO_KrCTvpumAKlelzj5f9dReey14,1742
132
139
  geo_activity_playground/webui/templates/explorer/server-side.html.j2,sha256=ynejXeUjb-ZwkvPtbD20R8R1KLUIFsyM5VJgwW7vzM8,3133
133
140
  geo_activity_playground/webui/templates/export/index.html.j2,sha256=vxqpAm9KnT405Qz7q0_td-HZ4mCjcPR4Lp6EnIEWisg,1652
134
- geo_activity_playground/webui/templates/hall_of_fame/index.html.j2,sha256=t02N1VtTyj_pBBSd3mzO1xNyDLwGa1XdH0RFvKAmdIg,1766
141
+ geo_activity_playground/webui/templates/hall_of_fame/index.html.j2,sha256=P15fVPjXf0Wf6K_hd_lCMuw6-Q8_qfNqsBOWNpMfoXw,1804
135
142
  geo_activity_playground/webui/templates/heatmap/index.html.j2,sha256=uM-l4gmDKw6307ZH_zb8zroMTKBuOkrR0Bu4fTEJE0s,1231
136
- geo_activity_playground/webui/templates/home.html.j2,sha256=R0T4z9aEUD0dAnCrdXcu9O3GafXruaZjKKDmks3ST64,2182
137
- geo_activity_playground/webui/templates/page.html.j2,sha256=sN1OmuN4c4g6M4h_hZ8UMX4wsWZq7_r0M8fgzpxyKss,12016
143
+ geo_activity_playground/webui/templates/home.html.j2,sha256=L6U44p05IagWERPxJ99cUMZzZCyhmA5IV7PL-QaO_mg,2258
144
+ geo_activity_playground/webui/templates/page.html.j2,sha256=X3dXpmcV4486St3BLHIBbhZYcb6X_dYBOBSZi_M3Aio,12188
138
145
  geo_activity_playground/webui/templates/photo/map.html.j2,sha256=MWhqt5Q8ExiRhgxndcEnwngOj1qw0E0u4hKuiuY24Gg,1437
139
146
  geo_activity_playground/webui/templates/photo/new.html.j2,sha256=0BO4ZJgJQM1Hlp9SHylEOfthpQlywDc-xFs8K_Spptc,392
140
147
  geo_activity_playground/webui/templates/plot-macros.html.j2,sha256=lzsu8c8fcsVjgpdcmpwCa1e6EPALZtCS9RbvQ-DAtAs,2861
@@ -161,10 +168,11 @@ geo_activity_playground/webui/templates/settings/tile-source.html.j2,sha256=C9kR
161
168
  geo_activity_playground/webui/templates/square_planner/index.html.j2,sha256=-OnY2nQCgZCslOzf28ogZwFykwF8tZm7PgFwOE3eBDk,8176
162
169
  geo_activity_playground/webui/templates/summary/index.html.j2,sha256=VuSed6GU-FzjPC1aCYuEuK5B8Rw2D8NcseNLTFIGxkA,1441
163
170
  geo_activity_playground/webui/templates/summary/vega-chart.html.j2,sha256=mw8HtigeSnShTFZNG56UGUqHLJe70kvFR3o0TT71dBI,94
171
+ geo_activity_playground/webui/templates/time_zone_fixer/index.html.j2,sha256=s9r6BJMXmd7kLSyjkvH4xLi6e01S5bpGRcMgMMJyCAE,1760
164
172
  geo_activity_playground/webui/templates/upload/index.html.j2,sha256=I1Ix8tDS3YBdi-HdaNfjkzYXVVCjfUTe5PFTnap1ydc,775
165
173
  geo_activity_playground/webui/templates/upload/reload.html.j2,sha256=YZWX5eDeNyqKJdQAywDBcU8DZBm22rRBbZqFjrFrCvQ,556
166
- geo_activity_playground-1.2.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
167
- geo_activity_playground-1.2.0.dist-info/METADATA,sha256=THvhUmP_4CRz5cGUzxQg_LsLVQJaFEgEHoPPwVGzI1o,1890
168
- geo_activity_playground-1.2.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
169
- geo_activity_playground-1.2.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
170
- geo_activity_playground-1.2.0.dist-info/RECORD,,
174
+ geo_activity_playground-1.3.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
175
+ geo_activity_playground-1.3.0.dist-info/METADATA,sha256=CWWk8dBKRARHREz5Ux11u0U_qtrwqIRHJC-toP7hsLM,2045
176
+ geo_activity_playground-1.3.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
177
+ geo_activity_playground-1.3.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
178
+ geo_activity_playground-1.3.0.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- import datetime
2
-
3
- import numpy as np
4
- import pandas as pd
5
-
6
- from .time_conversion import convert_to_datetime_ns
7
-
8
- target = np.datetime64(datetime.datetime(2000, 1, 2, 3, 4, 5))
9
-
10
-
11
- def test_convert_to_datetime_ns() -> None:
12
- dt_local = datetime.datetime(2000, 1, 2, 3, 4, 5)
13
- dt_tz = datetime.datetime(
14
- 2000, 1, 2, 3, 4, 5, tzinfo=datetime.timezone(datetime.timedelta(hours=3))
15
- )
16
- dt_utc = datetime.datetime(2000, 1, 2, 3, 4, 5, tzinfo=datetime.timezone.utc)
17
-
18
- inputs = [
19
- dt_local,
20
- dt_tz,
21
- dt_utc,
22
- pd.Timestamp(dt_local),
23
- pd.Timestamp(dt_tz),
24
- pd.Timestamp(dt_utc),
25
- ]
26
-
27
- for d in inputs:
28
- actual = convert_to_datetime_ns(d)
29
- # assert pd.api.types.is_dtype_equal(actual.dtype, "datetime64[ns]")
30
- assert actual == target
31
-
32
- actual = convert_to_datetime_ns(pd.Series([d]))
33
- assert actual.iloc[0] == target
34
-
35
-
36
- def test_NaT() -> None:
37
- assert pd.isna(convert_to_datetime_ns(pd.NaT))