"""python -m webapp — launch the Photo Analyzer web UI. Defaults come from photo_analyzer's env (photo_analyzer.env: DB, LIBRARY), so in the common case you can just run `python -m webapp`. """ import argparse import os import sys from pathlib import Path from .server import serve DEFAULT_DB = "photo_analysis.db" def _env(name, fallback=None): v = os.environ.get(name) return v if v not in (None, "") else fallback def main(): # Reuse photo_analyzer's .env loader so DB/LIBRARY defaults match the CLI. try: import photo_analyzer as pa pa.load_env_file() except Exception: pass ap = argparse.ArgumentParser(description="Web UI for the photo_analyzer pipeline.") ap.add_argument("--db", default=_env("DB", DEFAULT_DB), help=f"SQLite DB (default {DEFAULT_DB})") ap.add_argument("--library", default=_env("LIBRARY"), help="Photo library root (for album grouping + run default)") ap.add_argument("--no-open", action="store_true", help="Don't open a browser") args = ap.parse_args() if not Path(args.db).exists(): sys.exit(f"DB not found: {args.db} — run photo_analyzer first, or pass --db.") serve(args.db, args.library, open_browser=not args.no_open) if __name__ == "__main__": main()