@@ -84,19 +84,12 @@ jobs:
8484 - name : Install dependencies
8585 run : |
8686 set -euo pipefail
87- python -m pip install --upgrade pip
88- # Install non-git deps via pyproject.toml (moved from requirements.txt)
89- grep -vE "^\s*(#|$)|git\+" requirements.txt | xargs -r python -m pip install -c https://raw.githubusercontent.com/QuantStrategyLab/QuantPlatformKit/main/constraints.txt
90- # Install git-based packages individually with --no-deps (editable installs below)
91- grep 'git+' requirements.txt | while IFS= read -r pkg; do
92- [ -n "$pkg" ] && python -m pip install --no-deps "$pkg"
93- done
94- python -m pip install pytest pytest-cov ruff
95-
87+ python -m pip install --upgrade pip uv
88+ uv sync --frozen --extra test --no-install-project
9689 - name : Smoke import pinned shared packages
9790 run : |
9891 set -euo pipefail
99- python - <<'PY'
92+ uv run --no-sync python - <<'PY'
10093 from quant_platform_kit.common.port_adapters import CallableNotificationPort, CallablePortfolioPort
10194 from hk_equity_strategies import resolve_canonical_profile as resolve_hk_canonical_profile
10295 from us_equity_strategies import resolve_canonical_profile
@@ -110,17 +103,17 @@ jobs:
110103 - name : Install editable shared repositories
111104 run : |
112105 set -euo pipefail
113- python -m pip install --no-deps -e external/QuantPlatformKit -e external/UsEquityStrategies -e external/UsEquitySnapshotPipelines
106+ uv pip install --no-deps -e external/QuantPlatformKit -e external/UsEquityStrategies -e external/UsEquitySnapshotPipelines
114107
115108 - name : Run ruff
116109 run : |
117110 set -euo pipefail
118- ruff check --exclude external .
111+ uv run --no-sync ruff check --exclude external .
119112
120113 - name : Check QPK pin consistency
121- run : python scripts/check_qpk_pin_consistency.py
114+ run : uv run --no-sync python scripts/check_qpk_pin_consistency.py
122115
123116 - name : Run unit tests
124117 run : |
125118 set -euo pipefail
126- PYTHONPATH=. PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest -q tests --ignore=tests/test_request_handling.py --ignore=tests/test_event_loop.py --ignore=tests/test_monitor_dispatcher.py --ignore=tests/test_notifications.py --ignore=tests/test_connect_timeout_alert.py || true
119+ PYTHONPATH=. PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 uv run --no-sync python -m pytest -q tests --ignore=tests/test_request_handling.py --ignore=tests/test_event_loop.py --ignore=tests/test_monitor_dispatcher.py --ignore=tests/test_notifications.py --ignore=tests/test_connect_timeout_alert.py || true
0 commit comments