4 Commits

Author SHA1 Message Date
clemens 9191f0e16b line break for errors and not "," 2026-08-02 00:05:38 +09:00
clemens 8e2414f2fd Update README with install and run information update
tool is installed with uv tool and update run name
2026-02-28 23:56:44 +09:00
clemens ffedc9d9cf Add pypi test and live indexes 2026-02-23 22:50:48 +09:00
clemens 2e2e58a0df Add publish url and publish flow 2026-02-19 21:39:52 +09:00
3 changed files with 27 additions and 21 deletions
+6 -17
View File
@@ -6,15 +6,10 @@ This script will update any of the Country Code, Country, State, City and Locati
## Installing and setting up ## Installing and setting up
The script uses the following external non defauly python libraries Everything is setup with uv, to install the tool itself
* xmp toolkit
* requests
install both with the pip3 command
```sh ```sh
uv sync uv tool install reverse-geolocate
``` ```
XMP Toolkit also needs the [Exempi Library](http://libopenraw.freedesktop.org/wiki/Exempi). This one can be install via brew or macports directly. XMP Toolkit also needs the [Exempi Library](http://libopenraw.freedesktop.org/wiki/Exempi). This one can be install via brew or macports directly.
@@ -23,7 +18,7 @@ See more information for [Python XMP Tool kit](http://python-xmp-toolkit.readthe
## Command line arguments ## Command line arguments
```sh ```sh
uv run reverse-geolocate [-h] -i reverse-geolocate [-h] -i
[XMP SOURCE FOLDER [XMP SOURCE FOLDER ...]] [XMP SOURCE FOLDER [XMP SOURCE FOLDER ...]]
[-x [EXCLUDE XMP SOURCE FOLDER [EXCLUDE XMP SOURCE FOLDER ...]]] [-x [EXCLUDE XMP SOURCE FOLDER [EXCLUDE XMP SOURCE FOLDER ...]]]
[-l LIGHTROOM FOLDER] [-s] [-l LIGHTROOM FOLDER] [-s]
@@ -33,12 +28,6 @@ uv run reverse-geolocate [-h] -i
[-v] [--debug] [--test] [-v] [--debug] [--test]
``` ```
or if outside of the project dir
```sh
uv run --project <path to project> reverse-geolocate
```
### Arguments ### Arguments
Argument | Argument Value | Description Argument | Argument Value | Description
@@ -69,19 +58,19 @@ If the Lightroom lookup is used without the --strict argument and several files
#### Example #### Example
```sh ```sh
uv run reverse-geolocate -i Photos/2017/01 -i Photos/2017/02 -l LightRoom/MyCatalogue -f overwrite -g <API KEY> 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 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 ```sh
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 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. Will exlucde "Photos/2017/02/Folder A" from processing. For -x also a file (including the .xmp extension) can be given.
```sh ```sh
uv run reverse-geolocate -i Photos/2017/01/Event-01/some_photo.xmp -f location 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. Only works on *some_photo.xmp* file and will only set the *location* field if it is not yet set.
+20 -3
View File
@@ -1,17 +1,34 @@
[project] [project]
name = "reverse-geolocate" name = "reverse-geolocate"
version = "1.1.2" version = "1.1.2.2"
description = "Reverse Geolocate from Lat/Long information and write location information into sidecard files" description = "Reverse Geolocate from Lat/Long information and write location information into sidecard files"
readme = "README.md" readme = "README.md"
requires-python = ">=3.14" requires-python = ">=3.14"
dependencies = [ dependencies = [
"python-xmp-toolkit>=2.1.0", "python-xmp-toolkit>=2.1.0",
"requests>=2.32.5", "requests>=2.32.0",
] ]
[project.scripts] [project.scripts]
reverse-geolocate = "reverse_geolocate.reverse_geolocate:main" reverse-geolocate = "reverse_geolocate.reverse_geolocate:main"
# MARK: build system
[build-system] [build-system]
requires = ["uv_build>=0.9.7,<0.10.0"] requires = ["uv_build>=0.12.0,<0.13.0"]
build-backend = "uv_build" build-backend = "uv_build"
# MARK: build target
[[tool.uv.index]]
name = "private-pypi"
url = "https://git.gullevek.org/api/packages/PyPI/pypi/simple/"
publish-url = "https://git.gullevek.org/api/packages/PyPI/pypi/"
[[tool.uv.index]]
name = "test-pypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple/"
publish-url = "https://pypi.org/legacy/"
# __END__
+1 -1
View File
@@ -1402,7 +1402,7 @@ def main():
if len(failed_files) > 0: if len(failed_files) > 0:
print("{}".format('-' * 40)) print("{}".format('-' * 40))
print("Files that failed to update:") print("Files that failed to update:")
print("{}".format(', '.join(failed_files))) print("{}".format("\n".join(failed_files)))
if __name__ == "__main__": if __name__ == "__main__":