diff --git a/.github/workflows/rhiza_benchmark.yml b/.github/workflows/rhiza_benchmark.yml index 5484c3a3..ccf7996f 100644 --- a/.github/workflows/rhiza_benchmark.yml +++ b/.github/workflows/rhiza_benchmark.yml @@ -20,5 +20,5 @@ on: jobs: benchmark: - uses: jebel-quant/rhiza/.github/workflows/rhiza_benchmark.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_benchmark.yml@v0.18.4 secrets: inherit diff --git a/.github/workflows/rhiza_book.yml b/.github/workflows/rhiza_book.yml index 11e7da2a..c2c4034e 100644 --- a/.github/workflows/rhiza_book.yml +++ b/.github/workflows/rhiza_book.yml @@ -24,7 +24,7 @@ on: jobs: book: - uses: jebel-quant/rhiza/.github/workflows/rhiza_book.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_book.yml@v0.18.4 secrets: inherit permissions: contents: read diff --git a/.github/workflows/rhiza_ci.yml b/.github/workflows/rhiza_ci.yml index acf8e75f..755df1de 100644 --- a/.github/workflows/rhiza_ci.yml +++ b/.github/workflows/rhiza_ci.yml @@ -21,5 +21,5 @@ on: jobs: ci: - uses: jebel-quant/rhiza/.github/workflows/rhiza_ci.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_ci.yml@v0.18.4 secrets: inherit diff --git a/.github/workflows/rhiza_codeql.yml b/.github/workflows/rhiza_codeql.yml index e78d05d1..29a9fb04 100644 --- a/.github/workflows/rhiza_codeql.yml +++ b/.github/workflows/rhiza_codeql.yml @@ -42,5 +42,5 @@ on: jobs: codeql: - uses: jebel-quant/rhiza/.github/workflows/rhiza_codeql.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_codeql.yml@v0.18.4 secrets: inherit diff --git a/.github/workflows/rhiza_marimo.yml b/.github/workflows/rhiza_marimo.yml index 67f29cc9..47e602ed 100644 --- a/.github/workflows/rhiza_marimo.yml +++ b/.github/workflows/rhiza_marimo.yml @@ -28,5 +28,5 @@ on: jobs: marimo: - uses: jebel-quant/rhiza/.github/workflows/rhiza_marimo.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_marimo.yml@v0.18.4 secrets: inherit diff --git a/.github/workflows/rhiza_release.yml b/.github/workflows/rhiza_release.yml index 7b94ee17..3a555a07 100644 --- a/.github/workflows/rhiza_release.yml +++ b/.github/workflows/rhiza_release.yml @@ -154,7 +154,7 @@ jobs: version: "0.11.16" - name: Configure git auth for private packages - uses: jebel-quant/rhiza/.github/actions/configure-git-auth@v0.15.2 + uses: jebel-quant/rhiza/.github/actions/configure-git-auth@v0.18.4 with: token: ${{ secrets.GH_PAT }} diff --git a/.github/workflows/rhiza_sync.yml b/.github/workflows/rhiza_sync.yml index a9b79185..f3eb45c4 100644 --- a/.github/workflows/rhiza_sync.yml +++ b/.github/workflows/rhiza_sync.yml @@ -28,7 +28,7 @@ on: jobs: sync: - uses: jebel-quant/rhiza/.github/workflows/rhiza_sync.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_sync.yml@v0.18.4 with: direct: ${{ github.event_name == 'push' }} create-pr: ${{ github.event_name != 'push' && (github.event_name == 'schedule' || inputs.create-pr == true) }} diff --git a/.github/workflows/rhiza_weekly.yml b/.github/workflows/rhiza_weekly.yml index d56ac34b..27801ade 100644 --- a/.github/workflows/rhiza_weekly.yml +++ b/.github/workflows/rhiza_weekly.yml @@ -25,5 +25,5 @@ on: jobs: weekly: - uses: jebel-quant/rhiza/.github/workflows/rhiza_weekly.yml@v0.16.0 + uses: jebel-quant/rhiza/.github/workflows/rhiza_weekly.yml@v0.18.4 secrets: inherit diff --git a/pyproject.toml b/pyproject.toml index 0a2f9115..46893b31 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ dependencies = [ "narwhals>=2.0.0", "numpy>=2.0.0", "plotly>=6.0.0", - "polars>=1.18.0", + "polars>=1.35.2", "scipy>=1.14.1" ] license = "MIT" diff --git a/tests/test_jquantstats/test__utils/test_utils.py b/tests/test_jquantstats/test__utils/test_utils.py index 359ad8e9..91957fa8 100644 --- a/tests/test_jquantstats/test__utils/test_utils.py +++ b/tests/test_jquantstats/test__utils/test_utils.py @@ -7,6 +7,7 @@ from __future__ import annotations import math +import sys from datetime import date, timedelta from pathlib import Path @@ -524,6 +525,10 @@ def test_exponential_cov_late_start_asset_partial(multi_asset_data): assert not np.isnan(cov[date(2020, 1, 3)][1, 1]) +@pytest.mark.skipif( + sys.platform == "win32", + reason="memory-intensive EWM covariance computation crashes the xdist worker on Windows CI", +) def test_exponential_cov_matches_pandas_stock_prices(): """exponential_cov must match pandas ewm(span).cov(bias=True) on real stock data. diff --git a/tests/test_jquantstats/test_local.py b/tests/test_jquantstats/test_local.py index 76359db1..cbaaae8c 100644 --- a/tests/test_jquantstats/test_local.py +++ b/tests/test_jquantstats/test_local.py @@ -10,6 +10,9 @@ from datetime import date, timedelta import pytest + +pytest.importorskip("fastapi", reason="fastapi not installed (pip install jquantstats[api])") + from starlette.testclient import TestClient from api.app import app diff --git a/uv.lock b/uv.lock index b89379cd..47e97671 100644 --- a/uv.lock +++ b/uv.lock @@ -837,7 +837,7 @@ requires-dist = [ { name = "narwhals", specifier = ">=2.0.0" }, { name = "numpy", specifier = ">=2.0.0" }, { name = "plotly", specifier = ">=6.0.0" }, - { name = "polars", specifier = ">=1.18.0" }, + { name = "polars", specifier = ">=1.35.2" }, { name = "python-multipart", marker = "extra == 'web'", specifier = ">=0.0.12" }, { name = "scipy", specifier = ">=1.14.1" }, { name = "uvicorn", marker = "extra == 'web'", specifier = ">=0.32.0" },