mapillary-tools 0.13.3__tar.gz → 0.14.0__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.
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/PKG-INFO +93 -35
- mapillary_tools-0.13.3/mapillary_tools.egg-info/PKG-INFO → mapillary_tools-0.14.0/README.md +67 -45
- mapillary_tools-0.14.0/mapillary_tools/__init__.py +1 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/api_v4.py +198 -55
- mapillary_tools-0.14.0/mapillary_tools/authenticate.py +364 -0
- mapillary_tools-0.14.0/mapillary_tools/blackvue_parser.py +195 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/camm/camm_builder.py +55 -97
- mapillary_tools-0.14.0/mapillary_tools/camm/camm_parser.py +590 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/__main__.py +10 -6
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/authenticate.py +8 -1
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/process.py +27 -51
- mapillary_tools-0.14.0/mapillary_tools/commands/process_and_upload.py +33 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/sample_video.py +2 -3
- mapillary_tools-0.14.0/mapillary_tools/commands/upload.py +81 -0
- mapillary_tools-0.14.0/mapillary_tools/commands/video_process_and_upload.py +33 -0
- mapillary_tools-0.14.0/mapillary_tools/config.py +110 -0
- mapillary_tools-0.14.0/mapillary_tools/constants.py +173 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/exceptions.py +37 -34
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/exif_read.py +221 -116
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/exif_write.py +10 -8
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/exiftool_read.py +33 -42
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/exiftool_read_video.py +97 -47
- mapillary_tools-0.14.0/mapillary_tools/exiftool_runner.py +57 -0
- mapillary_tools-0.14.0/mapillary_tools/ffmpeg.py +626 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/geo.py +158 -118
- mapillary_tools-0.14.0/mapillary_tools/geotag/base.py +147 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/factory.py +307 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_images_from_exif.py +24 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_images_from_exiftool.py +160 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_images_from_gpx.py +161 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_images_from_gpx_file.py +40 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/geotag/geotag_images_from_nmea_file.py +4 -5
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_images_from_video.py +127 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_videos_from_exiftool.py +123 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_videos_from_gpx.py +52 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/geotag_videos_from_video.py +32 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/image_extractors/base.py +18 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/image_extractors/exif.py +60 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/image_extractors/exiftool.py +18 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/options.py +182 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/utils.py +62 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/video_extractors/base.py +18 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/video_extractors/exiftool.py +70 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/video_extractors/gpx.py +116 -0
- mapillary_tools-0.14.0/mapillary_tools/geotag/video_extractors/native.py +160 -0
- {mapillary_tools-0.13.3/mapillary_tools/geotag → mapillary_tools-0.14.0/mapillary_tools/gpmf}/gpmf_parser.py +205 -182
- {mapillary_tools-0.13.3/mapillary_tools/geotag → mapillary_tools-0.14.0/mapillary_tools/gpmf}/gps_filter.py +5 -3
- mapillary_tools-0.14.0/mapillary_tools/history.py +182 -0
- mapillary_tools-0.14.0/mapillary_tools/mp4/__init__.py +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/mp4/construct_mp4_parser.py +17 -10
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/mp4/io_utils.py +0 -1
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/mp4/mp4_sample_parser.py +36 -28
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/mp4/simple_mp4_builder.py +10 -9
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/mp4/simple_mp4_parser.py +13 -22
- mapillary_tools-0.14.0/mapillary_tools/process_geotag_properties.py +422 -0
- mapillary_tools-0.14.0/mapillary_tools/process_sequence_properties.py +714 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/sample_video.py +20 -26
- mapillary_tools-0.14.0/mapillary_tools/serializer/description.py +587 -0
- mapillary_tools-0.14.0/mapillary_tools/serializer/gpx.py +132 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/telemetry.py +26 -13
- mapillary_tools-0.14.0/mapillary_tools/types.py +208 -0
- mapillary_tools-0.14.0/mapillary_tools/upload.py +703 -0
- mapillary_tools-0.14.0/mapillary_tools/upload_api_v4.py +260 -0
- mapillary_tools-0.14.0/mapillary_tools/uploader.py +959 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/utils.py +49 -18
- mapillary_tools-0.13.3/README.md → mapillary_tools-0.14.0/mapillary_tools.egg-info/PKG-INFO +103 -16
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools.egg-info/SOURCES.txt +20 -24
- mapillary_tools-0.14.0/mapillary_tools.egg-info/requires.txt +11 -0
- mapillary_tools-0.14.0/pyproject.toml +85 -0
- mapillary_tools-0.14.0/setup.cfg +4 -0
- mapillary_tools-0.13.3/MANIFEST.in +0 -2
- mapillary_tools-0.13.3/mapillary_tools/__init__.py +0 -1
- mapillary_tools-0.13.3/mapillary_tools/authenticate.py +0 -102
- mapillary_tools-0.13.3/mapillary_tools/camm/camm_parser.py +0 -342
- mapillary_tools-0.13.3/mapillary_tools/commands/process_and_upload.py +0 -20
- mapillary_tools-0.13.3/mapillary_tools/commands/upload.py +0 -50
- mapillary_tools-0.13.3/mapillary_tools/commands/video_process_and_upload.py +0 -19
- mapillary_tools-0.13.3/mapillary_tools/config.py +0 -71
- mapillary_tools-0.13.3/mapillary_tools/constants.py +0 -50
- mapillary_tools-0.13.3/mapillary_tools/ffmpeg.py +0 -451
- mapillary_tools-0.13.3/mapillary_tools/geotag/__init__.py +0 -1
- mapillary_tools-0.13.3/mapillary_tools/geotag/blackvue_parser.py +0 -118
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_from_generic.py +0 -22
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_images_from_exif.py +0 -141
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_images_from_exiftool.py +0 -109
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_images_from_exiftool_both_image_and_video.py +0 -93
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_images_from_gpx.py +0 -225
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_images_from_gpx_file.py +0 -153
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_images_from_video.py +0 -90
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_videos_from_exiftool_video.py +0 -145
- mapillary_tools-0.13.3/mapillary_tools/geotag/geotag_videos_from_video.py +0 -197
- mapillary_tools-0.13.3/mapillary_tools/geotag/utils.py +0 -26
- mapillary_tools-0.13.3/mapillary_tools/history.py +0 -68
- mapillary_tools-0.13.3/mapillary_tools/process_geotag_properties.py +0 -652
- mapillary_tools-0.13.3/mapillary_tools/process_sequence_properties.py +0 -345
- mapillary_tools-0.13.3/mapillary_tools/types.py +0 -721
- mapillary_tools-0.13.3/mapillary_tools/upload.py +0 -679
- mapillary_tools-0.13.3/mapillary_tools/upload_api_v4.py +0 -235
- mapillary_tools-0.13.3/mapillary_tools/uploader.py +0 -439
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/cli_options.py +0 -22
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extract_video_data.py +0 -176
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/base_parser.py +0 -75
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/blackvue_parser.py +0 -34
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/camm_parser.py +0 -38
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/exiftool_runtime_parser.py +0 -71
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/exiftool_xml_parser.py +0 -53
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/generic_video_parser.py +0 -52
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/gopro_parser.py +0 -43
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/gpx_parser.py +0 -108
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/extractors/nmea_parser.py +0 -24
- mapillary_tools-0.13.3/mapillary_tools/video_data_extraction/video_data_parser_factory.py +0 -39
- mapillary_tools-0.13.3/mapillary_tools.egg-info/requires.txt +0 -10
- mapillary_tools-0.13.3/requirements.txt +0 -10
- mapillary_tools-0.13.3/schema/image_description_schema.json +0 -189
- mapillary_tools-0.13.3/setup.cfg +0 -8
- mapillary_tools-0.13.3/setup.py +0 -59
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/LICENSE +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/__init__.py +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/video_process.py +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/commands/zip.py +0 -0
- {mapillary_tools-0.13.3/mapillary_tools/mp4 → mapillary_tools-0.14.0/mapillary_tools/geotag}/__init__.py +0 -0
- {mapillary_tools-0.13.3/mapillary_tools/geotag → mapillary_tools-0.14.0/mapillary_tools/gpmf}/gpmf_gps_filter.py +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools/ipc.py +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools.egg-info/dependency_links.txt +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools.egg-info/entry_points.txt +0 -0
- {mapillary_tools-0.13.3 → mapillary_tools-0.14.0}/mapillary_tools.egg-info/top_level.txt +0 -0
|
@@ -1,31 +1,38 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: mapillary_tools
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.0
|
|
4
4
|
Summary: Mapillary Image/Video Import Pipeline
|
|
5
|
-
|
|
6
|
-
Author: Mapillary
|
|
5
|
+
Author-email: Mapillary <support@mapillary.com>
|
|
7
6
|
License: BSD
|
|
8
|
-
|
|
7
|
+
Project-URL: Homepage, https://github.com/mapillary/mapillary_tools
|
|
8
|
+
Project-URL: Repository, https://github.com/mapillary/mapillary_tools
|
|
9
|
+
Project-URL: Issues, https://github.com/mapillary/mapillary_tools/issues
|
|
10
|
+
Keywords: mapillary,gis,computer vision,street view
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
14
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Requires-Python: >=3.9
|
|
9
22
|
Description-Content-Type: text/markdown
|
|
10
23
|
License-File: LICENSE
|
|
11
24
|
Requires-Dist: appdirs<2.0.0,>=1.4.4
|
|
12
|
-
Requires-Dist: construct
|
|
13
|
-
Requires-Dist: exifread
|
|
14
|
-
Requires-Dist:
|
|
15
|
-
Requires-Dist:
|
|
25
|
+
Requires-Dist: construct~=2.10.0
|
|
26
|
+
Requires-Dist: exifread~=3.0
|
|
27
|
+
Requires-Dist: gpxpy~=1.6.0
|
|
28
|
+
Requires-Dist: humanize>=4.12.3
|
|
29
|
+
Requires-Dist: jsonschema~=4.17.0
|
|
30
|
+
Requires-Dist: piexif~=1.1
|
|
16
31
|
Requires-Dist: pynmea2<2.0.0,>=1.12.0
|
|
17
32
|
Requires-Dist: requests[socks]<3.0.0,>=2.20.0
|
|
18
33
|
Requires-Dist: tqdm<5.0,>=4.0
|
|
19
|
-
Requires-Dist:
|
|
20
|
-
|
|
21
|
-
Dynamic: author
|
|
22
|
-
Dynamic: description
|
|
23
|
-
Dynamic: description-content-type
|
|
24
|
-
Dynamic: home-page
|
|
25
|
-
Dynamic: license
|
|
26
|
-
Dynamic: requires-dist
|
|
27
|
-
Dynamic: requires-python
|
|
28
|
-
Dynamic: summary
|
|
34
|
+
Requires-Dist: typing-extensions>=4.12.2
|
|
35
|
+
Dynamic: license-file
|
|
29
36
|
|
|
30
37
|
<p align="center">
|
|
31
38
|
<a href="https://github.com/mapillary/mapillary_tools/">
|
|
@@ -57,18 +64,40 @@ mapillary_tools --help
|
|
|
57
64
|
<!--ts-->
|
|
58
65
|
|
|
59
66
|
- [Supported File Formats](#supported-file-formats)
|
|
67
|
+
- [Image Formats](#image-formats)
|
|
68
|
+
- [Video Formats](#video-formats)
|
|
60
69
|
- [Installation](#installation)
|
|
70
|
+
- [Standalone Executable](#standalone-executable)
|
|
71
|
+
- [Installing via pip](#installing-via-pip)
|
|
72
|
+
- [Installing on Android Devices](#installing-on-android-devices)
|
|
61
73
|
- [Usage](#usage)
|
|
62
74
|
- [Process and Upload](#process-and-upload)
|
|
63
75
|
- [Process](#process)
|
|
64
76
|
- [Upload](#upload)
|
|
65
77
|
- [Advanced Usage](#advanced-usage)
|
|
66
78
|
- [Local Video Processing](#local-video-processing)
|
|
79
|
+
- [Install FFmpeg](#install-ffmpeg)
|
|
80
|
+
- [Video Processing](#video-processing)
|
|
67
81
|
- [Geotagging with GPX](#geotagging-with-gpx)
|
|
82
|
+
- [New video geotagging features (experimental)](#new-video-geotagging-features-experimental)
|
|
83
|
+
- [Usage](#usage-1)
|
|
84
|
+
- [Examples](#examples)
|
|
85
|
+
- [Generic supported videos](#generic-supported-videos)
|
|
86
|
+
- [External GPX](#external-gpx)
|
|
87
|
+
- [Insta360 stitched videos](#insta360-stitched-videos)
|
|
88
|
+
- [Limitations of `--video_geotag_source`](#limitations-of---video_geotag_source)
|
|
68
89
|
- [Authenticate](#authenticate)
|
|
90
|
+
- [Examples](#examples-1)
|
|
69
91
|
- [Image Description](#image-description)
|
|
70
92
|
- [Zip Images](#zip-images)
|
|
71
93
|
- [Development](#development)
|
|
94
|
+
- [Setup](#setup)
|
|
95
|
+
- [Option 1: Using uv (Recommended)](#option-1-using-uv-recommended)
|
|
96
|
+
- [Option 2: Using pip with virtual environment](#option-2-using-pip-with-virtual-environment)
|
|
97
|
+
- [Running the code](#running-the-code)
|
|
98
|
+
- [Tests](#tests)
|
|
99
|
+
- [Code Quality](#code-quality)
|
|
100
|
+
- [Release and Build](#release-and-build)
|
|
72
101
|
|
|
73
102
|
<!--te-->
|
|
74
103
|
|
|
@@ -494,29 +523,49 @@ git clone git@github.com:mapillary/mapillary_tools.git
|
|
|
494
523
|
cd mapillary_tools
|
|
495
524
|
```
|
|
496
525
|
|
|
497
|
-
|
|
526
|
+
### Option 1: Using uv (Recommended)
|
|
527
|
+
|
|
528
|
+
Use [uv](https://docs.astral.sh/uv/) - a fast Python package manager.
|
|
529
|
+
|
|
530
|
+
Install the project in development mode with all dependencies:
|
|
498
531
|
|
|
499
532
|
```sh
|
|
500
|
-
|
|
533
|
+
# Install the project and development dependencies
|
|
534
|
+
uv sync --group dev
|
|
535
|
+
|
|
536
|
+
# Activate the virtual environment
|
|
537
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
501
538
|
```
|
|
502
539
|
|
|
503
|
-
|
|
540
|
+
### Option 2: Using pip with virtual environment
|
|
541
|
+
|
|
542
|
+
Set up a virtual environment (recommended):
|
|
504
543
|
|
|
505
544
|
```sh
|
|
506
|
-
|
|
507
|
-
|
|
545
|
+
python -m venv .venv
|
|
546
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
508
547
|
```
|
|
509
548
|
|
|
510
|
-
|
|
549
|
+
Install the project in development mode:
|
|
511
550
|
|
|
512
551
|
```sh
|
|
513
|
-
|
|
552
|
+
# Install the project and all dependencies in editable mode
|
|
553
|
+
pip install -e .
|
|
554
|
+
|
|
555
|
+
# Install development dependencies
|
|
556
|
+
pip install --group dev
|
|
514
557
|
```
|
|
515
558
|
|
|
559
|
+
## Running the code
|
|
560
|
+
|
|
516
561
|
Run the code from the repository:
|
|
517
562
|
|
|
518
563
|
```sh
|
|
519
|
-
|
|
564
|
+
# If you have mapillary_tools installed in editable mode
|
|
565
|
+
mapillary_tools --version
|
|
566
|
+
|
|
567
|
+
# Alternatively
|
|
568
|
+
python -m mapillary_tools.commands --version
|
|
520
569
|
```
|
|
521
570
|
|
|
522
571
|
## Tests
|
|
@@ -524,19 +573,28 @@ python3 -m mapillary_tools.commands --version
|
|
|
524
573
|
Run tests:
|
|
525
574
|
|
|
526
575
|
```sh
|
|
527
|
-
#
|
|
528
|
-
|
|
529
|
-
#
|
|
530
|
-
|
|
576
|
+
# Test all cases
|
|
577
|
+
pytest -s -vv tests
|
|
578
|
+
# Or test a single case specifically
|
|
579
|
+
pytest -s -vv tests/unit/test_camm_parser.py::test_build_and_parse
|
|
531
580
|
```
|
|
532
581
|
|
|
533
|
-
|
|
582
|
+
## Code Quality
|
|
583
|
+
|
|
584
|
+
Run code formatting and linting:
|
|
534
585
|
|
|
535
586
|
```sh
|
|
536
|
-
#
|
|
537
|
-
|
|
538
|
-
|
|
587
|
+
# Format code with ruff
|
|
588
|
+
ruff format mapillary_tools tests
|
|
589
|
+
|
|
590
|
+
# Lint code with ruff
|
|
591
|
+
ruff check mapillary_tools tests
|
|
592
|
+
|
|
593
|
+
# Sort imports with usort
|
|
539
594
|
usort format mapillary_tools tests
|
|
595
|
+
|
|
596
|
+
# Type checking with mypy
|
|
597
|
+
mypy mapillary_tools
|
|
540
598
|
```
|
|
541
599
|
|
|
542
600
|
## Release and Build
|
|
@@ -1,32 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.2
|
|
2
|
-
Name: mapillary_tools
|
|
3
|
-
Version: 0.13.3
|
|
4
|
-
Summary: Mapillary Image/Video Import Pipeline
|
|
5
|
-
Home-page: https://github.com/mapillary/mapillary_tools
|
|
6
|
-
Author: Mapillary
|
|
7
|
-
License: BSD
|
|
8
|
-
Requires-Python: >=3.8
|
|
9
|
-
Description-Content-Type: text/markdown
|
|
10
|
-
License-File: LICENSE
|
|
11
|
-
Requires-Dist: appdirs<2.0.0,>=1.4.4
|
|
12
|
-
Requires-Dist: construct<3.0.0,>=2.10.0
|
|
13
|
-
Requires-Dist: exifread==2.3.2
|
|
14
|
-
Requires-Dist: piexif==1.1.3
|
|
15
|
-
Requires-Dist: gpxpy<1.6.0,>=1.5.0
|
|
16
|
-
Requires-Dist: pynmea2<2.0.0,>=1.12.0
|
|
17
|
-
Requires-Dist: requests[socks]<3.0.0,>=2.20.0
|
|
18
|
-
Requires-Dist: tqdm<5.0,>=4.0
|
|
19
|
-
Requires-Dist: typing_extensions
|
|
20
|
-
Requires-Dist: jsonschema~=4.17.3
|
|
21
|
-
Dynamic: author
|
|
22
|
-
Dynamic: description
|
|
23
|
-
Dynamic: description-content-type
|
|
24
|
-
Dynamic: home-page
|
|
25
|
-
Dynamic: license
|
|
26
|
-
Dynamic: requires-dist
|
|
27
|
-
Dynamic: requires-python
|
|
28
|
-
Dynamic: summary
|
|
29
|
-
|
|
30
1
|
<p align="center">
|
|
31
2
|
<a href="https://github.com/mapillary/mapillary_tools/">
|
|
32
3
|
<img src="https://raw.githubusercontent.com/mapillary/mapillary_tools/main/docs/images/logo.png">
|
|
@@ -57,18 +28,40 @@ mapillary_tools --help
|
|
|
57
28
|
<!--ts-->
|
|
58
29
|
|
|
59
30
|
- [Supported File Formats](#supported-file-formats)
|
|
31
|
+
- [Image Formats](#image-formats)
|
|
32
|
+
- [Video Formats](#video-formats)
|
|
60
33
|
- [Installation](#installation)
|
|
34
|
+
- [Standalone Executable](#standalone-executable)
|
|
35
|
+
- [Installing via pip](#installing-via-pip)
|
|
36
|
+
- [Installing on Android Devices](#installing-on-android-devices)
|
|
61
37
|
- [Usage](#usage)
|
|
62
38
|
- [Process and Upload](#process-and-upload)
|
|
63
39
|
- [Process](#process)
|
|
64
40
|
- [Upload](#upload)
|
|
65
41
|
- [Advanced Usage](#advanced-usage)
|
|
66
42
|
- [Local Video Processing](#local-video-processing)
|
|
43
|
+
- [Install FFmpeg](#install-ffmpeg)
|
|
44
|
+
- [Video Processing](#video-processing)
|
|
67
45
|
- [Geotagging with GPX](#geotagging-with-gpx)
|
|
46
|
+
- [New video geotagging features (experimental)](#new-video-geotagging-features-experimental)
|
|
47
|
+
- [Usage](#usage-1)
|
|
48
|
+
- [Examples](#examples)
|
|
49
|
+
- [Generic supported videos](#generic-supported-videos)
|
|
50
|
+
- [External GPX](#external-gpx)
|
|
51
|
+
- [Insta360 stitched videos](#insta360-stitched-videos)
|
|
52
|
+
- [Limitations of `--video_geotag_source`](#limitations-of---video_geotag_source)
|
|
68
53
|
- [Authenticate](#authenticate)
|
|
54
|
+
- [Examples](#examples-1)
|
|
69
55
|
- [Image Description](#image-description)
|
|
70
56
|
- [Zip Images](#zip-images)
|
|
71
57
|
- [Development](#development)
|
|
58
|
+
- [Setup](#setup)
|
|
59
|
+
- [Option 1: Using uv (Recommended)](#option-1-using-uv-recommended)
|
|
60
|
+
- [Option 2: Using pip with virtual environment](#option-2-using-pip-with-virtual-environment)
|
|
61
|
+
- [Running the code](#running-the-code)
|
|
62
|
+
- [Tests](#tests)
|
|
63
|
+
- [Code Quality](#code-quality)
|
|
64
|
+
- [Release and Build](#release-and-build)
|
|
72
65
|
|
|
73
66
|
<!--te-->
|
|
74
67
|
|
|
@@ -494,29 +487,49 @@ git clone git@github.com:mapillary/mapillary_tools.git
|
|
|
494
487
|
cd mapillary_tools
|
|
495
488
|
```
|
|
496
489
|
|
|
497
|
-
|
|
490
|
+
### Option 1: Using uv (Recommended)
|
|
491
|
+
|
|
492
|
+
Use [uv](https://docs.astral.sh/uv/) - a fast Python package manager.
|
|
493
|
+
|
|
494
|
+
Install the project in development mode with all dependencies:
|
|
498
495
|
|
|
499
496
|
```sh
|
|
500
|
-
|
|
497
|
+
# Install the project and development dependencies
|
|
498
|
+
uv sync --group dev
|
|
499
|
+
|
|
500
|
+
# Activate the virtual environment
|
|
501
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
501
502
|
```
|
|
502
503
|
|
|
503
|
-
|
|
504
|
+
### Option 2: Using pip with virtual environment
|
|
505
|
+
|
|
506
|
+
Set up a virtual environment (recommended):
|
|
504
507
|
|
|
505
508
|
```sh
|
|
506
|
-
|
|
507
|
-
|
|
509
|
+
python -m venv .venv
|
|
510
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
508
511
|
```
|
|
509
512
|
|
|
510
|
-
|
|
513
|
+
Install the project in development mode:
|
|
511
514
|
|
|
512
515
|
```sh
|
|
513
|
-
|
|
516
|
+
# Install the project and all dependencies in editable mode
|
|
517
|
+
pip install -e .
|
|
518
|
+
|
|
519
|
+
# Install development dependencies
|
|
520
|
+
pip install --group dev
|
|
514
521
|
```
|
|
515
522
|
|
|
523
|
+
## Running the code
|
|
524
|
+
|
|
516
525
|
Run the code from the repository:
|
|
517
526
|
|
|
518
527
|
```sh
|
|
519
|
-
|
|
528
|
+
# If you have mapillary_tools installed in editable mode
|
|
529
|
+
mapillary_tools --version
|
|
530
|
+
|
|
531
|
+
# Alternatively
|
|
532
|
+
python -m mapillary_tools.commands --version
|
|
520
533
|
```
|
|
521
534
|
|
|
522
535
|
## Tests
|
|
@@ -524,19 +537,28 @@ python3 -m mapillary_tools.commands --version
|
|
|
524
537
|
Run tests:
|
|
525
538
|
|
|
526
539
|
```sh
|
|
527
|
-
#
|
|
528
|
-
|
|
529
|
-
#
|
|
530
|
-
|
|
540
|
+
# Test all cases
|
|
541
|
+
pytest -s -vv tests
|
|
542
|
+
# Or test a single case specifically
|
|
543
|
+
pytest -s -vv tests/unit/test_camm_parser.py::test_build_and_parse
|
|
531
544
|
```
|
|
532
545
|
|
|
533
|
-
|
|
546
|
+
## Code Quality
|
|
547
|
+
|
|
548
|
+
Run code formatting and linting:
|
|
534
549
|
|
|
535
550
|
```sh
|
|
536
|
-
#
|
|
537
|
-
|
|
538
|
-
|
|
551
|
+
# Format code with ruff
|
|
552
|
+
ruff format mapillary_tools tests
|
|
553
|
+
|
|
554
|
+
# Lint code with ruff
|
|
555
|
+
ruff check mapillary_tools tests
|
|
556
|
+
|
|
557
|
+
# Sort imports with usort
|
|
539
558
|
usort format mapillary_tools tests
|
|
559
|
+
|
|
560
|
+
# Type checking with mypy
|
|
561
|
+
mypy mapillary_tools
|
|
540
562
|
```
|
|
541
563
|
|
|
542
564
|
## Release and Build
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = "0.14.0"
|