geo-activity-playground 0.38.0__tar.gz → 0.38.2__tar.gz

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 (127) hide show
  1. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/PKG-INFO +6 -6
  2. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/enrichment.py +2 -2
  3. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/day.html.j2 +1 -1
  4. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/show.html.j2 +3 -3
  5. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/eddington_blueprint.py +4 -0
  6. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/equipment_blueprint.py +21 -0
  7. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/metadata-extraction.html.j2 +1 -1
  8. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/summary_blueprint.py +10 -3
  9. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/pyproject.toml +6 -6
  10. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/LICENSE +0 -0
  11. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/__init__.py +0 -0
  12. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/__main__.py +0 -0
  13. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/__init__.py +0 -0
  14. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/activities.py +0 -0
  15. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/config.py +0 -0
  16. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/coordinates.py +0 -0
  17. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/heart_rate.py +0 -0
  18. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/meta_search.py +0 -0
  19. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/paths.py +0 -0
  20. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/privacy_zones.py +0 -0
  21. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/raster_map.py +0 -0
  22. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/similarity.py +0 -0
  23. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/summary_stats.py +0 -0
  24. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/tasks.py +0 -0
  25. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_meta_search.py +0 -0
  26. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_summary_stats.py +0 -0
  27. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_tiles.py +0 -0
  28. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/test_time_conversion.py +0 -0
  29. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/tiles.py +0 -0
  30. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/core/time_conversion.py +0 -0
  31. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/__init__.py +0 -0
  32. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/grid_file.py +0 -0
  33. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/tile_visits.py +0 -0
  34. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/explorer/video.py +0 -0
  35. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/heatmap_video.py +0 -0
  36. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/__init__.py +0 -0
  37. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/activity_parsers.py +0 -0
  38. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/csv_parser.py +0 -0
  39. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/directory.py +0 -0
  40. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/strava_api.py +0 -0
  41. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/strava_checkout.py +0 -0
  42. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/test_csv_parser.py +0 -0
  43. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/test_directory.py +0 -0
  44. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/importers/test_strava_api.py +0 -0
  45. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/__init__.py +0 -0
  46. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/__init__.py +0 -0
  47. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/blueprint.py +0 -0
  48. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/controller.py +0 -0
  49. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/edit.html.j2 +0 -0
  50. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/lines.html.j2 +0 -0
  51. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/activity/templates/activity/name.html.j2 +0 -0
  52. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/app.py +0 -0
  53. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/auth_blueprint.py +0 -0
  54. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/authenticator.py +0 -0
  55. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/__init__.py +0 -0
  56. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/blueprint.py +0 -0
  57. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/controller.py +0 -0
  58. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/templates/calendar/index.html.j2 +0 -0
  59. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/calendar/templates/calendar/month.html.j2 +0 -0
  60. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/entry_controller.py +0 -0
  61. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/__init__.py +0 -0
  62. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/blueprint.py +0 -0
  63. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/controller.py +0 -0
  64. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/explorer/templates/explorer/index.html.j2 +0 -0
  65. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/__init__.py +0 -0
  66. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/blueprint.py +0 -0
  67. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/heatmap_controller.py +0 -0
  68. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/heatmap/templates/heatmap/index.html.j2 +0 -0
  69. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/plot_util.py +0 -0
  70. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/search_blueprint.py +0 -0
  71. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/search_util.py +0 -0
  72. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/blueprint.py +0 -0
  73. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/controller.py +0 -0
  74. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/admin-password.html.j2 +0 -0
  75. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/color-schemes.html.j2 +0 -0
  76. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/equipment-offsets.html.j2 +0 -0
  77. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/heart-rate.html.j2 +0 -0
  78. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/index.html.j2 +0 -0
  79. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/kind-renames.html.j2 +0 -0
  80. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/kinds-without-achievements.html.j2 +0 -0
  81. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/privacy-zones.html.j2 +0 -0
  82. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/segmentation.html.j2 +0 -0
  83. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/sharepic.html.j2 +0 -0
  84. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/settings/templates/settings/strava.html.j2 +0 -0
  85. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/square_planner_blueprint.py +0 -0
  86. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/Leaflet.fullscreen.min.js +0 -0
  87. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/MarkerCluster.Default.css +0 -0
  88. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/MarkerCluster.css +0 -0
  89. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/android-chrome-192x192.png +0 -0
  90. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/android-chrome-512x512.png +0 -0
  91. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/apple-touch-icon.png +0 -0
  92. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/bootstrap-dark-mode.js +0 -0
  93. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/bootstrap.bundle.min.js +0 -0
  94. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/bootstrap.min.css +0 -0
  95. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/browserconfig.xml +0 -0
  96. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon-16x16.png +0 -0
  97. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon-32x32.png +0 -0
  98. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon-48x48.png +0 -0
  99. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon.ico +0 -0
  100. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/favicon.svg +0 -0
  101. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/fullscreen.png +0 -0
  102. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/fullscreen@2x.png +0 -0
  103. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.css +0 -0
  104. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.fullscreen.css +0 -0
  105. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.js +0 -0
  106. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/leaflet.markercluster.js +0 -0
  107. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/mstile-150x150.png +0 -0
  108. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/site.webmanifest +0 -0
  109. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/table-sort.min.js +0 -0
  110. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/vega-embed@6 +0 -0
  111. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/vega-lite@4 +0 -0
  112. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/vega@5 +0 -0
  113. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/web-app-manifest-192x192.png +0 -0
  114. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/static/web-app-manifest-512x512.png +0 -0
  115. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/auth/index.html.j2 +0 -0
  116. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/eddington/index.html.j2 +0 -0
  117. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/equipment/index.html.j2 +0 -0
  118. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/home.html.j2 +0 -0
  119. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/page.html.j2 +0 -0
  120. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/search/index.html.j2 +0 -0
  121. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/search_form.html.j2 +0 -0
  122. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/square_planner/index.html.j2 +0 -0
  123. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/summary/index.html.j2 +0 -0
  124. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/upload/index.html.j2 +0 -0
  125. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/templates/upload/reload.html.j2 +0 -0
  126. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/tile_blueprint.py +0 -0
  127. {geo_activity_playground-0.38.0 → geo_activity_playground-0.38.2}/geo_activity_playground/webui/upload_blueprint.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geo-activity-playground
