Add offline mosaic EXIF tagging (stitch --write-exif, tag_mosaic_exif CLI)
- spruce.exif: tag_mosaic_jpeg_for_scan_dir, resolve_machine_label_for_scan_dir; ProcessingSoftware for tile-stitched mosaics - spruce.settings: load_config(require_credentials=False) for config without login - scripts/tag_mosaic_exif.py and tests; stitch script --write-exif path
This commit is contained in:
+12
-5
@@ -99,13 +99,20 @@ def _clamp_workers(n: int) -> int:
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
def load_config(path: str) -> dict:
|
||||
"""Load and validate config.yaml. Exits on missing required fields."""
|
||||
def load_config(path: str, *, require_credentials: bool = True) -> dict:
|
||||
"""Load and validate config.yaml. Exits on missing required fields.
|
||||
|
||||
With ``require_credentials=False`` (e.g. offline EXIF tagging), username and
|
||||
password are not required; only fields needed for tagging are defaulted.
|
||||
"""
|
||||
with open(path) as fh:
|
||||
cfg = yaml.safe_load(fh)
|
||||
missing = [k for k in ("username", "password") if not cfg.get(k)]
|
||||
if missing:
|
||||
sys.exit(f"Config {path} is missing required fields: {missing}")
|
||||
if cfg is None:
|
||||
cfg = {}
|
||||
if require_credentials:
|
||||
missing = [k for k in ("username", "password") if not cfg.get(k)]
|
||||
if missing:
|
||||
sys.exit(f"Config {path} is missing required fields: {missing}")
|
||||
cfg.setdefault("base_url", "http://205.149.147.131:8010/")
|
||||
cfg.setdefault("image_base_url", "http://205.149.147.131:8011/")
|
||||
cfg.setdefault("output_dir", "archives")
|
||||
|
||||
Reference in New Issue
Block a user