secrets.py
Language Python1.1 KB34 lines
"""API tokens come from the environment or the macOS Keychain, never a file.security add-generic-password -a "$USER" -s transcription-pipeline.deepinfra -wsecurity add-generic-password -a "$USER" -s transcription-pipeline.huggingface -w(-w with no value prompts, so the token never lands in shell history.)"""from __future__ import annotationsimport osimport shutilimport subprocessSERVICES = {"DEEPINFRA_TOKEN": "transcription-pipeline.deepinfra","HF_TOKEN": "transcription-pipeline.huggingface",}def get_secret(name: str) -> str | None:value = os.environ.get(name, "").strip()if value:return valueservice = SERVICES.get(name)if service and shutil.which("security"):try:out = subprocess.run(["security", "find-generic-password", "-s", service, "-w"],capture_output=True, text=True, timeout=10)except (OSError, subprocess.TimeoutExpired):return Noneif out.returncode == 0 and out.stdout.strip():return out.stdout.strip()return None