3
- Version: 0.38.0
3
+ Version: 0.38.2
4
4
  Summary: Analysis of geo data activities like rides, runs or hikes.
5
5
  License: MIT
6
6
  Author: Martin Ueding
@@ -12,7 +12,7 @@ Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
14
  Requires-Dist: Pillow (>=11.0.0,<12.0.0)
15
- Requires-Dist: altair (>=5.1.2,<6.0.0)
15
+ Requires-Dist: altair (>=5.5.0,<6.0.0)
16
16
  Requires-Dist: appdirs (>=1.4.4,<2.0.0)
17
17
  Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
18
18
  Requires-Dist: coloredlogs (>=15.0.1,<16.0.0)
@@ -21,10 +21,10 @@ Requires-Dist: flask (>=3.0.0,<4.0.0)
21
21
  Requires-Dist: geojson (>=3.0.1,<4.0.0)
22
22
  Requires-Dist: gpxpy (>=1.5.0,<2.0.0)
23
23
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
24
- Requires-Dist: matplotlib (>=3.6.3,<4.0.0)
25
- Requires-Dist: numpy (>=2.1.3,<3.0.0)
26
- Requires-Dist: pandas (>=2.2,<3.0)
27
- Requires-Dist: pyarrow (>=18.1.0,<19.0.0)
24
+ Requires-Dist: matplotlib (>=3.10.1,<4.0.0)
25
+ Requires-Dist: numpy (>=2.2.3,<3.0.0)
26
+ Requires-Dist: pandas (>=2.2.3,<3.0.0)
27
+ Requires-Dist: pyarrow (>=19.0.1,<20.0.0)
28
28
  Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
29
29
  Requires-Dist: requests (>=2.28.1,<3.0.0)
30
30
  Requires-Dist: shapely (>=2.0.5,<3.0.0)
@@ -119,8 +119,8 @@ def _get_metadata_from_timeseries(timeseries: pd.DataFrame) -> ActivityMeta:
119
119
  metadata["end_latitude"] = timeseries["latitude"].iloc[-1]
120
120
  metadata["start_longitude"] = timeseries["longitude"].iloc[0]
