Move to uv project type

This commit is contained in:
2026-02-08 12:58:36 +09:00
parent e4e98b4f74
commit ea6725f833
9 changed files with 23 additions and 14 deletions

View File

@@ -16,7 +16,7 @@ See more information for [Python XMP Tool kit](http://python-xmp-toolkit.readthe
## Command line arguments
```sh
uv run bin/reverse_geolocate.py [-h] -i
uv run reverse-geolocate [-h] -i
[XMP SOURCE FOLDER [XMP SOURCE FOLDER ...]]
[-x [EXCLUDE XMP SOURCE FOLDER [EXCLUDE XMP SOURCE FOLDER ...]]]
[-l LIGHTROOM FOLDER] [-s]
@@ -29,7 +29,7 @@ uv run bin/reverse_geolocate.py [-h] -i
to run it from a differnt path
```sh
uv run --project <path to project> run <path to project>/reverse-geolocate.py <arguments ...>
uv run --project <path to project> reverse-geolocate <arguments ...>
```
### Arguments
@@ -62,19 +62,19 @@ If the Lightroom lookup is used without the --strict argument and several files
#### Example
```sh
reverse_geolocate.py -i Photos/2017/01 -i Photos/2017/02 -l LightRoom/MyCatalogue -f overwrite -g <API KEY>
uv run reverse-geolocate -i Photos/2017/01 -i Photos/2017/02 -l LightRoom/MyCatalogue -f overwrite -g <API KEY>
```
Will find all XMP sidecar files in both folders *Photos/2017/01* and *Photos/2017/02* and all folder below it. Uses the Lightroom database at *LightRoom/MyCatalogue*. The script will overwrite all data, even if it is already set
```sh
reverse_geolocate.py -i Photos/2017/01 -i Photos/2017/02 -x Photos/2017/02/Folder\ A -x Photos/2017/01/Folder\ B/some_file.xmp -l LightRoom/MyCatalogue
uv run reverse-geolocate -i Photos/2017/01 -i Photos/2017/02 -x Photos/2017/02/Folder\ A -x Photos/2017/01/Folder\ B/some_file.xmp -l LightRoom/MyCatalogue
```
Will exlucde "Photos/2017/02/Folder A" from processing. For -x also a file (including the .xmp extension) can be given.
```sh
reverse_geolocate.py -i Photos/2017/01/Event-01/some_photo.xmp -f location
uv run reverse-geolocate -i Photos/2017/01/Event-01/some_photo.xmp -f location
```
Only works on *some_photo.xmp* file and will only set the *location* field if it is not yet set.

View File

@@ -9,6 +9,14 @@ dependencies = [
"requests>=2.32.5",
]
[project.scripts]
reverse-geolocate = "reverse_geolocate.reverse_geolocate:main"
[build-system]
requires = ["uv_build>=0.9.7,<0.10.0"]
build-backend = "uv_build"
# MARK: Python linting
[tool.pyright]
typeCheckingMode = "strict"

View File

@@ -29,15 +29,15 @@ from math import ceil
from libxmp import XMPMeta, consts
# user modules below
from utils.long_lat import (
from reverse_geolocate.utils.long_lat import (
convert_dms_to_lat,
convert_dms_to_long,
convert_lat_to_dms,
convert_long_to_dms,
get_distance,
)
from utils.reverse_geolocate import reverse_geolocate
from utils.string_helpers import string_len_cjk, shorten_string, format_len
from reverse_geolocate.utils.reverse_geolocate import reverse_geolocate
from reverse_geolocate.utils.string_helpers import string_len_cjk, shorten_string, format_len
##############################################################
# FUNCTIONS
@@ -1357,6 +1357,7 @@ def main():
# MAIN RUN
##############################################################
main()
if __name__ == "__main__":
main()
# __END__

View File

View File

@@ -61,7 +61,7 @@ def convert_long_to_dms(lat_long: float) -> str:
return convert_lat_long_to_dms(lat_long, is_longitude=True)
def long_lat_reg(longitude: str, latitude: str) -> dict[str, float] :
def long_lat_reg(longitude: str, latitude: str) -> dict[str, float]:
"""
converts the XMP/EXIF formatted GPS Long/Lat coordinates
from the <Degree>,<Minute.Second><NSEW> to the normal float
@@ -77,7 +77,7 @@ def long_lat_reg(longitude: str, latitude: str) -> dict[str, float] :
# regex
latlong_re = re.compile(r"^(\d+),(\d+\.\d+)([NESW]{1})$")
# dict for loop
lat_long = {"longitude": longitude, "latitude": latitude}
lat_long: dict[str, str | float] = {"longitude": longitude, "latitude": latitude}
# for element in lat_long:
for index, element in lat_long.items():
# match if it is exif GPS format

View File

@@ -4,8 +4,8 @@ reverse geolacte functions
import re
import requests
from utils.long_lat import long_lat_reg
from utils.string_helpers import only_latin_chars
from reverse_geolocate.utils.long_lat import long_lat_reg
from reverse_geolocate.utils.string_helpers import only_latin_chars
def reverse_geolocate(longitude, latitude, map_type, args):

2
uv.lock generated
View File

@@ -84,7 +84,7 @@ wheels = [
[[package]]
name = "reverse-geolocate"
version = "0.1.0"
source = { virtual = "." }
source = { editable = "." }
dependencies = [
{ name = "python-xmp-toolkit" },
{ name = "requests" },