mapillary-tools 0.14.4__py3-none-any.whl → 0.14.6__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.
- mapillary_tools/__init__.py +6 -1
- mapillary_tools/api_v4.py +5 -0
- mapillary_tools/authenticate.py +5 -1
- mapillary_tools/blackvue_parser.py +138 -20
- mapillary_tools/camm/camm_builder.py +5 -1
- mapillary_tools/camm/camm_parser.py +5 -0
- mapillary_tools/commands/__init__.py +5 -0
- mapillary_tools/commands/__main__.py +5 -0
- mapillary_tools/commands/authenticate.py +5 -0
- mapillary_tools/commands/process.py +12 -0
- mapillary_tools/commands/process_and_upload.py +5 -1
- mapillary_tools/commands/sample_video.py +5 -0
- mapillary_tools/commands/upload.py +5 -0
- mapillary_tools/commands/video_process.py +5 -0
- mapillary_tools/commands/video_process_and_upload.py +5 -1
- mapillary_tools/commands/zip.py +5 -0
- mapillary_tools/config.py +5 -0
- mapillary_tools/constants.py +13 -1
- mapillary_tools/exceptions.py +9 -0
- mapillary_tools/exif_read.py +89 -0
- mapillary_tools/exif_write.py +75 -26
- mapillary_tools/exiftool_read.py +89 -0
- mapillary_tools/exiftool_read_video.py +56 -0
- mapillary_tools/exiftool_runner.py +5 -0
- mapillary_tools/ffmpeg.py +5 -0
- mapillary_tools/geo.py +91 -31
- mapillary_tools/geotag/__init__.py +4 -0
- mapillary_tools/geotag/base.py +5 -0
- mapillary_tools/geotag/factory.py +5 -0
- mapillary_tools/geotag/geotag_images_from_exif.py +5 -0
- mapillary_tools/geotag/geotag_images_from_exiftool.py +5 -0
- mapillary_tools/geotag/geotag_images_from_gpx.py +5 -0
- mapillary_tools/geotag/geotag_images_from_gpx_file.py +5 -0
- mapillary_tools/geotag/geotag_images_from_nmea_file.py +5 -0
- mapillary_tools/geotag/geotag_images_from_video.py +6 -0
- mapillary_tools/geotag/geotag_videos_from_exiftool.py +5 -0
- mapillary_tools/geotag/geotag_videos_from_gpx.py +5 -0
- mapillary_tools/geotag/geotag_videos_from_video.py +5 -0
- mapillary_tools/geotag/image_extractors/base.py +5 -0
- mapillary_tools/geotag/image_extractors/exif.py +6 -0
- mapillary_tools/geotag/image_extractors/exiftool.py +5 -0
- mapillary_tools/geotag/options.py +5 -0
- mapillary_tools/geotag/utils.py +5 -0
- mapillary_tools/geotag/video_extractors/base.py +5 -0
- mapillary_tools/geotag/video_extractors/exiftool.py +7 -0
- mapillary_tools/geotag/video_extractors/gpx.py +5 -0
- mapillary_tools/geotag/video_extractors/native.py +5 -0
- mapillary_tools/gpmf/gpmf_gps_filter.py +5 -0
- mapillary_tools/gpmf/gpmf_parser.py +5 -0
- mapillary_tools/gpmf/gps_filter.py +5 -0
- mapillary_tools/history.py +5 -0
- mapillary_tools/http.py +5 -1
- mapillary_tools/ipc.py +5 -0
- mapillary_tools/mp4/__init__.py +4 -0
- mapillary_tools/mp4/construct_mp4_parser.py +5 -0
- mapillary_tools/mp4/io_utils.py +5 -0
- mapillary_tools/mp4/mp4_sample_parser.py +20 -1
- mapillary_tools/mp4/simple_mp4_builder.py +5 -0
- mapillary_tools/mp4/simple_mp4_parser.py +5 -0
- mapillary_tools/process_geotag_properties.py +5 -0
- mapillary_tools/process_sequence_properties.py +213 -31
- mapillary_tools/sample_video.py +13 -1
- mapillary_tools/serializer/description.py +13 -0
- mapillary_tools/serializer/gpx.py +5 -1
- mapillary_tools/store.py +5 -0
- mapillary_tools/telemetry.py +108 -0
- mapillary_tools/types.py +6 -0
- mapillary_tools/upload.py +5 -0
- mapillary_tools/upload_api_v4.py +5 -0
- mapillary_tools/uploader.py +9 -0
- mapillary_tools/utils.py +17 -1
- {mapillary_tools-0.14.4.dist-info → mapillary_tools-0.14.6.dist-info}/METADATA +8 -1
- mapillary_tools-0.14.6.dist-info/RECORD +77 -0
- {mapillary_tools-0.14.4.dist-info → mapillary_tools-0.14.6.dist-info}/WHEEL +1 -1
- mapillary_tools-0.14.4.dist-info/RECORD +0 -77
- {mapillary_tools-0.14.4.dist-info → mapillary_tools-0.14.6.dist-info}/entry_points.txt +0 -0
- {mapillary_tools-0.14.4.dist-info → mapillary_tools-0.14.6.dist-info}/licenses/LICENSE +0 -0
- {mapillary_tools-0.14.4.dist-info → mapillary_tools-0.14.6.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import dataclasses
|
|
@@ -84,6 +89,7 @@ class VideoDescription(_SharedDescription, total=False):
|
|
|
84
89
|
MAPGPSTrack: Required[list[T.Sequence[float | int | None]]]
|
|
85
90
|
MAPDeviceMake: str
|
|
86
91
|
MAPDeviceModel: str
|
|
92
|
+
MAPCameraUUID: str
|
|
87
93
|
|
|
88
94
|
|
|
89
95
|
class _ErrorObject(TypedDict, total=False):
|
|
@@ -201,6 +207,10 @@ VideoDescriptionSchema = {
|
|
|
201
207
|
"type": "string",
|
|
202
208
|
"description": "Device model, e.g. HERO10 Black, DR900S-1CH, Insta360 Titan",
|
|
203
209
|
},
|
|
210
|
+
"MAPCameraUUID": {
|
|
211
|
+
"type": "string",
|
|
212
|
+
"description": "Camera unique identifier, typically derived from camera serial number",
|
|
213
|
+
},
|
|
204
214
|
},
|
|
205
215
|
"required": [
|
|
206
216
|
"MAPGPSTrack",
|
|
@@ -397,6 +407,8 @@ class DescriptionJSONSerializer(BaseSerializer):
|
|
|
397
407
|
desc["MAPDeviceMake"] = metadata.make
|
|
398
408
|
if metadata.model:
|
|
399
409
|
desc["MAPDeviceModel"] = metadata.model
|
|
410
|
+
if metadata.camera_uuid:
|
|
411
|
+
desc["MAPCameraUUID"] = metadata.camera_uuid
|
|
400
412
|
return desc
|
|
401
413
|
|
|
402
414
|
@classmethod
|
|
@@ -490,6 +502,7 @@ class DescriptionJSONSerializer(BaseSerializer):
|
|
|
490
502
|
points=[PointEncoder.decode(entry) for entry in desc["MAPGPSTrack"]],
|
|
491
503
|
make=desc.get("MAPDeviceMake"),
|
|
492
504
|
model=desc.get("MAPDeviceModel"),
|
|
505
|
+
camera_uuid=desc.get("MAPCameraUUID"),
|
|
493
506
|
)
|
|
494
507
|
|
|
495
508
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
import datetime
|
|
2
7
|
import json
|
|
3
8
|
import sys
|
|
@@ -12,7 +17,6 @@ import gpxpy
|
|
|
12
17
|
import gpxpy.gpx
|
|
13
18
|
|
|
14
19
|
from .. import geo, types
|
|
15
|
-
|
|
16
20
|
from ..telemetry import CAMMGPSPoint, GPSPoint
|
|
17
21
|
from ..types import (
|
|
18
22
|
BaseSerializer,
|
mapillary_tools/store.py
CHANGED
mapillary_tools/telemetry.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import dataclasses
|
|
@@ -32,6 +37,57 @@ class GPSPoint(TimestampedMeasurement, Point):
|
|
|
32
37
|
precision: float | None
|
|
33
38
|
ground_speed: float | None
|
|
34
39
|
|
|
40
|
+
def get_gps_epoch_time(self) -> float | None:
|
|
41
|
+
"""Return the GPS epoch time if valid, otherwise None."""
|
|
42
|
+
if self.epoch_time is not None and self.epoch_time > 0:
|
|
43
|
+
return self.epoch_time
|
|
44
|
+
return None
|
|
45
|
+
|
|
46
|
+
def interpolate_with(self, other: Point, t: float) -> Point:
|
|
47
|
+
"""Create a new interpolated GPSPoint using this and other point at time t."""
|
|
48
|
+
base = super().interpolate_with(other, t)
|
|
49
|
+
if not isinstance(other, GPSPoint):
|
|
50
|
+
return base
|
|
51
|
+
|
|
52
|
+
# Interpolate GPSPoint-specific fields
|
|
53
|
+
weight = self._calculate_weight_for_interpolation(other, t)
|
|
54
|
+
epoch_time: float | None
|
|
55
|
+
if (
|
|
56
|
+
self.epoch_time is not None
|
|
57
|
+
and other.epoch_time is not None
|
|
58
|
+
and self.epoch_time > 0
|
|
59
|
+
and other.epoch_time > 0
|
|
60
|
+
):
|
|
61
|
+
epoch_time = self.epoch_time + (other.epoch_time - self.epoch_time) * weight
|
|
62
|
+
else:
|
|
63
|
+
epoch_time = None
|
|
64
|
+
|
|
65
|
+
precision: float | None
|
|
66
|
+
if self.precision is not None and other.precision is not None:
|
|
67
|
+
precision = self.precision + (other.precision - self.precision) * weight
|
|
68
|
+
else:
|
|
69
|
+
precision = None
|
|
70
|
+
|
|
71
|
+
ground_speed: float | None
|
|
72
|
+
if self.ground_speed is not None and other.ground_speed is not None:
|
|
73
|
+
ground_speed = (
|
|
74
|
+
self.ground_speed + (other.ground_speed - self.ground_speed) * weight
|
|
75
|
+
)
|
|
76
|
+
else:
|
|
77
|
+
ground_speed = None
|
|
78
|
+
|
|
79
|
+
return GPSPoint(
|
|
80
|
+
time=base.time,
|
|
81
|
+
lat=base.lat,
|
|
82
|
+
lon=base.lon,
|
|
83
|
+
alt=base.alt,
|
|
84
|
+
angle=base.angle,
|
|
85
|
+
epoch_time=epoch_time,
|
|
86
|
+
fix=self.fix, # Use start point's fix value
|
|
87
|
+
precision=precision,
|
|
88
|
+
ground_speed=ground_speed,
|
|
89
|
+
)
|
|
90
|
+
|
|
35
91
|
|
|
36
92
|
@dataclasses.dataclass
|
|
37
93
|
class CAMMGPSPoint(TimestampedMeasurement, Point):
|
|
@@ -44,6 +100,58 @@ class CAMMGPSPoint(TimestampedMeasurement, Point):
|
|
|
44
100
|
velocity_up: float
|
|
45
101
|
speed_accuracy: float
|
|
46
102
|
|
|
103
|
+
def get_gps_epoch_time(self) -> float | None:
|
|
104
|
+
"""Return the GPS epoch time if valid, otherwise None."""
|
|
105
|
+
if self.time_gps_epoch > 0:
|
|
106
|
+
return self.time_gps_epoch
|
|
107
|
+
return None
|
|
108
|
+
|
|
109
|
+
def interpolate_with(self, other: Point, t: float) -> Point:
|
|
110
|
+
"""Create a new interpolated CAMMGPSPoint using this and other point at time t."""
|
|
111
|
+
base = super().interpolate_with(other, t)
|
|
112
|
+
if not isinstance(other, CAMMGPSPoint):
|
|
113
|
+
return base
|
|
114
|
+
|
|
115
|
+
# Interpolate all CAMM-specific fields
|
|
116
|
+
weight = self._calculate_weight_for_interpolation(other, t)
|
|
117
|
+
time_gps_epoch = (
|
|
118
|
+
self.time_gps_epoch + (other.time_gps_epoch - self.time_gps_epoch) * weight
|
|
119
|
+
)
|
|
120
|
+
horizontal_accuracy = (
|
|
121
|
+
self.horizontal_accuracy
|
|
122
|
+
+ (other.horizontal_accuracy - self.horizontal_accuracy) * weight
|
|
123
|
+
)
|
|
124
|
+
vertical_accuracy = (
|
|
125
|
+
self.vertical_accuracy
|
|
126
|
+
+ (other.vertical_accuracy - self.vertical_accuracy) * weight
|
|
127
|
+
)
|
|
128
|
+
velocity_east = (
|
|
129
|
+
self.velocity_east + (other.velocity_east - self.velocity_east) * weight
|
|
130
|
+
)
|
|
131
|
+
velocity_north = (
|
|
132
|
+
self.velocity_north + (other.velocity_north - self.velocity_north) * weight
|
|
133
|
+
)
|
|
134
|
+
velocity_up = self.velocity_up + (other.velocity_up - self.velocity_up) * weight
|
|
135
|
+
speed_accuracy = (
|
|
136
|
+
self.speed_accuracy + (other.speed_accuracy - self.speed_accuracy) * weight
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
return CAMMGPSPoint(
|
|
140
|
+
time=base.time,
|
|
141
|
+
lat=base.lat,
|
|
142
|
+
lon=base.lon,
|
|
143
|
+
alt=base.alt,
|
|
144
|
+
angle=base.angle,
|
|
145
|
+
time_gps_epoch=time_gps_epoch,
|
|
146
|
+
gps_fix_type=self.gps_fix_type, # Use start point's fix type
|
|
147
|
+
horizontal_accuracy=horizontal_accuracy,
|
|
148
|
+
vertical_accuracy=vertical_accuracy,
|
|
149
|
+
velocity_east=velocity_east,
|
|
150
|
+
velocity_north=velocity_north,
|
|
151
|
+
velocity_up=velocity_up,
|
|
152
|
+
speed_accuracy=speed_accuracy,
|
|
153
|
+
)
|
|
154
|
+
|
|
47
155
|
|
|
48
156
|
@dataclasses.dataclass(order=True)
|
|
49
157
|
class GyroscopeData(TimestampedMeasurement):
|
mapillary_tools/types.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import abc
|
|
@@ -72,6 +77,7 @@ class VideoMetadata:
|
|
|
72
77
|
make: str | None = None
|
|
73
78
|
model: str | None = None
|
|
74
79
|
filesize: int | None = None
|
|
80
|
+
camera_uuid: str | None = None
|
|
75
81
|
|
|
76
82
|
def update_md5sum(self) -> None:
|
|
77
83
|
if self.md5sum is None:
|
mapillary_tools/upload.py
CHANGED
mapillary_tools/upload_api_v4.py
CHANGED
mapillary_tools/uploader.py
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import concurrent.futures
|
|
@@ -797,6 +802,10 @@ class CachedImageUploader:
|
|
|
797
802
|
raise ExifError(
|
|
798
803
|
f"Failed to dump EXIF bytes: {ex}", metadata.filename
|
|
799
804
|
) from ex
|
|
805
|
+
except ValueError as ex:
|
|
806
|
+
raise ExifError(
|
|
807
|
+
f"Failed to dump EXIF bytes: {ex}", metadata.filename
|
|
808
|
+
) from ex
|
|
800
809
|
|
|
801
810
|
# Thread-safe
|
|
802
811
|
def _get_cached_file_handle(self, key: str) -> str | None:
|
mapillary_tools/utils.py
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the BSD license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
1
6
|
from __future__ import annotations
|
|
2
7
|
|
|
3
8
|
import concurrent.futures
|
|
4
|
-
|
|
5
9
|
import hashlib
|
|
6
10
|
import logging
|
|
7
11
|
import os
|
|
@@ -31,6 +35,7 @@ def is_image_file(path: Path) -> bool:
|
|
|
31
35
|
".tiff",
|
|
32
36
|
".pgm",
|
|
33
37
|
".pnm",
|
|
38
|
+
".36p",
|
|
34
39
|
)
|
|
35
40
|
|
|
36
41
|
|
|
@@ -54,6 +59,17 @@ def is_video_file(path: Path) -> bool:
|
|
|
54
59
|
)
|
|
55
60
|
|
|
56
61
|
|
|
62
|
+
def sanitize_serial(s: str | None) -> str | None:
|
|
63
|
+
"""
|
|
64
|
+
Sanitize a serial number by removing all non-alphanumeric characters.
|
|
65
|
+
Returns None if the input is None or if the result is empty after cleaning.
|
|
66
|
+
"""
|
|
67
|
+
if s is None:
|
|
68
|
+
return None
|
|
69
|
+
cleaned = "".join(c for c in s if c.isalnum())
|
|
70
|
+
return cleaned if cleaned else None
|
|
71
|
+
|
|
72
|
+
|
|
57
73
|
def iterate_files(
|
|
58
74
|
root: Path, recursive: bool = False, follow_hidden_dirs: bool = False
|
|
59
75
|
) -> T.Generator[Path, None, None]:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mapillary_tools
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.6
|
|
4
4
|
Summary: Mapillary Image/Video Import Pipeline
|
|
5
5
|
Author-email: Mapillary <support@mapillary.com>
|
|
6
6
|
License: BSD
|
|
@@ -34,6 +34,13 @@ Requires-Dist: tqdm<5.0,>=4.0
|
|
|
34
34
|
Requires-Dist: typing-extensions>=4.12.2
|
|
35
35
|
Dynamic: license-file
|
|
36
36
|
|
|
37
|
+
<!--
|
|
38
|
+
Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
39
|
+
|
|
40
|
+
This source code is licensed under the BSD license found in the
|
|
41
|
+
LICENSE file in the root directory of this source tree.
|
|
42
|
+
-->
|
|
43
|
+
|
|
37
44
|
<p align="center">
|
|
38
45
|
<a href="https://github.com/mapillary/mapillary_tools/">
|
|
39
46
|
<img src="https://raw.githubusercontent.com/mapillary/mapillary_tools/main/docs/images/logo.png">
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
mapillary_tools/__init__.py,sha256=T25Q4iuSoSjqHWYvfcGjMLNihNfE6lJGVDna0AFibZ4,199
|
|
2
|
+
mapillary_tools/api_v4.py,sha256=YpDyzQDp4iLovYqZ0xjErDZskeO90sLdsu6pbD646Qo,5044
|
|
3
|
+
mapillary_tools/authenticate.py,sha256=QFG1-Co_mbd16A2I9XKLE38n3Ut7Axgs0oqwlcvShVs,11921
|
|
4
|
+
mapillary_tools/blackvue_parser.py,sha256=eKMCTULG-0AUWCuNVxouP0w1hxLqTdhrugLROt1AkUI,11002
|
|
5
|
+
mapillary_tools/config.py,sha256=TsCNYTgYFX-5NozUirx-0Yc1sUhVbnbksDMYKRfAUdg,3601
|
|
6
|
+
mapillary_tools/constants.py,sha256=RRps4Va519MvHYzWEgG6Cj9I5M1EsGrkGOF35nbUW-4,6783
|
|
7
|
+
mapillary_tools/exceptions.py,sha256=yKwkLyNaIAbtdj0HhuwTTRZyw6tNL83ON0AKYno3YxE,2729
|
|
8
|
+
mapillary_tools/exif_read.py,sha256=hfbjZn8erXW299gLn5Vzg767zYbRynDCLnGFeVde3PA,34902
|
|
9
|
+
mapillary_tools/exif_write.py,sha256=_KLvO09RqDoLeJXldesjQ_9lBpsiKsQy3Sxj7hVFr6E,10668
|
|
10
|
+
mapillary_tools/exiftool_read.py,sha256=gt7Z3sJTcRK19ocdrDVzIPc2plDg0vQ1N3VcbCrhtfw,19431
|
|
11
|
+
mapillary_tools/exiftool_read_video.py,sha256=uzdlBtT-aGoKsTulF99BdShQKIBOFPXK6iKVjvCNPhY,18180
|
|
12
|
+
mapillary_tools/exiftool_runner.py,sha256=UUP-GxmFFp8Hx7NccvjUT59EdfGM-guV8jl6O4Zimik,1838
|
|
13
|
+
mapillary_tools/ffmpeg.py,sha256=YUfeu64fZTB82ft0ppAnQLgo0gS5faLvx38Rj8D6yks,23088
|
|
14
|
+
mapillary_tools/geo.py,sha256=JsD0ohunIji7aAPsJWKY_z-eohhjRpZNoJBl02RWM_k,13228
|
|
15
|
+
mapillary_tools/history.py,sha256=dPDu-PjVf9FpGAZgK1-vpqpSx6BVuVI2e3kh8Xh1LI4,6467
|
|
16
|
+
mapillary_tools/http.py,sha256=5BrGimzF3tS_aV7bBxeeQDBsr7qWiIJ_Jh6VkgTsm-8,6590
|
|
17
|
+
mapillary_tools/ipc.py,sha256=My5y9AHrddtiK909vBX7HmTPy3l95a7yanpjx4MxPp8,1269
|
|
18
|
+
mapillary_tools/process_geotag_properties.py,sha256=6SwZhR8_4mNSrRM7GE7fnFPiRWVoURrdX4_NBRsGxAI,14385
|
|
19
|
+
mapillary_tools/process_sequence_properties.py,sha256=77o3VWTUPjp_jUw2WtBMCgfv6Ncu2dcdaXLCrv3_RGU,31136
|
|
20
|
+
mapillary_tools/sample_video.py,sha256=GLgV-rrzpi8YLEPpYj0tWu6ggsXrMbmFQd_TGRRGAZQ,14453
|
|
21
|
+
mapillary_tools/store.py,sha256=fqeALcDhax_ZXJkDdKRDjTk2ZznlVk1Lx6ycWx-KmW0,4257
|
|
22
|
+
mapillary_tools/telemetry.py,sha256=ceMqMqTLcOBXb88eoQ94ApEeVQvk9iwvEzGSESj90oQ,5632
|
|
23
|
+
mapillary_tools/types.py,sha256=3MQADphbMu8nsQJxXmMyMAf0XUeDDjbFTR0y-Rg3JEk,6124
|
|
24
|
+
mapillary_tools/upload.py,sha256=gC80pgiTiTlk7FQzbbmn05JVc4i7_PJ608y9fw5WWig,24227
|
|
25
|
+
mapillary_tools/upload_api_v4.py,sha256=dNbKqgmSareVtuGYS3q7-dMaHx7ykExB4y05du92p78,7524
|
|
26
|
+
mapillary_tools/uploader.py,sha256=3jOHKkFwHTM7syrMOvTxI2Ukq30KOe-x0nHePmXt6mg,46970
|
|
27
|
+
mapillary_tools/utils.py,sha256=NEEb3IEDK3LNMHF7DYTULYxTR_zGsxPgPI4r_ewrrgU,8654
|
|
28
|
+
mapillary_tools/camm/camm_builder.py,sha256=7bfkiTG1AW-Q-ln44S1yDHJUhwWpWSmkWR6kfRgc1mE,9390
|
|
29
|
+
mapillary_tools/camm/camm_parser.py,sha256=9jWc_lqt4rtnFIW05Kz5dQftaEyyBhLRVSimuJgZtIc,18223
|
|
30
|
+
mapillary_tools/commands/__init__.py,sha256=OnLpb0AbvxEhHIMOflnm9tvI34DsThoSBQckix6jNN8,351
|
|
31
|
+
mapillary_tools/commands/__main__.py,sha256=JdYrrhpmFo8rExeXQr12wirymg7ynZgIJZY3pvolzys,5015
|
|
32
|
+
mapillary_tools/commands/authenticate.py,sha256=i1-BigjrzcvNG-M_uHDgfJg8pidSYIq5mpsvyl_x-7s,1524
|
|
33
|
+
mapillary_tools/commands/process.py,sha256=qfQ2y88hSIIGIyWwLOybx3kLw5CtBD3zP8HZ9-6i0IQ,10187
|
|
34
|
+
mapillary_tools/commands/process_and_upload.py,sha256=gcodOJDE2Krml-vqxztWZowW2NZTjwXVUx7ZD3UgqKw,1220
|
|
35
|
+
mapillary_tools/commands/sample_video.py,sha256=fMbfmelUZ_YkQZ02rLPlxDNbMKerJ5ygLj_9EhOyJh4,3433
|
|
36
|
+
mapillary_tools/commands/upload.py,sha256=F4uo8ta8A-w71c_p_6_h1XqJiAlxmyqFwErh5CZkcZ8,3280
|
|
37
|
+
mapillary_tools/commands/video_process.py,sha256=jwdxeRs86DHL0H_TmCfP1H0pwh7G4E5jxLR9pXEPtzY,1070
|
|
38
|
+
mapillary_tools/commands/video_process_and_upload.py,sha256=-aHA-ZccBtKir93um_v1gd73svSLzPn-uDpRh32ZGAc,1267
|
|
39
|
+
mapillary_tools/commands/zip.py,sha256=cPhVw5vWDYYzLqHNNX8xUHuq_D5TP7xEXDfHPGEb3ZA,1171
|
|
40
|
+
mapillary_tools/geotag/__init__.py,sha256=T6ERU4GCbpsXvJ8PSz2ZfS1oM4Fo_zxMlQ8qgfod7g8,179
|
|
41
|
+
mapillary_tools/geotag/base.py,sha256=OvwBG7ivAyjh3UL47llISj_VOSdosqL1o-BbDprEHLA,5346
|
|
42
|
+
mapillary_tools/geotag/factory.py,sha256=26HnskiZCK9cXyYP2Oh2WWVgC4-ltz3lY2VIYWHEQzU,10451
|
|
43
|
+
mapillary_tools/geotag/geotag_images_from_exif.py,sha256=VQQPyCgvGn68H6NiBPdbtF7Q0ZJ_y6jNDI89vw_GBc4,788
|
|
44
|
+
mapillary_tools/geotag/geotag_images_from_exiftool.py,sha256=Ics6ZioO-tEobIr8htJa4lOTkN_wKrweGgGUL6vNJgo,5887
|
|
45
|
+
mapillary_tools/geotag/geotag_images_from_gpx.py,sha256=44S5D3v-cyAE69gdmesQ1YfiS1pSC0lMwTJOQT650FE,6493
|
|
46
|
+
mapillary_tools/geotag/geotag_images_from_gpx_file.py,sha256=eu9jqv8KqGYWIuv8x-mTmkJkIc_7rmFTL4V-9isV_UY,1301
|
|
47
|
+
mapillary_tools/geotag/geotag_images_from_nmea_file.py,sha256=3SwQGrciZgnQN6SXLsCKuBY6kPNUP74UAz2txNHJ06o,1777
|
|
48
|
+
mapillary_tools/geotag/geotag_images_from_video.py,sha256=AkDvG7wF3F1ctBr7OVjlYd173isSbzhG5RFA_sPi-l0,4663
|
|
49
|
+
mapillary_tools/geotag/geotag_videos_from_exiftool.py,sha256=-lCXmJERMkt53HZUUZhuEKMUxJ4BzDmyOYeXM2kO214,5525
|
|
50
|
+
mapillary_tools/geotag/geotag_videos_from_gpx.py,sha256=KXiV4mV0gLangoFzf1crLWjeHO-_UZ4TknXKt-4x0yc,1833
|
|
51
|
+
mapillary_tools/geotag/geotag_videos_from_video.py,sha256=W6kC90l1uvQyOQd7B9zf8pcvfVeCTM2yXbc9ZyC2GVA,1043
|
|
52
|
+
mapillary_tools/geotag/options.py,sha256=7SurJ2tmJ1-O7qM2sMN8yRPMfUEcogOmDGL-cg6_xwE,5346
|
|
53
|
+
mapillary_tools/geotag/utils.py,sha256=7wkY-aUnU_rgu7TQxYMftZg_awkTz9-_e6gILtqNRz4,1768
|
|
54
|
+
mapillary_tools/geotag/image_extractors/base.py,sha256=8cTGSW3622j3U8wTm5SeQPQ9FWIEIxJRK45K-Zp7rjw,538
|
|
55
|
+
mapillary_tools/geotag/image_extractors/exif.py,sha256=3-7Jm7zjYLoYxalkVEXBzMPuelIp-CB8bXIz9eSgeVE,2317
|
|
56
|
+
mapillary_tools/geotag/image_extractors/exiftool.py,sha256=ZnCtnn02PkSz1fQ2VkCKfU9eX7xgu3iaiWbklhyJZbg,677
|
|
57
|
+
mapillary_tools/geotag/video_extractors/base.py,sha256=mxNeIOsgJePBxqr7tSKZujLBcbIUDWUsRTGu3WfagDA,530
|
|
58
|
+
mapillary_tools/geotag/video_extractors/exiftool.py,sha256=w_s7PEyBVc5cmo8pVknwQKKNg3B6ZPXscJFaCYUDKk4,2571
|
|
59
|
+
mapillary_tools/geotag/video_extractors/gpx.py,sha256=Qmqu__6LAA7kZ6M1CKbxExe2Utz9r4hcOQZhhRFL1jg,4003
|
|
60
|
+
mapillary_tools/geotag/video_extractors/native.py,sha256=o1HZzJ_HR8ZAcIWgGHUUawUnha4DWorNAeo_dFXj-tw,5966
|
|
61
|
+
mapillary_tools/gpmf/gpmf_gps_filter.py,sha256=Rl0klukhonY_R5sACdX4lP3p17VYrZbpgbzMa0vl9fY,2935
|
|
62
|
+
mapillary_tools/gpmf/gpmf_parser.py,sha256=_U9fqnoeRwTXpsmoa4NdT4g_eor0HE8k6qfwP3JZ1eg,24850
|
|
63
|
+
mapillary_tools/gpmf/gps_filter.py,sha256=2QgVR0X-d1oNTZa4FFwQ_qYeNyPHnT98vPeOuNToKoI,3976
|
|
64
|
+
mapillary_tools/mp4/__init__.py,sha256=T6ERU4GCbpsXvJ8PSz2ZfS1oM4Fo_zxMlQ8qgfod7g8,179
|
|
65
|
+
mapillary_tools/mp4/construct_mp4_parser.py,sha256=9EEEZbYWTrRQvSNAVwDpkDoRxluqhk7w2mQDlHA-xg4,17466
|
|
66
|
+
mapillary_tools/mp4/io_utils.py,sha256=KNx_6r-QZQKuOX25bAVIc9bWGPqLS2eCU6mfia7s4xY,5596
|
|
67
|
+
mapillary_tools/mp4/mp4_sample_parser.py,sha256=RwIumnR1pVh1sCuBZmBVwxxyWeZyrpPWK2fKMeFK8Hc,12432
|
|
68
|
+
mapillary_tools/mp4/simple_mp4_builder.py,sha256=GTct-yPgf92_yGZ5-quAtGqbF9Tamw07dIzDYSnpedU,12914
|
|
69
|
+
mapillary_tools/mp4/simple_mp4_parser.py,sha256=83bKqEL3Mza40dprVu_sFDNu82pcylHpCVcIk-K3NgQ,6495
|
|
70
|
+
mapillary_tools/serializer/description.py,sha256=U6mrVmFrWxVXeA_XCSnuHF83d6TQg5y_Zyn2kvFqDdE,19159
|
|
71
|
+
mapillary_tools/serializer/gpx.py,sha256=PE0OeM4X98MCxOtribAPO3u8pl6VOzhX5AOqGF27eQA,4562
|
|
72
|
+
mapillary_tools-0.14.6.dist-info/licenses/LICENSE,sha256=l2D8cKfFmmJq_wcVq_JElPJrlvWQOzNWx7gMLINucxc,1292
|
|
73
|
+
mapillary_tools-0.14.6.dist-info/METADATA,sha256=ooPi6cTqKIQvJ1rShPSNkvQfHnWXPaWayYWD5fE6KsQ,22382
|
|
74
|
+
mapillary_tools-0.14.6.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
75
|
+
mapillary_tools-0.14.6.dist-info/entry_points.txt,sha256=A3f3LP-BO_P-U8Y29QfpT4jx6Mjk3sXjTi2Yew4bvj8,75
|
|
76
|
+
mapillary_tools-0.14.6.dist-info/top_level.txt,sha256=FbDkMgOrt1S70ho1WSBrOwzKOSkJFDwwqFOoY5-527s,16
|
|
77
|
+
mapillary_tools-0.14.6.dist-info/RECORD,,
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
mapillary_tools/__init__.py,sha256=SlLq3LO5ZN4Ap8_XR8x6nXyckJ4qcIktiWVQg34oqMY,19
|
|
2
|
-
mapillary_tools/api_v4.py,sha256=bckAU_atUs0pSuqySeY4W0Rs011a21ClJHo_mbbcXXw,4864
|
|
3
|
-
mapillary_tools/authenticate.py,sha256=mmaOwjQ444DcX4lRw2ms3naBg5Y_xwIJAIWeVdsQfqM,11742
|
|
4
|
-
mapillary_tools/blackvue_parser.py,sha256=ea2JtU9MWU6yB0bQlF970_Of0bJVofSTRq1P30WKW-0,5623
|
|
5
|
-
mapillary_tools/config.py,sha256=LDxQoL2StjLGPefCN0y67nhIDN3xSE6Qn8G-tWC-oGA,3421
|
|
6
|
-
mapillary_tools/constants.py,sha256=fk5HBczTBGyDOKQy-grzlf0SafiGwggdF8Ota13Rk0k,6235
|
|
7
|
-
mapillary_tools/exceptions.py,sha256=uxTgBEfXgGxT0XNGRIAZ5mjtdqsCYfP6gnaXAK_ewBM,2483
|
|
8
|
-
mapillary_tools/exif_read.py,sha256=nAbZDYAIBx3g4n6QIGKXX3s-A3SkfuvZQBInDrXMlKk,32220
|
|
9
|
-
mapillary_tools/exif_write.py,sha256=I9GSs8KRd28QyKPVNHuxesSVbBvahHqKBS3nw9HoLsg,8830
|
|
10
|
-
mapillary_tools/exiftool_read.py,sha256=5uatYE9mgbg2d9NAnPfX22nSRBjXhJ9ayMqNMd4QwGM,15779
|
|
11
|
-
mapillary_tools/exiftool_read_video.py,sha256=23O_bjUOVq6j7i3xMz6fY-XIEsjinsCejK_0nrbFyOM,16084
|
|
12
|
-
mapillary_tools/exiftool_runner.py,sha256=g4gSyqeh3D6EnMJ-c3s-RnO2EP_jD354Qkaz0Y-4D04,1658
|
|
13
|
-
mapillary_tools/ffmpeg.py,sha256=akpvvsjAR-Iiv-hOrUoJvPM9vUU3JqMQ5HJL1_NgwB8,22908
|
|
14
|
-
mapillary_tools/geo.py,sha256=mWaESfDf_zHmyvnt5aVFro4FGrjiULNsuZ6HfGUWvSA,11009
|
|
15
|
-
mapillary_tools/history.py,sha256=MoJVp2D-JUPoORDvNhGt-2dgBstPLZ4nyPToIuqIAg4,6287
|
|
16
|
-
mapillary_tools/http.py,sha256=-df_oGyImO2AOmPnXcKMcztlL4LOZLArE6ki81NMGUA,6411
|
|
17
|
-
mapillary_tools/ipc.py,sha256=DwWQb9hNshx0bg0Fo5NjY0mXjs-FkbR6tIQmjMgMtmg,1089
|
|
18
|
-
mapillary_tools/process_geotag_properties.py,sha256=3EaVvjfKB-O38OjopBcxeEdP6qI5IPIxqmO6isjcXKM,14205
|
|
19
|
-
mapillary_tools/process_sequence_properties.py,sha256=n4VjQHrgVjksIr3WoBviRhrQIBBDHGXMClolfyz6tu4,24057
|
|
20
|
-
mapillary_tools/sample_video.py,sha256=pKSj1Vc8e5p1XGjykBuKY9XieTOskc-9L3F4L407jDM,13935
|
|
21
|
-
mapillary_tools/store.py,sha256=dA1D0afDvhVm0MYEI1yA5FfqjQM5etYK4pcfMc4nKAU,4077
|
|
22
|
-
mapillary_tools/telemetry.py,sha256=lL6qQbtOZft4DZZrCNK3njlwHT_30zLyYS_YRN5pgHY,1568
|
|
23
|
-
mapillary_tools/types.py,sha256=pIU2wcxiOUWT5Pd05pgNzY9EVEDlwoldtlF2IIYYvE0,5909
|
|
24
|
-
mapillary_tools/upload.py,sha256=XejAgmVW4Y33MiQ2g-shvHZA_zXTekEsOUHUHNx2AE4,24047
|
|
25
|
-
mapillary_tools/upload_api_v4.py,sha256=VgOf7RhfUuzmlSBUp5CpekKIJ0xQrC0r-r0Ds9-wU4I,7344
|
|
26
|
-
mapillary_tools/uploader.py,sha256=T2BNlncuFibg5RJ7c2qweUXDAg6-zYc-rdgbV_JEKDU,46636
|
|
27
|
-
mapillary_tools/utils.py,sha256=HjTZ01GQv_UNGySaTZ_Mc1Gn_Y0x3knQf7Vh17whDFw,8108
|
|
28
|
-
mapillary_tools/camm/camm_builder.py,sha256=ub6Z9ijep8zAo1NOlU51Gxk95kQ2vfN58YgVCLmNMRk,9211
|
|
29
|
-
mapillary_tools/camm/camm_parser.py,sha256=aNHP65hNXYQBWBTfhaj_S5XYzmAHhjwcAfGhbm83__o,18043
|
|
30
|
-
mapillary_tools/commands/__init__.py,sha256=41CFrPLGlG3566uhxssEF3TGAtSpADFPPcDMHbViU0E,171
|
|
31
|
-
mapillary_tools/commands/__main__.py,sha256=W4jMlCA1jekytKA9MMn3mhKie2jgRhc00ylOY2lCxiw,4835
|
|
32
|
-
mapillary_tools/commands/authenticate.py,sha256=yqtpHMYzkyBrrchj6MARxB0ywUTfqCEOPkMbkyaO9Ks,1344
|
|
33
|
-
mapillary_tools/commands/process.py,sha256=Japc6_P0B_8HzoM8_82P3_YAiyBBaQZXS9TZF46pbMM,9771
|
|
34
|
-
mapillary_tools/commands/process_and_upload.py,sha256=-RB_86a5xKfQ7Ye79dh6yyJQpZg2xnJZAWOJsUNbUtQ,1041
|
|
35
|
-
mapillary_tools/commands/sample_video.py,sha256=jtnrZrsqqv5eYV1chNTas7RhfbeKBqbAUDUNRFjF01w,3253
|
|
36
|
-
mapillary_tools/commands/upload.py,sha256=Z06YJ_mZKiBQ1zLojGf6I5t1X4YBcK19sHD-9C0gdXM,3100
|
|
37
|
-
mapillary_tools/commands/video_process.py,sha256=-wQeeIwWXPmy81HQHam5A0huMLRHknkEFa_V1OwElU4,890
|
|
38
|
-
mapillary_tools/commands/video_process_and_upload.py,sha256=hOyq9L9TuD0JcqFSOOxdCdgsBA1iJ6fu1TtDbsUr8sI,1088
|
|
39
|
-
mapillary_tools/commands/zip.py,sha256=DVQuMLpbstwiy5o4pU_fBvM6eORuFjLeySd80AhHKU0,991
|
|
40
|
-
mapillary_tools/geotag/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
mapillary_tools/geotag/base.py,sha256=GVKorhJcTivvakcUfPzR6KMzRoIK1pxknDlLDqY2XUk,5166
|
|
42
|
-
mapillary_tools/geotag/factory.py,sha256=6CNQRTr9HTmOA65Iz09CVlGJCGdzOeS0sx5QZO_DXPY,10271
|
|
43
|
-
mapillary_tools/geotag/geotag_images_from_exif.py,sha256=a5fDOp4tlEoVNwrOCJBrvSPzu1LbyxL4RNrNDD0tPP0,608
|
|
44
|
-
mapillary_tools/geotag/geotag_images_from_exiftool.py,sha256=T_IOWgvieqCpfDUdma7K3qmAilme-wdjYrD4lSOdAM4,5707
|
|
45
|
-
mapillary_tools/geotag/geotag_images_from_gpx.py,sha256=EyhJjpP1L_DPRCX926aKeTvuxFxD-eWVCWgELp0-pzY,6313
|
|
46
|
-
mapillary_tools/geotag/geotag_images_from_gpx_file.py,sha256=HYQkwak32YBDuRrTNiIZOmE3iImCRc22HWWb485WRS4,1121
|
|
47
|
-
mapillary_tools/geotag/geotag_images_from_nmea_file.py,sha256=J8xj6ch9bMPRubJtsRGeb3sb9LyB0ZYy65NPEOVkUe8,1597
|
|
48
|
-
mapillary_tools/geotag/geotag_images_from_video.py,sha256=3NV3-NfSkxT0n_n8Ajqjab24x29H2vL98DpwJqnIvT8,4411
|
|
49
|
-
mapillary_tools/geotag/geotag_videos_from_exiftool.py,sha256=Splhtv21JvrbFPVuKycf5wen0wOJ0zqOWk8d4aSw-ys,5345
|
|
50
|
-
mapillary_tools/geotag/geotag_videos_from_gpx.py,sha256=IoV7asxl7dojF1lftvohm1jK_LboFg_mBz25GiV_CsY,1653
|
|
51
|
-
mapillary_tools/geotag/geotag_videos_from_video.py,sha256=T8XS4lVF2Wz4eDXNi5Vt076M5dxjxJXibVrWhqVvErs,863
|
|
52
|
-
mapillary_tools/geotag/options.py,sha256=AgINCSBlxT9Etfu05zuzunWgcCHVWdFjWVL7oBduL4g,5166
|
|
53
|
-
mapillary_tools/geotag/utils.py,sha256=tixXiN3uda2HuMnuXVu4xapgoSzZ86kNlJJQ66QERk0,1588
|
|
54
|
-
mapillary_tools/geotag/image_extractors/base.py,sha256=XoNrLCbJtd-MN-snbhv6zyr6zBfJRoJkntV0ptrh6qg,358
|
|
55
|
-
mapillary_tools/geotag/image_extractors/exif.py,sha256=cCUegbFqWxjAP4oOP1nZmwoJISWeKgjGO8h_t7nucHs,2079
|
|
56
|
-
mapillary_tools/geotag/image_extractors/exiftool.py,sha256=zokJmf-D2rPvASRJs3dZzEu7j82igpMOr4SE6Z1nsVg,497
|
|
57
|
-
mapillary_tools/geotag/video_extractors/base.py,sha256=KxyKxoh_mV-XBnJq3dSzNEt2rQqZAKjmS3GazsdYbnc,350
|
|
58
|
-
mapillary_tools/geotag/video_extractors/exiftool.py,sha256=mH9arsWBaArYhNMxnrRpoEa3YrMjSpCiZaz-baJRMCo,2305
|
|
59
|
-
mapillary_tools/geotag/video_extractors/gpx.py,sha256=1JDuGLgp3wpaAqfq3ln4DMsVt820dK5HZ3VfJnok98c,3823
|
|
60
|
-
mapillary_tools/geotag/video_extractors/native.py,sha256=_xmTQ6nrvdwkadMmIxrhw6rvGTGwQVmrdSkYLhhV1SM,5786
|
|
61
|
-
mapillary_tools/gpmf/gpmf_gps_filter.py,sha256=7cg8wEjC1DrujKY76FZguXsaPqTRkG9-t32OeuOJQIc,2755
|
|
62
|
-
mapillary_tools/gpmf/gpmf_parser.py,sha256=uOVXkwJxC3Y2YfTdzUDpt7Bh0pdVqa5u0WUuv7pEJEs,24670
|
|
63
|
-
mapillary_tools/gpmf/gps_filter.py,sha256=zhXkuvr0Dd1bxGTYBwvk6P7xasY_RLuWjHaX7CdBayc,3796
|
|
64
|
-
mapillary_tools/mp4/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
-
mapillary_tools/mp4/construct_mp4_parser.py,sha256=jS8fOgSByqieXA6C5ZqobaI0bK17U_YAkiWEUK_8j4E,17286
|
|
66
|
-
mapillary_tools/mp4/io_utils.py,sha256=KZaJTlgFS27Oh3pcA5MKXYFoCifqgFaEZJyU6lb1jc4,5416
|
|
67
|
-
mapillary_tools/mp4/mp4_sample_parser.py,sha256=0ILTq8M6mXFTI3agKgljpvO9uYa7HXGUGZpdHT8a6ac,11547
|
|
68
|
-
mapillary_tools/mp4/simple_mp4_builder.py,sha256=9TUGk1hzI6mQFN1P30jwHL3dCYz3Zz7rsm8UBvMAqMc,12734
|
|
69
|
-
mapillary_tools/mp4/simple_mp4_parser.py,sha256=g3vvPhBoNu7anhVzC5_XQCV7IwfRWro1vJ6d6GyDkHE,6315
|
|
70
|
-
mapillary_tools/serializer/description.py,sha256=ECnQxC-1LOgkAKE5qFi9Y2KuCeH8KPUjjNFDiwebjvo,18647
|
|
71
|
-
mapillary_tools/serializer/gpx.py,sha256=_xx6gHjaWHrlXaUpB5GGBrbRKzbExFyIzWWAH-CvksI,4383
|
|
72
|
-
mapillary_tools-0.14.4.dist-info/licenses/LICENSE,sha256=l2D8cKfFmmJq_wcVq_JElPJrlvWQOzNWx7gMLINucxc,1292
|
|
73
|
-
mapillary_tools-0.14.4.dist-info/METADATA,sha256=DmtexHTWyoTovIswRtvkT638DbdPNXcfVfPcaCflu4w,22200
|
|
74
|
-
mapillary_tools-0.14.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
75
|
-
mapillary_tools-0.14.4.dist-info/entry_points.txt,sha256=A3f3LP-BO_P-U8Y29QfpT4jx6Mjk3sXjTi2Yew4bvj8,75
|
|
76
|
-
mapillary_tools-0.14.4.dist-info/top_level.txt,sha256=FbDkMgOrt1S70ho1WSBrOwzKOSkJFDwwqFOoY5-527s,16
|
|
77
|
-
mapillary_tools-0.14.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|