121
121
  metadata["end_longitude"] = timeseries["longitude"].iloc[-1]
122
-
123
- metadata["elevation_gain"] = timeseries["elevation_gain_cum"].iloc[-1]
122
+ if "elevation_gain_cum" in timeseries.columns:
123
+ metadata["elevation_gain"] = timeseries["elevation_gain_cum"].iloc[-1]
124
124
 
125
125
  return metadata
126
126
 
@@ -75,6 +75,6 @@
75
75
 
76
76
  <h2>Share picture</h2>
77
77
 
78
- <p><img src="{{ url_for('.day_sharepic', year=year, month=month, day=day) }}" /></p>
78
+ <p><img class="img-fluid" src="{{ url_for('.day_sharepic', year=year, month=month, day=day) }}" /></p>
79
79
 
80
80
  {% endblock %}
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
 
10
10
  <div class="row mb-3">
11
- <div class="col-4">
11
+ <div class="col-sm-12 col-md-4">
12
12
  <dl>
13
13
  <dt>Name</dt>
14
14
  <dd>{{ activity["name"] }}</dd>
@@ -54,7 +54,7 @@
54
54
 
55
55
  <a href="{{ url_for('.edit', id=activity['id']) }}" class="btn btn-secondary btn-small">Edit metadata</a>
56
56
  </div>
57
- <div class="col-8">
57
+ <div class="col-sm-12 col-md-8">
58
58
  <div id="activity-map" style="height: 500px;" class="mb-3"></div>
59
59
  <script>
60
60
  var map = L.map('activity-map', {
@@ -161,7 +161,7 @@
161
161
 
162
162
  <h2>Share picture</h2>
163
163
 
164
- <p><img src="{{ url_for('.sharepic', id=activity.id) }}" /></p>
164
+ <p><img class="img-fluid" src="{{ url_for('.sharepic', id=activity.id) }}" /></p>
165
165
 
166
166
  <p>Not happy with the displayed data? <a href="{{ url_for('settings.sharepic') }}">Change share picture
167
167
  settings</a>.</p>
@@ -186,5 +186,9 @@ def _get_eddington_number_history(meta: pd.DataFrame) -> dict:
186
186
  .encode(
187
187
  alt.X("date", title="Date"),
188
188
  alt.Y("eddington_number", title="Eddington number"),
189
+ [
190
+ alt.Tooltip("date", title="Date"),
191
+ alt.Tooltip("eddington_number", title="Eddington number"),
192
+ ],
189
193
  )
190
194
  ).to_json(format="vega")
@@ -41,6 +41,14 @@ def make_equipment_blueprint(
41
41
  .encode(
42
42
  alt.X("time", title="Date"),
43
43
  alt.Y("total_distance_km", title="Cumulative distance / km"),
44
+ tooltip=[
45
+ alt.Tooltip("time:T", title="Date"),
46
+ alt.Tooltip(
47
+ "total_distance_km:Q",
48
+ title="Cumulative distance / km",
49
+ format=".0f",
50
+ ),
51
+ ],
44
52
  )
45
53
  .interactive()
46
54
  .to_json(format="vega")
@@ -61,6 +69,13 @@ def make_equipment_blueprint(
61
69
  scale=make_kind_scale(repository.meta, config),
62
70
  title="Kind",
63
71
  ),
72
+ tooltip=[
73
+ alt.Tooltip("year(start):O", title="Year"),
74
+ alt.Tooltip(
75
+ "sum(distance_km):Q", title="Distance / km", format=".0f"
76
+ ),
77
+ alt.Tooltip("kind:N", title="Kind"),
78
+ ],
64
79
  )
65
80
  .to_json(format="vega")
66
81
  )
@@ -78,6 +93,12 @@ def make_equipment_blueprint(
78
93
  title="Kind",
79
94
  ),
80
95
  alt.Y("sum(distance_km)", title="Distance / km"),
96
+ tooltip=[
97
+ alt.Tooltip("kind:N", title="Kind"),
98
+ alt.Tooltip(
99
+ "sum(distance_km):Q", title="Distance / km", format=".0f"
100
+ ),
101
+ ],
81
102
  )
82
103
  .to_json(format="vega")
83
104
  )
@@ -42,7 +42,7 @@
42
42
  </div>
