26 lines
661 B
Python
26 lines
661 B
Python
"""Repository-only paths shared by maintainer scripts and tests."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
import sys
|
|
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
SOURCE_ROOT = PROJECT_ROOT / "src"
|
|
ARTIFACTS_ROOT = PROJECT_ROOT / ".artifacts"
|
|
RELEASE_ARTIFACTS_ROOT = ARTIFACTS_ROOT / "releases"
|
|
|
|
|
|
def ensure_project_imports() -> None:
|
|
"""Put checkout-only import roots ahead of ambient Python installations."""
|
|
|
|
ordered = [SOURCE_ROOT, PROJECT_ROOT]
|
|
for path in ordered:
|
|
text = str(path)
|
|
while text in sys.path:
|
|
sys.path.remove(text)
|
|
for path in reversed(ordered):
|
|
if path.is_dir():
|
|
sys.path.insert(0, str(path))
|