geo-activity-playground 0.41.0__py3-none-any.whl → 0.43.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 (37) hide show
  1. geo_activity_playground/alembic/script.py.mako +0 -6
  2. geo_activity_playground/alembic/versions/da2cba03b71d_add_photos.py +40 -0
  3. geo_activity_playground/alembic/versions/script.py.mako +6 -0
  4. geo_activity_playground/core/activities.py +7 -15
  5. geo_activity_playground/core/datamodel.py +91 -85
  6. geo_activity_playground/core/enrichment.py +15 -6
  7. geo_activity_playground/core/meta_search.py +78 -34
  8. geo_activity_playground/core/missing_values.py +16 -0
  9. geo_activity_playground/core/paths.py +2 -0
  10. geo_activity_playground/core/test_missing_values.py +19 -0
  11. geo_activity_playground/explorer/tile_visits.py +1 -1
  12. geo_activity_playground/webui/app.py +22 -8
  13. geo_activity_playground/webui/blueprints/activity_blueprint.py +18 -10
  14. geo_activity_playground/webui/blueprints/photo_blueprint.py +198 -0
  15. geo_activity_playground/webui/blueprints/settings_blueprint.py +32 -0
  16. geo_activity_playground/webui/search_util.py +23 -7
  17. geo_activity_playground/webui/templates/activity/edit.html.j2 +15 -0
  18. geo_activity_playground/webui/templates/activity/show.html.j2 +56 -12
  19. geo_activity_playground/webui/templates/eddington/distance.html.j2 +1 -2
  20. geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2 +1 -2
  21. geo_activity_playground/webui/templates/elevation_eddington/index.html.j2 +18 -15
  22. geo_activity_playground/webui/templates/heatmap/index.html.j2 +1 -2
  23. geo_activity_playground/webui/templates/page.html.j2 +8 -0
  24. geo_activity_playground/webui/templates/photo/map.html.j2 +45 -0
  25. geo_activity_playground/webui/templates/photo/new.html.j2 +13 -0
  26. geo_activity_playground/webui/templates/search/index.html.j2 +1 -2
  27. geo_activity_playground/webui/templates/search_form.html.j2 +47 -22
  28. geo_activity_playground/webui/templates/settings/index.html.j2 +9 -0
  29. geo_activity_playground/webui/templates/settings/tags-edit.html.j2 +17 -0
  30. geo_activity_playground/webui/templates/settings/tags-list.html.j2 +19 -0
  31. geo_activity_playground/webui/templates/settings/tags-new.html.j2 +17 -0
  32. geo_activity_playground/webui/templates/summary/index.html.j2 +12 -10
  33. {geo_activity_playground-0.41.0.dist-info → geo_activity_playground-0.43.0.dist-info}/METADATA +3 -1
  34. {geo_activity_playground-0.41.0.dist-info → geo_activity_playground-0.43.0.dist-info}/RECORD +37 -28
  35. {geo_activity_playground-0.41.0.dist-info → geo_activity_playground-0.43.0.dist-info}/WHEEL +1 -1
  36. {geo_activity_playground-0.41.0.dist-info → geo_activity_playground-0.43.0.dist-info}/LICENSE +0 -0
  37. {geo_activity_playground-0.41.0.dist-info → geo_activity_playground-0.43.0.dist-info}/entry_points.txt +0 -0
@@ -1,11 +1,10 @@
1
1
  {% extends "page.html.j2" %}
2
- {% from "search_form.html.j2" import search_form %}
3
2
 
4
3
  {% block container %}
5
4
  <h1 class="mb-3">Eddington Number for Elevation Gain</h1>
6
5
 
7
6
  <div class="mb-3">