43
43
 
44
44
  <p>Have a look at the documentation
45
- <a href="https://martin-ueding.github.io/geo-activity-playground/getting-started/advanced-metadata-extraction">Advanced Metadata Extraction</a>
45
+ <a href="https://martin-ueding.github.io/geo-activity-playground/advanced-metadata-extraction">Advanced Metadata Extraction</a>
46
46
  for explanations and examples.</p>
47
47
  </div>
48
48
  </div>
@@ -163,6 +163,13 @@ def plot_monthly_distance(meta: pd.DataFrame, kind_scale: alt.Scale) -> str:
163
163
  alt.Y("sum(distance_km)", title="Distance / km"),
164
164
  alt.Color("kind", scale=kind_scale, title="Kind"),
165
165
  alt.Column("year(start):O", title="Year"),
166
+ [
167
+ alt.Tooltip("yearmonthdate(start)", title="Date"),
168
+ alt.Tooltip(
169
+ "sum(distance_km)", format=".1f", title="Total distance / km"
170
+ ),
171
+ alt.Tooltip("count(distance_km)", title="Number of activities"),
172
+ ],
166
173
  )
167
174
  .resolve_axis(x="independent")
168
175
  .to_json(format="vega")
@@ -180,7 +187,7 @@ def plot_yearly_distance(year_kind_total: pd.DataFrame, kind_scale: alt.Scale) -
180
187
  [
181
188
  alt.Tooltip("year:O", title="Year"),
182
189
  alt.Tooltip("kind", title="Kind"),
183
- alt.Tooltip("distance_km", title="Distance / km"),
190
+ alt.Tooltip("distance_km", title="Distance / km", format=".1f"),
184
191
  ],
185
192
  )
186
193
  .to_json(format="vega")
@@ -210,7 +217,7 @@ def plot_year_cumulative(df: pd.DataFrame) -> str:
210
217
  [
211
218
  alt.Tooltip("week", title="Week"),
212
219
  alt.Tooltip("iso_year:N", title="Year"),
213
- alt.Tooltip("distance_km", title="Distance / km"),
220
+ alt.Tooltip("distance_km", title="Distance / km", format=".1f"),
214
221
  ],
215
222
  )
216
223
  .interactive()
@@ -267,7 +274,7 @@ def plot_weekly_distance(df: pd.DataFrame, kind_scale: alt.Scale) -> str:
267
274
  [
268
275
  alt.Tooltip("year_week", title="Year and Week"),
269
276
  alt.Tooltip("kind", title="Kind"),
270
- alt.Tooltip("distance_km", title="Distance / km"),
277
+ alt.Tooltip("distance_km", title="Distance / km", format=".1f"),
271
278
  ],
272
279
  )
273
280
  .to_json(format="vega")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "geo-activity-playground"
3
- version = "0.38.0"
3
+ version = "0.38.2"
4
4
  description = "Analysis of geo data activities like rides, runs or hikes."
5
5
  authors = ["Martin Ueding <mu@martin-ueding.de>"]
6
6
  license = "MIT"
@@ -11,7 +11,7 @@ geo-activity-playground = "geo_activity_playground.__main__:main"
11
11
  [tool.poetry.dependencies]
12
12
  python = "^3.10,<3.14"
13
13
 
14
- altair = "^5.1.2"
14
+ altair = "^5.5.0"
15
15
  appdirs = "^1.4.4"
16
16
  charset-normalizer = "^3.3.2"
17
17
  coloredlogs = "^15.0.1"
@@ -20,11 +20,11 @@ flask = "^3.0.0"
20
20
  geojson = "^3.0.1"
21
21
  gpxpy = "^1.5.0"
22
22
  jinja2 = "^3.1.2"
23
- matplotlib = "^3.6.3"
24
- numpy = "^2.1.3"
25
- pandas = "^2.2"
23
+ matplotlib = "^3.10.1"
24
+ numpy = "^2.2.3"
25
+ pandas = "^2.2.3"
26
26
  Pillow = "^11.0.0"
27
- pyarrow = "^18.1.0"
27
+ pyarrow = "^19.0.1"
28
28
  python-dateutil = "^2.8.2"
29
29
  requests = "^2.28.1"
30
30
  shapely = "^2.0.5"