| # Copyright 2025 The Chromium Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| from __future__ import annotations | |
| import sys | |
| from contextlib import contextmanager | |
| from pathlib import Path | |
| from typing import Iterator | |
| MODULE_DIR = Path(__file__).parent.resolve() | |
| GEN_DIR = MODULE_DIR / "gen" | |
| @contextmanager | |
| def protoc_in_sys_path() -> Iterator[None]: | |
| prev_path = sys.path | |
| sys.path = [str(GEN_DIR)] + prev_path | |
| try: | |
| yield | |
| finally: | |
| sys.path = prev_path |