8
- {{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
7
+ {% include "search_form.html.j2" %}
9
8
  </div>
10
9
 
11
10
  <div class="row mb-3">
@@ -13,20 +12,21 @@
13
12
  <form method="GET">
14
13
  <div class="mb-3">
15
14
  <label class="form-label">Divisor</label>
16
- <select class="form-select" aria-label="Divisor" name="elevation_eddington_divisor" onchange="this.form.submit()">
15
+ <select class="form-select" aria-label="Divisor" name="elevation_eddington_divisor"
16
+ onchange="this.form.submit()">
17
17
  {% for dv in divisor_values_avail %}
18
18
  <option {% if dv==elevation_eddington_divisor %} selected {% endif %}>{{ dv }}</option>
19
19
  {% endfor %}
20
20
  {% for key, value in query.items() %}
21
- {% if value and key != "active" %}
22
- {% if value is sequence %}
23
- {% for v in value %}
24
- <input type="hidden" name="{{ key }}" value="{{ v }}"/>
25
- {% endfor %}
26
- {% else %}
27
- <input type="hidden" name="{{ key }}" value="{{ value }}"/>
28
- {% endif %}
29
- {% endif %}
21
+ {% if value and key != "active" %}
22
+ {% if value is sequence %}
23
+ {% for v in value %}
24
+ <input type="hidden" name="{{ key }}" value="{{ v }}" />
25
+ {% endfor %}
26
+ {% else %}
27
+ <input type="hidden" name="{{ key }}" value="{{ value }}" />
28
+ {% endif %}
29
+ {% endif %}
30
30
  {% endfor %}
31
31
  </select>
32
32
  </div>
@@ -37,9 +37,11 @@
37
37
  <p>Your Eddington number with divisor {{ elevation_eddington_divisor }} is <b>{{ eddington_number }}</b>.</p>
38
38
 
39
39
  <p>That means that on {{ (eddington_number / elevation_eddington_divisor) | int }} separate days you
40
- have recorded activities with an elevation gain of more than {{ eddington_number }} m. Going high is one thing, going often is
40
+ have recorded activities with an elevation gain of more than {{ eddington_number }} m. Going high is one
41
+ thing, going often is
41
42
  another. But going high often is hard. Also if you increment the Eddington number, all days with less
42
- elevation gain will not count any more. It becomes increasingly hard to increment the Eddington number because you
43
+ elevation gain will not count any more. It becomes increasingly hard to increment the Eddington number
44
+ because you
43
45
  don't only need to achieve a higher count, but all flatter activities don't count towards the bigger number.
44
46
  </p>
45
47
  </div>
@@ -74,7 +76,8 @@
74
76
  <div class="col">
75
77
  <h2>Plot</h2>
76
78
 
77
- <p>In a graphical representation, the Eddington number is the elevation gain where the red line intersects with the
79
+ <p>In a graphical representation, the Eddington number is the elevation gain where the red line intersects with
80
+ the
78
81
  blue area.</p>
79
82
 
80
83
  {{ vega_direct("logarithmic_plot", logarithmic_plot) }}
@@ -1,11 +1,10 @@
1
1
  {% extends "page.html.j2" %}
2
- {% from "search_form.html.j2" import search_form %}
3
2
 
4
3
  {% block container %}
5
4
  <h1 class="mb-3">Heatmap</h1>
6
5
 
7
6
  <div class="mb-3">
8
- {{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
7
+ {% include "search_form.html.j2" %}
9
8
  </div>
10
9
 
11
10
  <div class="row mb-3">
@@ -123,6 +123,12 @@
123
123
  </li>
124
124
  {% endif %}
125
125
 
126
+ {% if photo_count > 0 %}
127
+ <li class="nav-item">
128
+ <a class="nav-link" aria-current="page" href="{{ url_for('photo.map') }}">Photo Map</a>
129
+ </li>
130
+ {% endif %}
131
+
126
132
  <li class="nav-item dropdown">
127
133
  <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown"
128
134
  aria-expanded="false">
@@ -131,6 +137,8 @@
131
137
  <ul class="dropdown-menu">
132
138
  <li><a class="dropdown-item" href="{{ url_for('upload.index') }}">Upload Activities</a>
133
139
  </li>
140
+ <li><a class="dropdown-item" href="{{ url_for('photo.new') }}">Upload Photos</a>
141
+ </li>
134
142
  <li><a class="dropdown-item" href="{{ url_for('upload.reload') }}">Scan New
135
143
  Activities</a>
136
144
  </li>
@@ -0,0 +1,45 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+ <h1>Photo Map</h1>
5
+
6
+ <div id="photo-map" style="height: 800px;" class="mb-3"></div>
7
+ <script>
8
+ var map = L.map('photo-map', {
9
+ fullscreenControl: true
10
+ });
11
+ L.tileLayer('/tile/color/{z}/{x}/{y}.png', {
12
+ maxZoom: 19,
13
+ attribution: '{{ map_tile_attribution|safe }}'
14
+ }).addTo(map);
15
+
16
+ fetch("{{ url_for('photo.map_for_all') }}")
17
+ .then(function (response) {
18
+ return response.json();
19
+ })
20
+ .then(function (data) {
21
+ let layer = L.geoJSON(data, {
22
+ pointToLayer: function (feature, latlng) {
23
+ return L.marker(latlng, {
24
+ icon: new L.Icon({
25
+ iconSize: [32, 32],
26
+ iconAnchor: [16, 16],
27
+ popupAnchor: [16, 0],
28
+ iconUrl: feature.properties.url_marker,
29
+ })
30
+ });
31
+ },
32
+ onEachFeature: function (feature, layer) {
33
+ layer.bindPopup(`<a href="${feature.properties.url_full}" target="_blank"><img src="${feature.properties.url_popup}" /></a>`)
34
+ }
35
+ })
36
+
37
+ let group = L.markerClusterGroup()
38
+ group.addLayer(layer)
39
+
40
+ group.addTo(map);
41
+ map.fitBounds(group.getBounds());
42
+ });
43
+ </script>
44
+
45
+ {% endblock %}
@@ -0,0 +1,13 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+ <h1>Upload Photo</h1>
5
+
6
+ <form method="POST" enctype="multipart/form-data">
7
+ <div class="mb-3">
8
+ <label for="file" class="form-label">Photo file</label>
9
+ <input type="file" name="file" id="file" class="form-control">
10
+ </div>
11
+ <button type="submit" class="btn btn-primary">Upload</button>
12
+ </form>
13
+ {% endblock %}
@@ -1,12 +1,11 @@
1
1
  {% extends "page.html.j2" %}
2
- {% from "search_form.html.j2" import search_form %}
3
2
 
4
3
  {% block container %}
5
4
 
6
5
  <h1 class="row mb-3">Activities Overview & Search</h1>
7
6
 
8
7
  <div class="mb-3">
9
- {{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
8
+ {% include "search_form.html.j2" %}
10
9
  </div>
11
10
 
12
11
  <table class="table table-sort table-arrows">
@@ -1,4 +1,14 @@
1
- {% macro search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) %}
1
+ {% macro _show_search_query(description, url_parameters, is_favorite, request_url) %}
2
+ <li>
3
+ <a href="?{{ url_parameters }}">{{ description }}</a>
4
+ {% if is_favorite %}
5
+ <a href="{{ url_for('search.delete_search_query') }}?{{ url_parameters }}&redirect={{ request_url }}">🗑️</a>
6
+ {% else %}
7
+ <a href="{{ url_for('search.save_search_query') }}?{{ url_parameters }}&redirect={{ request_url }}">💾</a>
8
+ {% endif %}
9
+ </li>
10
+ {% endmacro %}
11
+
2
12
  <div class="accordion" id="search_form_accordion">
3
13
  <div class="accordion-item">
4
14
  <h2 class="accordion-header">
@@ -41,16 +51,27 @@
41
51
  value="{{ query.start_end }}">
42
52
  </div>
43
53
 
54
+ <div class="col-6">
55
+ <label for="distance_km_min" class="form-label">Distance minimum</label>
56
+ <input type="number" class="form-control" id="distance_km_min"
57
+ name="distance_km_min" value="{{ query.distance_km_min }}">
58
+ </div>
59
+ <div class="col-6">
60
+ <label for="distance_km_max" class="form-label">Distance maximum</label>
61
+ <input type="number" class="form-control" id="distance_km_max"
62
+ name="distance_km_max" value="{{ query.distance_km_max }}">
63
+ </div>
64
+
44
65
  <div class="col-12">
45
66
  <label for="" class="form-label">Kind</label>
46
67
  <div class="form-control">
47
68
  {% for kind in kinds_avail %}
48
69
  <div class="form-check form-check-inline">
49
70
  <input class="form-check-input" type="checkbox" name="kind"
50
- value="{{ kind }}" id="kind_{{ kind }}" {% if kind in query.kind %}
51
- checked {% endif %}>
52
- <label class="form-check-label" for="kind_{{ kind }}">
53
- {{ kind }}
71
+ value="{{ kind.id }}" id="kind_{{ kind.id }}" {% if kind.id in
72
+ query.kind %} checked {% endif %}>
73
+ <label class="form-check-label" for="kind_{{ kind.id }}">
74
+ {{ kind.name }}
54
75
  </label>
55
76
  </div>
56
77
  {% endfor %}
@@ -63,10 +84,26 @@
63
84
  {% for equipment in equipments_avail %}
64
85
  <div class="form-check form-check-inline">
65
86
  <input class="form-check-input" type="checkbox" name="equipment"
66
- value="{{ equipment }}" id="equipment_{{ equipment }}" {% if equipment
67
- in query.equipment %} checked {% endif %}>
68
- <label class="form-check-label" for="equipment_{{ equipment }}">
69
- {{ equipment }}
87
+ value="{{ equipment.id }}" id="equipment_{{ equipment.id }}" {% if
88
+ equipment.id in query.equipment %} checked {% endif %}>
89
+ <label class="form-check-label" for="equipment_{{ equipment.id }}">
90
+ {{ equipment.name }}
91
+ </label>
92
+ </div>
93
+ {% endfor %}
94
+ </div>
95
+ </div>
96
+
97
+ <div class="col-12">
98
+ <label for="" class="form-label">Tags</label>
99
+ <div class="form-control">
100
+ {% for tag in tags_avail %}
101
+ <div class="form-check form-check-inline">
102
+ <input class="form-check-input" type="checkbox" name="tag"
103
+ value="{{ tag.id }}" id="tag_{{ tag.id }}" {% if tag.id in query.tag %}
104
+ checked {% endif %}>
105
+ <label class="form-check-label" for="tag_{{ tag.id }}">
106
+ {{ tag.tag }}
70
107
  </label>
71
108
  </div>
72
109
  {% endfor %}
@@ -101,16 +138,4 @@
101
138
  </div>
102
139
  </div>
103
140
  </div>
104
- </div>
105
- {% endmacro %}
106
-
107
- {% macro _show_search_query(description, url_parameters, is_favorite, request_url) %}
108
- <li>
109
- <a href="?{{ url_parameters }}">{{ description }}</a>
110
- {% if is_favorite %}
111
- <a href="{{ url_for('search.delete_search_query') }}?{{ url_parameters }}&redirect={{ request_url }}">🗑️</a>
112
- {% else %}
113
- <a href="{{ url_for('search.save_search_query') }}?{{ url_parameters }}&redirect={{ request_url }}">💾</a>
114
- {% endif %}
115
- </li>
116
- {% endmacro %}
141
+ </div>
@@ -103,6 +103,15 @@
103
103
  </div>
104
104
  </div>
105
105
  </div>
106
+ <div class="col">
107
+ <div class="card">
108
+ <div class="card-body">
109
+ <h5 class="card-title">Tags</h5>
110
+ <p class="card-text">You can assign tags to activities. Create and manage them here.</p>
111
+ <a href="{{ url_for('.tags_list') }}" class="btn btn-primary">Manage tags</a>
112
+ </div>
113
+ </div>
114
+ </div>
106
115
  </div>
107
116
  </div>
108
117
  {% endblock %}
@@ -0,0 +1,17 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+
5
+ <h1 class="mb-3">Edit Tag</h1>
6
+
7
+ <form method="POST">
8
+ <div class="mb-3">
9
+ <label for="tag" class="form-label">Tag</label>
10
+ <input type="text" class="form-control" id="tag" name="tag" value="{{ tag.tag }}" />
11
+ </div>
12
+
13
+ <button type="submit" class="btn btn-primary">Save</button>
14
+ </form>
15
+
16
+
17
+ {% endblock %}
@@ -0,0 +1,19 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+
5
+ <h1 class="mb-3">Tags</h1>
6
+
7
+ <ul>
8
+ {% for tag in tags %}
9
+ <li>
10
+ <b>{{ tag.tag }}</b>
11
+ <a class="btn btn-sm btn-primary" href="{{ url_for('.tags_edit', id=tag.id) }}">Edit</a>
12
+ </li>
13
+ {% endfor %}
14
+ </ul>
15
+
16
+
17
+ <a class="btn btn-primary" href="{{ url_for('.tags_new') }}">New</a>
18
+
19
+ {% endblock %}
@@ -0,0 +1,17 @@
1
+ {% extends "page.html.j2" %}
2
+
3
+ {% block container %}
4
+
5
+ <h1 class="mb-3">Create Tag</h1>
6
+
7
+ <form method="POST">
8
+ <div class="mb-3">
9
+ <label for="tag" class="form-label">Tag</label>
10
+ <input type="text" class="form-control" id="tag" name="tag" />
11
+ </div>
12
+
13
+ <button type="submit" class="btn btn-primary">Save</button>
14
+ </form>
15
+
16
+
17
+ {% endblock %}
@@ -1,12 +1,11 @@
1
1
  {% extends "page.html.j2" %}
2
- {% from "search_form.html.j2" import search_form %}
3
2
 
4
3
  {% block container %}
5
4
 
6
5
  <h1>Summary Statistics</h1>
7
6
 
8
7
  <div class="mb-3">
9
- {{ search_form(query, equipments_avail, kinds_avail, search_query_favorites, search_query_last, request_url) }}
8
+ {% include "search_form.html.j2" %}
10
9
  </div>
11
10
 
12
11
  {% if custom_plots %}
@@ -131,7 +130,8 @@
131
130
  </div>
132
131
 
133
132
  <p>How much elevation have you gained in each year up to that time of the year? The first plot gives you each year as
134
- one line. The second plot shows you how much elevation you have gained in each year and with which activity kinds.</p>
133
+ one line. The second plot shows you how much elevation you have gained in each year and with which activity kinds.
134
+ </p>
135
135
 
136
136
  <div class="row mb-3">
137
137
  <div class="col-md-6">
@@ -144,7 +144,8 @@
144
144
 
145
145
  <div class="row mb-3">
146
146
  <div class="col-md-4">
147
- <p>What's the average elevation gain per activity? This naturally differs per activity and perhaps also varies with
147
+ <p>What's the average elevation gain per activity? This naturally differs per activity and perhaps also varies
148
+ with
148
149
  the years. This table gives you all the mean values.</p>
149
150
  </div>
150
151
 
@@ -178,24 +179,25 @@
178
179
  </div>
179
180
  </div>
180
181
 
181
- <p>Next we take one row per month, each column is a day-of-month. The brighter a box, the more elevation gain you have covered
182
+ <p>Next we take one row per month, each column is a day-of-month. The brighter a box, the more elevation gain you have
183
+ covered
182
184
  on that day. This makes it easy to spot those days where you really covered a lot of elevation gain!</p>
183
185
 
184
186
 
185
187
  <ul class="nav nav-pills mb-3" id="myTab" role="tablist">
186
188
  {% for year, plot in plot_elevation_gain_heatmaps.items() %}
187
189
  <li class="nav-item" role="presentation">
188
- <button class="nav-link {% if loop.last %} active {% endif %}" id="heatmap-elevation-gain-{{ year }}" data-bs-toggle="tab"
189
- data-bs-target="#heatmap-elevation-gain-{{ year }}-pane" type="button" role="tab" aria-controls="heatmap-elevation-gain-{{ year }}-pane"
190
- aria-selected="{{ loop.last }}">{{ year }}</button>
190
+ <button class="nav-link {% if loop.last %} active {% endif %}" id="heatmap-elevation-gain-{{ year }}"
191
+ data-bs-toggle="tab" data-bs-target="#heatmap-elevation-gain-{{ year }}-pane" type="button" role="tab"
192
+ aria-controls="heatmap-elevation-gain-{{ year }}-pane" aria-selected="{{ loop.last }}">{{ year }}</button>
191
193
  </li>
192
194
  {% endfor %}
193
195
  </ul>
194
196
 
195
197
  <div class="tab-content mb-3" id="myTabContent">
196
198
  {% for year, plot in plot_elevation_gain_heatmaps.items() %}
197
- <div class="tab-pane fade {% if loop.last %} show active {% endif %}" id="heatmap-elevation-gain-{{ year }}-pane" role="tabpanel"
198
- aria-labelledby="heatmap-elevation-gain-{{ year }}" tabindex="0">
199
+ <div class="tab-pane fade {% if loop.last %} show active {% endif %}" id="heatmap-elevation-gain-{{ year }}-pane"
200
+ role="tabpanel" aria-labelledby="heatmap-elevation-gain-{{ year }}" tabindex="0">
199
201
  {{ vega_direct("plot_elevation_gain_heatmap_%d"|format(year), plot) }}
200
202
  </div>
201
203
  {% endfor %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: geo-activity-playground
3
- Version: 0.41.0
3
+ Version: 0.43.0
4
4
  Summary: Analysis of geo data activities like rides, runs or hikes.
5
5
  License: MIT
6
6
  Author: Martin Ueding
@@ -11,12 +11,14 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.10
12
12
  Classifier: Programming Language :: Python :: 3.11
13
13
  Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
14
15
  Requires-Dist: Pillow (>=11.0.0,<12.0.0)
15
16
  Requires-Dist: alembic (>=1.15.2,<2.0.0)
16
17
  Requires-Dist: altair (>=5.5.0,<6.0.0)
17
18
  Requires-Dist: appdirs (>=1.4.4,<2.0.0)
18
19
  Requires-Dist: charset-normalizer (>=3.3.2,<4.0.0)
19
20
  Requires-Dist: coloredlogs (>=15.0.1,<16.0.0)
21
+ Requires-Dist: exifread (>=3.2.0,<4.0.0)
20
22
  Requires-Dist: fitdecode (>=0.10.0,<0.11.0)
21
23
  Requires-Dist: flask (>=3.0.0,<4.0.0)
22
24
  Requires-Dist: flask-alembic (>=3.1.1,<4.0.0)
@@ -2,25 +2,27 @@ geo_activity_playground/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
2
2
  geo_activity_playground/__main__.py,sha256=eL7NlKydYrzi4ikTvvKmlwkEFxx0V6CXOHOhRtazmd8,2907
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
- geo_activity_playground/alembic/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
5
+ geo_activity_playground/alembic/script.py.mako,sha256=g1k4U3D8y4PPYRzW3DH7GEu6yN4EiAr62GgCu6cRpBo,524
6
6
  geo_activity_playground/alembic/versions/38882503dc7c_add_tags_to_activities.py,sha256=HmvYgHlVodHB7xyigg7zHkFXSi1znWqKfOHcd6y9sZE,3157
7
7
  geo_activity_playground/alembic/versions/451e7836b53d_add_square_planner_bookmark.py,sha256=WrmlDllnJECg6cSOeS05wYCa977_SXbJUV5khDSzntw,1082
8
8
  geo_activity_playground/alembic/versions/63d3b7f6f93c_initial_version.py,sha256=YTnnENkQ8WqLz7PFof7tUWNkWcoHGkAfAM52x1N9umo,3029
9
9
  geo_activity_playground/alembic/versions/93cc82ad1b60_add_parametricplotspec.py,sha256=P9nG348kz6Wi2lD8lJ_f-0juBtlJb1tqBWYqP2XMQPE,1365
10
10
  geo_activity_playground/alembic/versions/ab83b9d23127_add_upstream_id.py,sha256=Wz02lBP2r7-09DjuQP8u8i7ypQ2SZU5RUc422-_ZBDk,851
11
11
  geo_activity_playground/alembic/versions/b03491c593f6_add_crop_indices.py,sha256=1pt7aes0PWJXZ98HxqeDK-ehaU9KLApjCmZYoqCa8V0,975
12
+ geo_activity_playground/alembic/versions/da2cba03b71d_add_photos.py,sha256=_DvUge61HsoF9LppXuavIzjAhoe1kp-dnaynxtd9h30,1394
12
13
  geo_activity_playground/alembic/versions/e02e27876deb_add_square_planner_bookmark_name.py,sha256=Y0OMxp5z_-CQ83rww6GEBFRawXu0J0pLrLArgSjJ7wQ,866
13
- geo_activity_playground/alembic/versions/script.py.mako,sha256=JADdI7OljvzEw8JTwKoIw589EZWmKBjtqdRsjnpNd_c,578
14
+ geo_activity_playground/alembic/versions/script.py.mako,sha256=3qBrHBf7F7ChKDUIdiNItiSXrDpgQdM7sR0YKzpaC50,689
14
15
  geo_activity_playground/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- geo_activity_playground/core/activities.py,sha256=0dZk_Xa033FwRVXotcac4BxyW0pLNQAymYiWUkVDIYI,4761
16
+ geo_activity_playground/core/activities.py,sha256=apP_-Rg1ub3lh7RARMGXf2BOmJTiahxqpX_soEnYF3E,4681
16
17
  geo_activity_playground/core/config.py,sha256=eGWWbNfHa6H64AHCnFYTsAJ7-pWi-PhyxL4hjZ4u03U,5256
17
18
  geo_activity_playground/core/coordinates.py,sha256=tDfr9mlXhK6E_MMIJ0vYWVCoH0Lq8uyuaqUgaa8i0jg,966
18
- geo_activity_playground/core/datamodel.py,sha256=tOGo5PqcKZ8g3EAqh4vsj8NGBm4WXqBi5ChyqZbmaik,12866
19
- geo_activity_playground/core/enrichment.py,sha256=kc9747ocSs2_3R7oW9Rjs3_lKP37gdvBUbyWpILaqHc,7346
19
+ geo_activity_playground/core/datamodel.py,sha256=fBq2D9N8wjWVSSt0bLqxIOBLouRySO74mcG1Z_vsKVI,12786
20
+ geo_activity_playground/core/enrichment.py,sha256=Hs1lB__s5TwPLOWPaaheOJeJIBQFUa68NTbCI5M5wWI,7640
20
21
  geo_activity_playground/core/heart_rate.py,sha256=-S3WAhS7AOywrw_Lk5jfuo_fu6zvZQ1VtjwEKSycWpU,1542
21
- geo_activity_playground/core/meta_search.py,sha256=naErjAC7ZCFhOF6d492kbegZxCdzbpGcJvjQLJTE4xE,5016
22
+ geo_activity_playground/core/meta_search.py,sha256=Ygh2uySZ9_q-oddU_2vXfzGfXV9rfTyeQFBT7sIiXCI,6657
23
+ geo_activity_playground/core/missing_values.py,sha256=STTNF3L_Zcl3v4QhWaqfPDtsxDu_YBvFjZyugb72XeA,296
22
24
  geo_activity_playground/core/parametric_plot.py,sha256=IefPc6lwthxowvjUDA5wu23oBSw9jq399l04gSaNrOQ,3880
23
- geo_activity_playground/core/paths.py,sha256=aUXGuNn9hBvGPQWPoUJeImHN0PB0fS1tja1tm2eq8mA,2595
25
+ geo_activity_playground/core/paths.py,sha256=CLQYA_6ouxHJYgrt_uGp-9sO7MG60prdD6cvVwhA_2g,2670
24
26
  geo_activity_playground/core/privacy_zones.py,sha256=4TumHsVUN1uW6RG3ArqTXDykPVipF98DCxVBe7YNdO8,512
25
27
  geo_activity_playground/core/raster_map.py,sha256=Cq8dNLdxVQg3Agzn2bmXVu0-8kZf56QrSe-LKNn3jaU,7994
26
28
  geo_activity_playground/core/similarity.py,sha256=L2de3DPRdDeDY5AxZwLDcH7FjHWRWklr41VNU06q9kQ,3117
@@ -28,6 +30,7 @@ geo_activity_playground/core/summary_stats.py,sha256=v5FtWnE1imDF5axI6asVN55wCrl
28
30
  geo_activity_playground/core/tasks.py,sha256=-_9cxekoHSWzCW4XblNeqrwi2tTqr5AE7_-p8fdqhwc,2886
29
31
  geo_activity_playground/core/test_datamodel.py,sha256=-VrGHgx5Z3MSQPqHGmmm7atRJYbg5y_ukvRHKxk22PI,569
30
32
  geo_activity_playground/core/test_meta_search.py,sha256=zhuD343Xce-4Fkznw81DHQ7pK5eyX5UbcyCHuYRKsr8,3091
33
+ geo_activity_playground/core/test_missing_values.py,sha256=zlyrKHLCzUSBdktiy87oKz7_bySpfohVPxG1HRGRHqw,278
31
34
  geo_activity_playground/core/test_summary_stats.py,sha256=qH_45mPRFD2H-Rr0Ku-RYc67vhC7qKxbPr7J2F36uV8,3081
32
35
  geo_activity_playground/core/test_tiles.py,sha256=zce1FxNfsSpOQt66jMehdQRVoNdl-oiFydx6iVBHZXM,764
33
36
  geo_activity_playground/core/test_time_conversion.py,sha256=Sh6nZA3uCTOdZTZa3yOijtR0m74QtZu2mcWXsDNnyQI,984
@@ -35,7 +38,7 @@ geo_activity_playground/core/tiles.py,sha256=lV6X1Uc9XQecu2LALIvxpnMcLsVtWx7JczJ
35
38
  geo_activity_playground/core/time_conversion.py,sha256=x5mXG6Y4GtdX7CBmwucGNSWBp9JQJDbZ7u0JkdUY1Vs,379
36
39
  geo_activity_playground/explorer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
40
  geo_activity_playground/explorer/grid_file.py,sha256=YNL_c4O1-kxaajATJwj4ZLywCL5Hpj9qy2h-F7rk8Yg,3260
38
- geo_activity_playground/explorer/tile_visits.py,sha256=C8IpAGmrjMGYhyTVK-tl2ptM9-CXF2mwibhJYn7gLf8,13905
41
+ geo_activity_playground/explorer/tile_visits.py,sha256=ESHI67xV53gmhMXAFzoPR0Uz7lc8T2gViyvjckrBo90,13907
39
42
  geo_activity_playground/explorer/video.py,sha256=7j6Qv3HG6On7Tn7xh7Olwrx_fbQnfzS7CeRg3TEApHg,4397
40
43
  geo_activity_playground/heatmap_video.py,sha256=I8i1uVvbbPUXVtvLAROaLy58nQoUPnuMCZkERWNkQjg,3318
41
44
  geo_activity_playground/importers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -48,10 +51,10 @@ geo_activity_playground/importers/test_csv_parser.py,sha256=nOTVTdlzIY0TDcbWp7xN
48
51
  geo_activity_playground/importers/test_directory.py,sha256=_fn_-y98ZyElbG0BRxAmGFdtGobUShPU86SdEOpuv-A,691
49
52
  geo_activity_playground/importers/test_strava_api.py,sha256=7b8bl5Rh2BctCmvTPEhCadxtUOq3mfzuadD6F5XxRio,398
50
53
  geo_activity_playground/webui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- geo_activity_playground/webui/app.py,sha256=BOaYo3a8U53w7zgWHLDxiYxrWqHQyW5piGSNoMtW7lc,7277
54
+ geo_activity_playground/webui/app.py,sha256=LEKALJE-856bQE-79MVfsqGHr5G68IIyHL3cmA6eZyU,7888
52
55
  geo_activity_playground/webui/authenticator.py,sha256=jtQqvpVHa_eLTAulmvvJgDRoCWOEege49G9zn3MfYk8,1394
53
56
  geo_activity_playground/webui/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
- geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=lUCoL5meZy2ovvTjLeam0nhTzNVrRpjKHrjW-vnlHcg,24974
57
+ geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=NDFw5v765uGpaX2kMIH09EALsZmYYLSJRkrn7bq_Wvo,25258
55
58
  geo_activity_playground/webui/blueprints/auth_blueprint.py,sha256=_VZeP3VN626BoOOZUkNVnuw9v-cEOrkHz5lhFPmxqMY,784
56
59
  geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py,sha256=xESHzYxlbhz4oNDuxV0A70eVKpFwz84pYC3q_YVZZg8,2812
57
60
  geo_activity_playground/webui/blueprints/calendar_blueprint.py,sha256=4EIBZ8rdXEu3tbl1faVlRwHb8Qp0JuMc3eyxwMkq6g8,2848
@@ -60,9 +63,10 @@ geo_activity_playground/webui/blueprints/entry_views.py,sha256=RK2ypZO75DhweGjoK
60
63
  geo_activity_playground/webui/blueprints/equipment_blueprint.py,sha256=juQ5L2BlrECb00LBbiY2yc0b8W_B9Y3fPwtbiaRfgpo,5634
61
64
  geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=6w6seOCVf7Z5y4BBtgVwoZ4t8qastnm7ViX8Bs_zj2w,15566
62
65
  geo_activity_playground/webui/blueprints/heatmap_blueprint.py,sha256=iHI5YJYhX7ZOlzTgzl2efIRDzt3UMYCx7X4-LVd0MWk,8702
66
+ geo_activity_playground/webui/blueprints/photo_blueprint.py,sha256=sYGp2XVGodkAifGHbEqpIY-7bBH5R7G7Dwg4HqgxMSY,7269
63
67
  geo_activity_playground/webui/blueprints/plot_builder_blueprint.py,sha256=7HrjpBM-608HSOh0i31Lmt7yDNMfWlEn6G7DlYqlV9w,3031
64
68
  geo_activity_playground/webui/blueprints/search_blueprint.py,sha256=Sv_KL1Cdai26y51qVfI-5jZLhtElREsEar1dbR_VAC4,2275
65
- geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=UUv63BDQFnBPq8fLDdlWHd5mxL5qIgcGUuqQRFemyEA,16108
69
+ geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=p_17BC2ZQyPu5VSl7evc5YyQmB3-L-WxgzOTv9UJsK0,17245
66
70
  geo_activity_playground/webui/blueprints/square_planner_blueprint.py,sha256=xVaxJxmt8Dysl3UL9f2y__LVLtTH2Np1Ust4OSXKRAk,4746
67
71
  geo_activity_playground/webui/blueprints/summary_blueprint.py,sha256=rK4LGR2Rpioy4wSqNYuyRn4WxaWeBLensJ3PmAd-ouY,11469
68
72
  geo_activity_playground/webui/blueprints/tile_blueprint.py,sha256=YzZf9OrNdjhc1_j4MtO1DMcw1uCv29ueNsYd-mWqgbg,837
@@ -70,7 +74,7 @@ geo_activity_playground/webui/blueprints/upload_blueprint.py,sha256=_VeGu08vlRZl
70
74
  geo_activity_playground/webui/columns.py,sha256=hSW8bFVKRUMBlWZYAN-tZ_tfED3VDQK75e4Zzw7_jZ0,642
71
75
  geo_activity_playground/webui/flasher.py,sha256=Covc1D9cO_jjokRWnvyiXCc2tfp3aZ8XkNqFdA1AXtk,500
72
76
  geo_activity_playground/webui/plot_util.py,sha256=5Uesjj-xcMskQX2z9viDZYHSxLGrH2a5dHA1ogsJW9U,261
73
- geo_activity_playground/webui/search_util.py,sha256=uAxnN9Tdei8IKV6Lqx4z5UIJf0_HKLd9NG9meiu5u4s,2202
77
+ geo_activity_playground/webui/search_util.py,sha256=gH2cOM1FTAozZUlSQ4C1dR1xlV-8e82pD1PPi_pPBNY,2647
74
78
  geo_activity_playground/webui/static/Leaflet.fullscreen.min.js,sha256=MMWj_yFOercjzhk8wKIIKyDCK7olXrwk_7R7TjDhGYs,3677
75
79
  geo_activity_playground/webui/static/MarkerCluster.Default.css,sha256=LWhzWaQGZRsWFrrJxg-6Zn8TT84k0_trtiHBc6qcGpY,1346
76
80
  geo_activity_playground/webui/static/MarkerCluster.css,sha256=-bdWuWOXMFkX0v9Cvr3OWClPiYefDQz9GGZP_7xZxdc,886
@@ -106,32 +110,34 @@ geo_activity_playground/webui/static/vega@5,sha256=5DLHUaY2P0ph2mKSDMfX69E88J2Cl
106
110
  geo_activity_playground/webui/static/web-app-manifest-192x192.png,sha256=eEImN6iWfSv-EnSNPL5WbX84PKakse_8VZMBPWWye3o,13582
107
111
  geo_activity_playground/webui/static/web-app-manifest-512x512.png,sha256=vU9oQ4HnQerFDZVzcAT9twj4_Doc6_9v9wVvoRI-f_E,48318
108
112
  geo_activity_playground/webui/templates/activity/day.html.j2,sha256=CHEvxlZralCm3-kTbZsGn0xj9VdSv9V5zalPSoAluus,2810
109
- geo_activity_playground/webui/templates/activity/edit.html.j2,sha256=9HDFjYfUQBB6HAgeIZppFPlpiJ1vDZWcGyP7uYG_Hnw,1369
113
+ geo_activity_playground/webui/templates/activity/edit.html.j2,sha256=r979JPqaZi_2ymTykxpkjdpw0D2tsB9VJaf7OaGPaME,1961
110
114
  geo_activity_playground/webui/templates/activity/lines.html.j2,sha256=_ZDg1ruW-9UMJfOudy1-uY_-IcSSaagq7tPCih5Bb8g,1079
111
115
  geo_activity_playground/webui/templates/activity/name.html.j2,sha256=7Wbh3IrVL5lMRve467H0P10Shn5FzGpaXLhV0H-X4Hk,2725
112
- geo_activity_playground/webui/templates/activity/show.html.j2,sha256=70zyc-fIr4JeU7VuLp_O4SYuNMkvDDTnsLFq7woYTlo,8964
116
+ geo_activity_playground/webui/templates/activity/show.html.j2,sha256=FcZajTHRGpWLtV6nes2KjyhvBS5wsc_-WH8m-SCWEAA,10578
113
117
  geo_activity_playground/webui/templates/activity/trim.html.j2,sha256=3oAXQab6QqWjGBC9KCvWNOVn8uRmxoDLj3hx_O63TXc,1836
114
118
  geo_activity_playground/webui/templates/auth/index.html.j2,sha256=ILQ5HvTEYc3OrtOAIFt1VrqWorVD70V9DC342znmP70,579
115
119
  geo_activity_playground/webui/templates/bubble_chart/index.html.j2,sha256=yd7lWjtxxVmJZqCiXb0Y1gMEOQ7LQYJXEdpE7JB1OZY,1616
116
120
  geo_activity_playground/webui/templates/calendar/index.html.j2,sha256=8dV9yeDwfv0Mm81mhiPHN5r3hdPUWl1Yye03x0Rqbo8,1601
117
121
  geo_activity_playground/webui/templates/calendar/month.html.j2,sha256=IEhGqknL69okX5brMzTgZdnmrgUQLmGGkDE5zd7RG7s,2008
118
- geo_activity_playground/webui/templates/eddington/distance.html.j2,sha256=_3oxzHhC_s9ATtvGmuIWKqvjIQYJNvdCxmYnOyN9QnY,3716
119
- geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2,sha256=an8eaZIMFpGwQiwVWkNhLtu6djl_NU7eTaOsBEiMUK8,4931
120
- geo_activity_playground/webui/templates/elevation_eddington/index.html.j2,sha256=pG7w3QY0yZKI322_EzDgCc1c1p5k2Xl-WqemiKa4MVY,4969
122
+ geo_activity_playground/webui/templates/eddington/distance.html.j2,sha256=TkMey-uaPWQO-wiafZtq8GPXQ0jhtXh_ADLC1Tu-iMg,3588
123
+ geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2,sha256=eE-xrhtwvtAohq5VXKZmeBjab3E0R7EdmCJlNTAvFAg,4803
124
+ geo_activity_playground/webui/templates/elevation_eddington/index.html.j2,sha256=Pgis0-yH5qtSwRnJ5H_Umjk1nxk-t-LnpHIqklezPS4,4823
121
125
  geo_activity_playground/webui/templates/equipment/index.html.j2,sha256=wwrGmfCCBn-5CzMymi80hg3lNMZ7J1fAWWl_2zHeiMc,1845
122
126
  geo_activity_playground/webui/templates/explorer/index.html.j2,sha256=3t9ikAF6oMvEaVlS3Kb1tj9ngomIQlatzqPnqVsEDKA,6908
123
127
  geo_activity_playground/webui/templates/explorer/server-side.html.j2,sha256=3eYh3mmgPDmxFjH6Ofx1iw-jptcD9ctZixYh59mka3w,2496
124
- geo_activity_playground/webui/templates/heatmap/index.html.j2,sha256=kTVvEt-GmSNebDlVMa6zwyIuP0mJcZQFuqj-IY8JV5U,1359
128
+ geo_activity_playground/webui/templates/heatmap/index.html.j2,sha256=uM-l4gmDKw6307ZH_zb8zroMTKBuOkrR0Bu4fTEJE0s,1231
125
129
  geo_activity_playground/webui/templates/home.html.j2,sha256=L0wVZ6RA3mel1Wt7ZD7PbaMUEEcdO2XLDy1e1ZdRPUY,2697
126
- geo_activity_playground/webui/templates/page.html.j2,sha256=d8-wLkWPzcuvrbkAT1viTbeVyH29__TMyAoMjYmzuVs,11939
130
+ geo_activity_playground/webui/templates/page.html.j2,sha256=nwuwWfmFe7RnVmXGEYR8cu6en5gKbi2-xSyRxKQC9sc,12368
131
+ geo_activity_playground/webui/templates/photo/map.html.j2,sha256=MWhqt5Q8ExiRhgxndcEnwngOj1qw0E0u4hKuiuY24Gg,1437
132
+ geo_activity_playground/webui/templates/photo/new.html.j2,sha256=GGLejO4ap6ZMe54jZP39ktSLkdw5j67bf5PTlHEK7qc,383
127
133
  geo_activity_playground/webui/templates/plot_builder/edit.html.j2,sha256=x5Ki425me3HY6CcBQ37le9g8rCpbOxFVkdr0N_L84-g,2230
128
134
  geo_activity_playground/webui/templates/plot_builder/index.html.j2,sha256=fBuGLT2HIwlgz5eGeKXOdIDqzDSQoY99w-hyt_0JP-w,832
129
- geo_activity_playground/webui/templates/search/index.html.j2,sha256=_kxTgsdbT8o-4ryW0pvyWE7a-rOs7xzGUpdSPp8Q1is,1320
130
- geo_activity_playground/webui/templates/search_form.html.j2,sha256=TG9xIql0HnhsXtbHZxl3GLBt6cGYjA8jPeBq11syQ3A,6512
135
+ geo_activity_playground/webui/templates/search/index.html.j2,sha256=7W74ecprIWGYZ2-6xFIK_k6_mf-GRyRHNzE3ZjhWDqU,1192
136
+ geo_activity_playground/webui/templates/search_form.html.j2,sha256=QL0inDTaEHPxoQGs3EB19bD0jAMnUkOrb_r5OoQn7JU,8251
131
137
  geo_activity_playground/webui/templates/settings/admin-password.html.j2,sha256=VYwddpObD1RpeTH5Dm4y7VtmT7kwURDCIjxyzJeq08c,495
132
138
  geo_activity_playground/webui/templates/settings/color-schemes.html.j2,sha256=iR91Wxd2_TMuIo9dBDZBrWSUGHNwTwzC6O8oNH-XBt4,1653
133
139
  geo_activity_playground/webui/templates/settings/heart-rate.html.j2,sha256=UPT3MegRgSeff36lhCo0l3ZwhqNSIg5gM6h2s32GkCY,4255
134
- geo_activity_playground/webui/templates/settings/index.html.j2,sha256=3a62-F3EWZpY-n0zB8sBgQSx_HUyr_2OWOa5neln94o,4648
140
+ geo_activity_playground/webui/templates/settings/index.html.j2,sha256=sphzznODrgb9I3SdYoV8zsmnh2FHxzt5NhhrVPPO9wY,5062
135
141
  geo_activity_playground/webui/templates/settings/manage-equipments.html.j2,sha256=vPGGlwyG_xMZc4a6JdajwWMJBfN1lBNBtDSt6QPJBiY,1585
136
142
  geo_activity_playground/webui/templates/settings/manage-kinds.html.j2,sha256=382VW-cEe0iPJ8TNL2jrcRtVYb_RFdzDyeC1ncpWZ9M,1616
137
143
  geo_activity_playground/webui/templates/settings/metadata-extraction.html.j2,sha256=0g9RlHFKipN45RaH_FANWnY1lfXUkKjtc_9B-vJ19LQ,2298
@@ -139,12 +145,15 @@ geo_activity_playground/webui/templates/settings/privacy-zones.html.j2,sha256=Kp
139
145
  geo_activity_playground/webui/templates/settings/segmentation.html.j2,sha256=QV72TZcIxqql-vEsq2lKHzo5UxoxeeXkRA9se46GWKU,1187
140
146
  geo_activity_playground/webui/templates/settings/sharepic.html.j2,sha256=qZkfEpd4CtKKMaSSVadqvNEgMRYLV-0X-pw5-nJvukk,678
141
147
  geo_activity_playground/webui/templates/settings/strava.html.j2,sha256=GCE5gskQ6xJ8AM1qGrrUVLDOiuqg510mWzzsZjia0gk,2211
148
+ geo_activity_playground/webui/templates/settings/tags-edit.html.j2,sha256=OAXg_P-ZN7-LLvvzP0xVtadxb0t0TDD8xiWniL4U1FM,378
149
+ geo_activity_playground/webui/templates/settings/tags-list.html.j2,sha256=AsFhWyMejbNMvOgWhqRtAiJGK8eqkHgECZ7mKFpQWkA,366
150
+ geo_activity_playground/webui/templates/settings/tags-new.html.j2,sha256=xi6KbwydDVrUJM4_ty4KbMa74k3QaoyZhZAn2paERnM,358
142
151
  geo_activity_playground/webui/templates/square_planner/index.html.j2,sha256=-OnY2nQCgZCslOzf28ogZwFykwF8tZm7PgFwOE3eBDk,8176
143
- geo_activity_playground/webui/templates/summary/index.html.j2,sha256=ozGuoF36RBUN56Cnc8AFFguRdu_c4dP4eAotw8aidE8,9262
152
+ geo_activity_playground/webui/templates/summary/index.html.j2,sha256=soGpTK-pD81YBlMWNWLnkWeEmVIbI5JwmGZQUN2c3DI,9151
144
153
  geo_activity_playground/webui/templates/upload/index.html.j2,sha256=I1Ix8tDS3YBdi-HdaNfjkzYXVVCjfUTe5PFTnap1ydc,775
145
154
  geo_activity_playground/webui/templates/upload/reload.html.j2,sha256=YZWX5eDeNyqKJdQAywDBcU8DZBm22rRBbZqFjrFrCvQ,556
146
- geo_activity_playground-0.41.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
147
- geo_activity_playground-0.41.0.dist-info/METADATA,sha256=0vXuY0ptWhByXxwVagr3Xlmgf0Frwhatre1ZPSHM6h4,1758
148
- geo_activity_playground-0.41.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
149
- geo_activity_playground-0.41.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
150
- geo_activity_playground-0.41.0.dist-info/RECORD,,
155
+ geo_activity_playground-0.43.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
156
+ geo_activity_playground-0.43.0.dist-info/METADATA,sha256=KhD9a5T2Tr9eRYK2UjvQK2wd5o-zbtBjpswTzN63RKo,1850
157
+ geo_activity_playground-0.43.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
158
+ geo_activity_playground-0.43.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
159
+ geo_activity_playground-0.43.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