geo-activity-playground 1.5.2__py3-none-any.whl → 1.6.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/core/enrichment.py +2 -4
- geo_activity_playground/core/photos.py +7 -3
- geo_activity_playground/core/test_time_zone_from_location.py +6 -0
- geo_activity_playground/core/time_conversion.py +7 -0
- geo_activity_playground/explorer/tile_visits.py +5 -0
- geo_activity_playground/importers/activity_parsers.py +2 -3
- geo_activity_playground/importers/directory.py +16 -1
- geo_activity_playground/importers/strava_checkout.py +2 -0
- geo_activity_playground/webui/static/activity-trim.js +39 -0
- geo_activity_playground/webui/templates/activity/trim.html.j2 +3 -38
- {geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/METADATA +2 -1
- {geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/RECORD +15 -14
- {geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/LICENSE +0 -0
- {geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/WHEEL +0 -0
- {geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/entry_points.txt +0 -0
@@ -13,7 +13,7 @@ from .datamodel import Activity
|
|
13
13
|
from .datamodel import DB
|
14
14
|
from .missing_values import some
|
15
15
|
from .tiles import compute_tile_float
|
16
|
-
from .time_conversion import
|
16
|
+
from .time_conversion import get_timezone
|
17
17
|
|
18
18
|
logger = logging.getLogger(__name__)
|
19
19
|
|
@@ -26,9 +26,7 @@ def enrichment_set_timezone(
|
|
26
26
|
), f"You cannot import an activity without points. {activity=}"
|
27
27
|
latitude, longitude = time_series[["latitude", "longitude"]].iloc[0].to_list()
|
28
28
|
if activity.iana_timezone is None or activity.start_country is None:
|
29
|
-
|
30
|
-
activity.iana_timezone = tz_str
|
31
|
-
activity.start_country = country
|
29
|
+
activity.iana_timezone = get_timezone(latitude, longitude)
|
32
30
|
return True
|
33
31
|
else:
|
34
32
|
return False
|
@@ -23,10 +23,14 @@ def get_metadata_from_image(path: pathlib.Path) -> dict:
|
|
23
23
|
except KeyError:
|
24
24
|
pass
|
25
25
|
try:
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
date_time_original = str(tags["EXIF DateTimeOriginal"]) + str(
|
27
|
+
tags.get("EXIF OffsetTime", "+00:00")
|
28
|
+
).replace(":", "")
|
29
|
+
print(f"Extracted date: {date_time_original}")
|
30
|
+
metadata["time"] = datetime.datetime.strptime(
|
31
|
+
date_time_original, "%Y:%m:%d %H:%M:%S%z"
|
29
32
|
).astimezone(zoneinfo.ZoneInfo("UTC"))
|
33
|
+
|
30
34
|
except KeyError:
|
31
35
|
pass
|
32
36
|
|
@@ -1,7 +1,13 @@
|
|
1
1
|
from .time_conversion import get_country_timezone
|
2
|
+
from .time_conversion import get_timezone
|
2
3
|
|
3
4
|
|
4
5
|
def test_time_zone_from_location() -> None:
|
5
6
|
country, iana_timezone = get_country_timezone(50, 7)
|
6
7
|
assert country == "Germany"
|
7
8
|
assert iana_timezone == "Europe/Berlin"
|
9
|
+
|
10
|
+
|
11
|
+
def test_timezone_finder() -> None:
|
12
|
+
iana_timezone = get_timezone(50, 7)
|
13
|
+
assert iana_timezone == "Europe/Berlin"
|
@@ -2,8 +2,10 @@ import datetime
|
|
2
2
|
import json
|
3
3
|
import logging
|
4
4
|
import zoneinfo
|
5
|
+
from typing import Optional
|
5
6
|
|
6
7
|
import requests
|
8
|
+
import timezonefinder
|
7
9
|
|
8
10
|
from .paths import USER_CACHE_DIR
|
9
11
|
|
@@ -40,3 +42,8 @@ def get_country_timezone(latitude: float, longitude: float) -> tuple[str, str]:
|
|
40
42
|
with open(cache_file, "w") as f:
|
41
43
|
json.dump(data, f)
|
42
44
|
return data["location"], data["iana_timezone"]
|
45
|
+
|
46
|
+
|
47
|
+
def get_timezone(latitude: float, longitude: float) -> Optional[str]:
|
48
|
+
tf = timezonefinder.TimezoneFinder() # reuse
|
49
|
+
return tf.timezone_at(lng=longitude, lat=latitude)
|
@@ -4,6 +4,7 @@ import itertools
|
|
4
4
|
import logging
|
5
5
|
import pathlib
|
6
6
|
import pickle
|
7
|
+
import zoneinfo
|
7
8
|
from typing import Iterator
|
8
9
|
from typing import Optional
|
9
10
|
from typing import TypedDict
|
@@ -272,6 +273,10 @@ def _process_activity(
|
|
272
273
|
def _tiles_from_points(
|
273
274
|
time_series: pd.DataFrame, zoom: int
|
274
275
|
) -> Iterator[tuple[datetime.datetime, int, int]]:
|
276
|
+
# Some people haven't localized their time series yet. This breaks the tile history part. Just assume that it is UTC, should be good enough for tiles.
|
277
|
+
if time_series["time"].dt.tz is None:
|
278
|
+
time_series = time_series.copy()
|
279
|
+
time_series["time"].dt.tz_localize(zoneinfo.ZoneInfo("UTC"))
|
275
280
|
xf = time_series["x"] * 2**zoom
|
276
281
|
yf = time_series["y"] * 2**zoom
|
277
282
|
for t1, x1, y1, x2, y2, s1, s2 in zip(
|
@@ -138,10 +138,9 @@ def read_fit_activity(path: pathlib.Path, open) -> tuple[Activity, pd.DataFrame]
|
|
138
138
|
try:
|
139
139
|
row["speed"] = values["enhanced_speed"] * factor
|
140
140
|
except TypeError as e:
|
141
|
-
|
142
|
-
raise ActivityParseError(
|
141
|
+
logger.warning(
|
143
142
|
f'Cannot work with {values["enhanced_speed"]!r}, {factor!r}'
|
144
|
-
)
|
143
|
+
)
|
145
144
|
if "grade" in fields:
|
146
145
|
row["grade"] = values["grade"]
|
147
146
|
if "temperature" in fields:
|
@@ -4,6 +4,7 @@ import re
|
|
4
4
|
import traceback
|
5
5
|
|
6
6
|
import sqlalchemy
|
7
|
+
from tqdm import tqdm
|
7
8
|
|
8
9
|
from ..core.activities import ActivityRepository
|
9
10
|
from ..core.config import Config
|
@@ -37,8 +38,22 @@ def import_from_directory(
|
|
37
38
|
and not path.stem.startswith(".")
|
38
39
|
and not path.suffix in config.ignore_suffixes
|
39
40
|
]
|
41
|
+
activity_paths.sort()
|
40
42
|
|
41
|
-
|
43
|
+
paths_to_import = [
|
44
|
+
activity_path
|
45
|
+
for activity_path in tqdm(
|
46
|
+
activity_paths, desc="Scanning for new files", delay=1
|
47
|
+
)
|
48
|
+
if DB.session.scalar(
|
49
|
+
sqlalchemy.select(Activity).filter(Activity.path == str(activity_path))
|
50
|
+
)
|
51
|
+
is None
|
52
|
+
]
|
53
|
+
|
54
|
+
for i, activity_path in enumerate(
|
55
|
+
tqdm(paths_to_import, desc="Importing activity files", delay=0)
|
56
|
+
):
|
42
57
|
with DB.session.no_autoflush:
|
43
58
|
activity = DB.session.scalar(
|
44
59
|
sqlalchemy.select(Activity).filter(Activity.path == str(activity_path))
|
@@ -198,6 +198,8 @@ def import_from_strava_checkout(config: Config) -> None:
|
|
198
198
|
|
199
199
|
activity_file = checkout_path / row["Filename"]
|
200
200
|
|
201
|
+
logger.info(f"Importing '{activity_file}' …")
|
202
|
+
|
201
203
|
try:
|
202
204
|
activity, time_series = read_activity(activity_file)
|
203
205
|
except ActivityParseError as e:
|
@@ -0,0 +1,39 @@
|
|
1
|
+
var map = L.map('activity-map', {
|
2
|
+
fullscreenControl: true
|
3
|
+
});
|
4
|
+
L.tileLayer('/tile/pastel/{z}/{x}/{y}.png', {
|
5
|
+
maxZoom: 19,
|
6
|
+
attribution: map_tile_attribution
|
7
|
+
}).addTo(map);
|
8
|
+
|
9
|
+
let copy_to_input = function (value, input) {
|
10
|
+
document.getElementById(input).value = value;
|
11
|
+
}
|
12
|
+
|
13
|
+
let layer = L.geoJSON(color_line_geojson, {
|
14
|
+
pointToLayer: function (feature, lat_lon) {
|
15
|
+
let p = feature.properties
|
16
|
+
|
17
|
+
let marker = null
|
18
|
+
if (p.markerType == "circle") {
|
19
|
+
marker = L.circleMarker(lat_lon, p.markerStyle)
|
20
|
+
} else {
|
21
|
+
marker = L.marker(lat_lon)
|
22
|
+
}
|
23
|
+
|
24
|
+
let text = ''
|
25
|
+
if (p.name) {
|
26
|
+
text += `<button class="btn btn-primary" onclick="copy_to_input(${p.name}, 'begin')">Use as Begin</button>`
|
27
|
+
text += ' '
|
28
|
+
text += `<button class="btn btn-primary" onclick="copy_to_input(${p.name}+1, 'end')">Use as End</button>`
|
29
|
+
}
|
30
|
+
if (text) {
|
31
|
+
marker = marker.bindPopup(text)
|
32
|
+
}
|
33
|
+
|
34
|
+
return marker
|
35
|
+
}
|
36
|
+
})
|
37
|
+
|
38
|
+
layer.addTo(map)
|
39
|
+
map.fitBounds(layer.getBounds());
|
@@ -9,47 +9,12 @@
|
|
9
9
|
|
10
10
|
<a href="{{ url_for('.show', id=activity['id']) }}" class="btn btn-primary btn-small">Back</a>
|
11
11
|
|
12
|
-
|
13
12
|
<div id="activity-map" style="height: 600px;" class="mb-3"></div>
|
14
13
|
<script>
|
15
|
-
var
|
16
|
-
|
17
|
-
});
|
18
|
-
L.tileLayer('/tile/pastel/{z}/{x}/{y}.png', {
|
19
|
-
maxZoom: 19,
|
20
|
-
attribution: '{{ map_tile_attribution|safe }}'
|
21
|
-
}).addTo(map);
|
22
|
-
|
23
|
-
|
24
|
-
let layer = L.geoJSON({{ color_line_geojson| safe }}, {
|
25
|
-
pointToLayer: function (feature, lat_lon) {
|
26
|
-
let p = feature.properties
|
27
|
-
|
28
|
-
let marker = null
|
29
|
-
if (p.markerType == "circle") {
|
30
|
-
marker = L.circleMarker(lat_lon, p.markerStyle)
|
31
|
-
} else {
|
32
|
-
marker = L.marker(lat_lon)
|
33
|
-
}
|
34
|
-
|
35
|
-
let text = ''
|
36
|
-
if (p.name) {
|
37
|
-
text += `<p><b>${p.name}</b></p>`
|
38
|
-
}
|
39
|
-
if (p.description) {
|
40
|
-
text += p.description
|
41
|
-
}
|
42
|
-
if (text) {
|
43
|
-
marker = marker.bindPopup(text)
|
44
|
-
}
|
45
|
-
|
46
|
-
return marker
|
47
|
-
}
|
48
|
-
})
|
49
|
-
|
50
|
-
layer.addTo(map)
|
51
|
-
map.fitBounds(layer.getBounds());
|
14
|
+
var map_tile_attribution = '{{ map_tile_attribution }}';
|
15
|
+
var color_line_geojson = {{ color_line_geojson | safe }};
|
52
16
|
</script>
|
17
|
+
<script src="/static/activity-trim.js"></script>
|
53
18
|
|
54
19
|
<form method="POST">
|
55
20
|
<div class="mb-3">
|
{geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: geo-activity-playground
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.6.0
|
4
4
|
Summary: Analysis of geo data activities like rides, runs or hikes.
|
5
5
|
License: MIT
|
6
6
|
Author: Martin Ueding
|
@@ -37,6 +37,7 @@ Requires-Dist: shapely (>=2.0.5,<3.0.0)
|
|
37
37
|
Requires-Dist: sqlalchemy (>=2.0.40,<3.0.0)
|
38
38
|
Requires-Dist: stravalib (>=2.0,<3.0)
|
39
39
|
Requires-Dist: tcxreader (>=0.4.5,<0.5.0)
|
40
|
+
Requires-Dist: timezonefinder (>=6.5.9,<7.0.0)
|
40
41
|
Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
|
41
42
|
Requires-Dist: tqdm (>=4.64.0,<5.0.0)
|
42
43
|
Requires-Dist: vegafusion-python-embed (>=1.4.3,<2.0.0)
|
@@ -22,14 +22,14 @@ geo_activity_playground/core/config.py,sha256=mmdMQ5iCLNGnAlriT1ETEVS-gM6Aq_9sg2
|
|
22
22
|
geo_activity_playground/core/coordinates.py,sha256=rW_OmMRpTUyIsQwrT6mgT9Y6uPGuwqTo5XDDMS7mGuo,1140
|
23
23
|
geo_activity_playground/core/copernicus_dem.py,sha256=t6Bc9fsyGyx1awdePXvlN-Zc-tiT2eGSJ80SV5B1Z9A,2944
|
24
24
|
geo_activity_playground/core/datamodel.py,sha256=PRqxKlExXxRXkHYIJeNsRr1DZQmdzAwa3PLyivJoix8,15983
|
25
|
-
geo_activity_playground/core/enrichment.py,sha256=
|
25
|
+
geo_activity_playground/core/enrichment.py,sha256=b27E_KK30xjq8MuGFZyIpKzz8fO2LwLVaGGTP0mb5N0,8618
|
26
26
|
geo_activity_playground/core/export.py,sha256=ayOmhWL72263oP9NLIZRYCg_Db0GLUFhgNIL_MCrV-E,4435
|
27
27
|
geo_activity_playground/core/heart_rate.py,sha256=-S3WAhS7AOywrw_Lk5jfuo_fu6zvZQ1VtjwEKSycWpU,1542
|
28
28
|
geo_activity_playground/core/meta_search.py,sha256=nyvCuR7v0pd6KjA8W5Kr71bBafRdE_ol7uSFRJs4eAM,6662
|
29
29
|
geo_activity_playground/core/missing_values.py,sha256=HjonaLV0PFMICnuMrbdUNnK9uy_8PBh_RxI5GuEMQK0,250
|
30
30
|
geo_activity_playground/core/parametric_plot.py,sha256=8CKB8dey7EmZtQnl6IOgBhpxkw0UCpQPWeiBw5PqW8k,5737
|
31
31
|
geo_activity_playground/core/paths.py,sha256=qQ4ujaIHmsxTGEWzf-76XS8FclEI2RC5COTUeuLEbDI,2938
|
32
|
-
geo_activity_playground/core/photos.py,sha256=
|
32
|
+
geo_activity_playground/core/photos.py,sha256=pHdVUpgKfbyrTddZL_mgmsXQJ3k_IHKf70jtcIjjcCA,1229
|
33
33
|
geo_activity_playground/core/privacy_zones.py,sha256=4TumHsVUN1uW6RG3ArqTXDykPVipF98DCxVBe7YNdO8,512
|
34
34
|
geo_activity_playground/core/raster_map.py,sha256=y7maiC_bmUwXsULC_XCZ1m8nGgU2jFe47QFB7TpC_V4,8257
|
35
35
|
geo_activity_playground/core/similarity.py,sha256=L2de3DPRdDeDY5AxZwLDcH7FjHWRWklr41VNU06q9kQ,3117
|
@@ -41,22 +41,22 @@ geo_activity_playground/core/test_missing_values.py,sha256=7yvg6dUu7p8PR_rxUxgFa
|
|
41
41
|
geo_activity_playground/core/test_pandas_timezone.py,sha256=-MDiLoLG5tDMqkI0iKno24kFn9X3tslh9ZpoDYLWNJU,771
|
42
42
|
geo_activity_playground/core/test_summary_stats.py,sha256=qH_45mPRFD2H-Rr0Ku-RYc67vhC7qKxbPr7J2F36uV8,3081
|
43
43
|
geo_activity_playground/core/test_tiles.py,sha256=zce1FxNfsSpOQt66jMehdQRVoNdl-oiFydx6iVBHZXM,764
|
44
|
-
geo_activity_playground/core/test_time_zone_from_location.py,sha256=
|
44
|
+
geo_activity_playground/core/test_time_zone_from_location.py,sha256=frL5QHV7-Tuwo2Igx2kIEyTPbW2t3lusCc4Sl5xWlz0,393
|
45
45
|
geo_activity_playground/core/test_time_zone_import.py,sha256=1CAJyGTHYPoxabBNVRfLhaRNbvvWcAYjJyDR-qvbRjg,3349
|
46
46
|
geo_activity_playground/core/test_timezone_sqlalchemy.py,sha256=OXjdowGXM-DsM4-Mpab8c3j3AtdW_yXp2NgI-B_cbvA,1172
|
47
47
|
geo_activity_playground/core/tiles.py,sha256=LBn2V6WAvMxZeXSIQ8ruZL71iyvOXoFZMz7PZgNUf7M,2189
|
48
|
-
geo_activity_playground/core/time_conversion.py,sha256=
|
48
|
+
geo_activity_playground/core/time_conversion.py,sha256=f5CByqyWSthCplrbXZThSFbt3eY-t1g-2H5lkfBlgc0,1556
|
49
49
|
geo_activity_playground/explorer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
50
|
geo_activity_playground/explorer/grid_file.py,sha256=YNL_c4O1-kxaajATJwj4ZLywCL5Hpj9qy2h-F7rk8Yg,3260
|
51
|
-
geo_activity_playground/explorer/tile_visits.py,sha256=
|
51
|
+
geo_activity_playground/explorer/tile_visits.py,sha256=7B8c9xf7jJFVjXD3SNEgoQb707dHFa4JN0hUdn5z-xQ,16594
|
52
52
|
geo_activity_playground/explorer/video.py,sha256=7j6Qv3HG6On7Tn7xh7Olwrx_fbQnfzS7CeRg3TEApHg,4397
|
53
53
|
geo_activity_playground/heatmap_video.py,sha256=I8i1uVvbbPUXVtvLAROaLy58nQoUPnuMCZkERWNkQjg,3318
|
54
54
|
geo_activity_playground/importers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
|
-
geo_activity_playground/importers/activity_parsers.py,sha256=
|
55
|
+
geo_activity_playground/importers/activity_parsers.py,sha256=MJIsBi2SH5y8Q5D-w9djB4ZFnKxCsoNx5qpynqrubhw,11311
|
56
56
|
geo_activity_playground/importers/csv_parser.py,sha256=O1pP5GLhWhnWcy2Lsrr9g17Zspuibpt-GtZ3ZS5eZF4,2143
|
57
|
-
geo_activity_playground/importers/directory.py,sha256=
|
57
|
+
geo_activity_playground/importers/directory.py,sha256=sHcLIi0DOPEATt4wiE_vp00h89fO940wUQyJZUzzpnw,3978
|
58
58
|
geo_activity_playground/importers/strava_api.py,sha256=Fiqlc-VeuzsvgDcWt71JoPMri221cMjkeL4SH80gC5s,8426
|
59
|
-
geo_activity_playground/importers/strava_checkout.py,sha256=
|
59
|
+
geo_activity_playground/importers/strava_checkout.py,sha256=joJI_uic9fYtu7E5Odh6GUq_LyiLqQ72Ucy_Mbjr-X0,9289
|
60
60
|
geo_activity_playground/importers/test_csv_parser.py,sha256=nOTVTdlzIY0TDcbWp7xNyNaIO6Mkeu55hVziVl22QE4,1092
|
61
61
|
geo_activity_playground/importers/test_directory.py,sha256=_fn_-y98ZyElbG0BRxAmGFdtGobUShPU86SdEOpuv-A,691
|
62
62
|
geo_activity_playground/importers/test_strava_api.py,sha256=7b8bl5Rh2BctCmvTPEhCadxtUOq3mfzuadD6F5XxRio,398
|
@@ -88,6 +88,7 @@ geo_activity_playground/webui/columns.py,sha256=FP0YfX-WFQk1JEXhrywv3NUEVq-x7Hv0
|
|
88
88
|
geo_activity_playground/webui/flasher.py,sha256=Covc1D9cO_jjokRWnvyiXCc2tfp3aZ8XkNqFdA1AXtk,500
|
89
89
|
geo_activity_playground/webui/plot_util.py,sha256=5Uesjj-xcMskQX2z9viDZYHSxLGrH2a5dHA1ogsJW9U,261
|
90
90
|
geo_activity_playground/webui/search_util.py,sha256=gH2cOM1FTAozZUlSQ4C1dR1xlV-8e82pD1PPi_pPBNY,2647
|
91
|
+
geo_activity_playground/webui/static/activity-trim.js,sha256=TVU32IGVweK9KfcMIXbtEo8IeQ36mS--_D8gjBXqBz0,1076
|
91
92
|
geo_activity_playground/webui/static/bootstrap/bootstrap-dark-mode.js,sha256=XfyhxIFgjDc6aEj0kYgKpG5zjS5gvyhWCJmNfUG4HJY,2622
|
92
93
|
geo_activity_playground/webui/static/bootstrap/bootstrap.bundle.min.js,sha256=gvZPYrsDwbwYJLD5yeBfcNujPhRoGOY831wwbIzz3t0,80663
|
93
94
|
geo_activity_playground/webui/static/bootstrap/bootstrap.min.css,sha256=MBffSnbbXwHCuZtgPYiwMQbfE7z-GOZ7fBPCNB06Z98,232948
|
@@ -130,7 +131,7 @@ geo_activity_playground/webui/templates/activity/edit.html.j2,sha256=r979JPqaZi_
|
|
130
131
|
geo_activity_playground/webui/templates/activity/lines.html.j2,sha256=_ZDg1ruW-9UMJfOudy1-uY_-IcSSaagq7tPCih5Bb8g,1079
|
131
132
|
geo_activity_playground/webui/templates/activity/name.html.j2,sha256=RYbNGzPexa4gRUWRjw-C9nWvp5lI7agAZZCS3Du7nAs,2661
|
132
133
|
geo_activity_playground/webui/templates/activity/show.html.j2,sha256=gE4RraLi-h63KvHO4oXLDWPcXN1FB6wqMxVKB75Zn0k,10974
|
133
|
-
geo_activity_playground/webui/templates/activity/trim.html.j2,sha256=
|
134
|
+
geo_activity_playground/webui/templates/activity/trim.html.j2,sha256=4ALQ6ZruhGfK4gAyCzVFl4jEHC-3w9iWjmigsunCe7s,1022
|
134
135
|
geo_activity_playground/webui/templates/auth/index.html.j2,sha256=wzA0uxpiT1ktDadgnjvFXc9iUGMFm9GhjDkavl3S1h4,646
|
135
136
|
geo_activity_playground/webui/templates/bubble_chart/index.html.j2,sha256=yd7lWjtxxVmJZqCiXb0Y1gMEOQ7LQYJXEdpE7JB1OZY,1616
|
136
137
|
geo_activity_playground/webui/templates/calendar/index.html.j2,sha256=8dV9yeDwfv0Mm81mhiPHN5r3hdPUWl1Yye03x0Rqbo8,1601
|
@@ -174,8 +175,8 @@ geo_activity_playground/webui/templates/summary/vega-chart.html.j2,sha256=mw8Hti
|
|
174
175
|
geo_activity_playground/webui/templates/time_zone_fixer/index.html.j2,sha256=s9r6BJMXmd7kLSyjkvH4xLi6e01S5bpGRcMgMMJyCAE,1760
|
175
176
|
geo_activity_playground/webui/templates/upload/index.html.j2,sha256=I1Ix8tDS3YBdi-HdaNfjkzYXVVCjfUTe5PFTnap1ydc,775
|
176
177
|
geo_activity_playground/webui/templates/upload/reload.html.j2,sha256=YZWX5eDeNyqKJdQAywDBcU8DZBm22rRBbZqFjrFrCvQ,556
|
177
|
-
geo_activity_playground-1.
|
178
|
-
geo_activity_playground-1.
|
179
|
-
geo_activity_playground-1.
|
180
|
-
geo_activity_playground-1.
|
181
|
-
geo_activity_playground-1.
|
178
|
+
geo_activity_playground-1.6.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
|
179
|
+
geo_activity_playground-1.6.0.dist-info/METADATA,sha256=gj1svTD4GNI5A8Y8-ZXacM2oDOdvtY7Gk8SM3aENH2A,1937
|
180
|
+
geo_activity_playground-1.6.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
181
|
+
geo_activity_playground-1.6.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
|
182
|
+
geo_activity_playground-1.6.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{geo_activity_playground-1.5.2.dist-info → geo_activity_playground-1.6.0.dist-info}/entry_points.txt
RENAMED
File without changes
|