"""webrtcvad 훅 재정의 — contrib 훅이 배포 이름을 찾지 못해 빌드를 중단시킨다. 우리가 설치하는 건 `webrtcvad-wheels` 다. 원본 `webrtcvad` 는 Windows 용 휠을 올리지 않아서 MSVC 컴파일이 필요하기 때문이다. import 이름(`webrtcvad`)은 같지만 **배포 이름이 다르다.** pyinstaller-hooks-contrib 의 `hook-webrtcvad.py` 는 `copy_metadata('webrtcvad')` 를 부른다. 배포 이름이 없으니 `PackageNotFoundError` 가 나고, PyInstaller 는 훅 모듈 import 실패를 `ImportErrorWhenRunningHook` 으로 올려 **빌드를 통째로 중단한다.** Windows 포터블 빌드가 정확히 여기서 죽어 dist\\LiveSub.exe 가 안 나왔다. hookspath 의 훅이 contrib 훅보다 먼저 검색되므로 같은 파일명으로 덮어쓴다. 메타데이터를 실제 배포 이름으로 수집하고, 둘 다 없으면 그냥 넘어간다 — webrtcvad 런타임은 importlib.metadata 를 읽지 않으므로 없어도 동작한다. """ from PyInstaller.utils.hooks import copy_metadata datas = [] for dist in ("webrtcvad-wheels", "webrtcvad"): try: datas = copy_metadata(dist) break except Exception: # noqa: BLE001 - 배포 이름이 없을 때만 다음 후보로 넘어간다 continue