Download backend/face_metadata.py from SolutionChallenge/solution_challenge_backend: direct link, hf CLI and curl.
- Browser
- Download file 1.37 kB
-
https://huggingface.co/spaces/SolutionChallenge/solution_challenge_backend/resolve/main/backend/face_metadata.py
- Command line
-
hf download hf://spaces/SolutionChallenge/solution_challenge_backend/backend/face_metadata.py
-
curl -L -o face_metadata.py https://huggingface.co/spaces/SolutionChallenge/solution_challenge_backend/resolve/main/backend/face_metadata.py
1.37 kB
| """Per-person metadata stored alongside face_database enrollments.""" | |
| from __future__ import annotations | |
| import json | |
| import os | |
| META_FILENAME = "metadata.json" | |
| DEFAULT_ROLE = "Staff" | |
| def _meta_path(person_dir: str) -> str: | |
| return os.path.join(person_dir, META_FILENAME) | |
| def read_person_metadata(person_name: str, face_db_root: str) -> dict: | |
| person_dir = os.path.join(face_db_root, person_name) | |
| path = _meta_path(person_dir) | |
| if not os.path.isfile(path): | |
| return {"role": DEFAULT_ROLE} | |
| try: | |
| with open(path, encoding="utf-8") as fh: | |
| data = json.load(fh) | |
| if isinstance(data, dict): | |
| return {"role": data.get("role") or DEFAULT_ROLE, **data} | |
| except (OSError, json.JSONDecodeError): | |
| pass | |
| return {"role": DEFAULT_ROLE} | |
| def write_person_metadata(person_name: str, face_db_root: str, *, role: str | None = None, **extra) -> dict: | |
| person_dir = os.path.join(face_db_root, person_name) | |
| os.makedirs(person_dir, exist_ok=True) | |
| current = read_person_metadata(person_name, face_db_root) | |
| if role is not None: | |
| current["role"] = (role or DEFAULT_ROLE).strip() or DEFAULT_ROLE | |
| current.update({k: v for k, v in extra.items() if v is not None}) | |
| with open(_meta_path(person_dir), "w", encoding="utf-8") as fh: | |
| json.dump(current, fh, indent=2) | |
| return current | |