Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 21 additions & 5 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,20 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel, windows-11-arm]
python: [cp310, cp311, cp312, cp313, cp314]
python_impl: [Python]
include:
- python: cp312
os: ubuntu-latest
python_impl: Pyodide
exclude:
- os: windows-11-arm
python: cp310
- os: windows-11-arm
python: cp311
- os: windows-11-arm
python: cp312
env:
BUILD_COMMIT: "main" # or a specific version, e.g., v0.13.1
CIBW_BUILD: ${{ matrix.python }}-*
Expand All @@ -33,8 +40,8 @@ jobs:
# No support for pypy, musl, Win32 for 3.10+
# Skip musl for 3.8 and 3.9 since no upstream wheels
CIBW_SKIP: "pp* *-win32 *musllinux_aarch64*"
CIBW_TEST_REQUIRES: pytest pytest-xdist
CIBW_TEST_COMMAND: python -c "import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2'], exit=True)"
CIBW_TEST_REQUIRES: pytest pytest-xdist pytest-randomly threadpoolctl
CIBW_TEST_COMMAND: python -c "import numpy; numpy.show_runtime(); import statsmodels; statsmodels.test(['-m','(not slow and not example)','-n','2'], exit=True)"
# Avoid testing on emulated architectures and Pyodide
CIBW_TEST_SKIP: "*-*linux_{aarch64,ppc64le,s390x} *pyodide*"
CIBW_REPAIR_WHEEL_COMMAND_LINUX: 'auditwheel repair --strip -w {dest_dir} {wheel}'
Expand Down Expand Up @@ -101,6 +108,7 @@ jobs:

- name: Install conda
uses: conda-incubator/setup-miniconda@v3
if: (runner.os != 'Windows') || ((runner.os == 'Windows') && (runner.arch != 'ARM64'))
with:
# for installation of anaconda-client, required for upload to
# anaconda.org
Expand All @@ -112,11 +120,20 @@ jobs:
miniforge-version: latest
conda-remove-defaults: "true"

- name: Inspect conda
- name: Inspect conda and install anaconda-client
shell: pwsh
if: (runner.os != 'Windows') || ((runner.os == 'Windows') && (runner.arch != 'ARM64'))
run: |
conda info
conda list
conda install -y anaconda-client

- name: Install anaconda-client (Windows ARM64)
shell: pwsh
if: ((runner.os == 'Windows') && (runner.arch == 'ARM64'))
run: |
python -m pip install pip -U
pip install --only-binary :all: anaconda-client

- name: Upload wheels
if: ${{ always() }}
Expand All @@ -137,7 +154,6 @@ jobs:
echo ${PWD}
if ( $env:ANACONDA_UPLOAD -eq "true")
{
conda install -y anaconda-client
echo "Uploading to $env:ANACONDA_ORG"
# main branches of these two packages
ls ./wheelhouse/*.whl
Expand Down
2 changes: 1 addition & 1 deletion statsmodels
Submodule statsmodels updated 63 files
+1 −1 .github/workflows/codeql.yml
+2 −2 .github/workflows/cron-test.yml
+2 −2 .github/workflows/emscripten.yml
+3 −3 .github/workflows/generate-documentation.yml
+1 −1 docs/source/api-structure.rst
+1 −1 docs/source/conf.py
+1 −1 examples/notebooks/autoregressions.ipynb
+1 −1 examples/notebooks/ordinal_regression.ipynb
+7 −7 examples/notebooks/theta-model.ipynb
+2 −2 examples/python/interactions_anova.py
+1 −1 examples/python/ordinal_regression.py
+2 −2 examples/python/statespace_sarimax_internet.py
+3 −1 pyproject.toml
+2 −0 requirements-dev.txt
+2 −2 statsmodels/base/_prediction_inference.py
+11 −0 statsmodels/compat/matplotlib.py
+16 −12 statsmodels/conftest.py
+15 −4 statsmodels/discrete/discrete_model.py
+1 −1 statsmodels/discrete/tests/test_predict.py
+2 −0 statsmodels/distributions/tests/test_bernstein.py
+9 −0 statsmodels/emplike/descriptive.py
+12 −0 statsmodels/emplike/tests/test_descriptive.py
+2 −2 statsmodels/formula/_manager.py
+13 −0 statsmodels/formula/tests/test_formula.py
+2 −2 statsmodels/genmod/generalized_linear_model.py
+2 −2 statsmodels/graphics/gofplots.py
+0 −29 statsmodels/graphics/regressionplots.py
+66 −17 statsmodels/graphics/tests/test_tsaplots.py
+36 −40 statsmodels/graphics/tsaplots.py
+0 −0 statsmodels/interface/__init__.py
+1 −1 statsmodels/meson.build
+160 −45 statsmodels/nonparametric/_kernel_base.py
+1 −1 statsmodels/nonparametric/_smoothers_lowess.pyx
+1 −1 statsmodels/nonparametric/api.py
+3 −2 statsmodels/nonparametric/bandwidths.py
+4 −7 statsmodels/nonparametric/kde.py
+6 −6 statsmodels/nonparametric/kdetools.py
+149 −80 statsmodels/nonparametric/kernel_density.py
+202 −81 statsmodels/nonparametric/kernel_regression.py
+7 −6 statsmodels/nonparametric/kernels.py
+92 −43 statsmodels/nonparametric/kernels_asymmetric.py
+1 −1 statsmodels/nonparametric/smoothers_lowess.py
+33 −33 statsmodels/nonparametric/smoothers_lowess_old.py
+16 −15 statsmodels/nonparametric/tests/test_asymmetric.py
+4 −7 statsmodels/nonparametric/tests/test_bandwidths.py
+54 −28 statsmodels/nonparametric/tests/test_kde.py
+292 −105 statsmodels/nonparametric/tests/test_kernel_density.py
+409 −111 statsmodels/nonparametric/tests/test_kernel_regression.py
+21 −10 statsmodels/nonparametric/tests/test_kernels.py
+2 −0 statsmodels/regression/tests/test_lme.py
+2 −0 statsmodels/regression/tests/test_processreg.py
+87 −55 statsmodels/robust/norms.py
+3 −3 statsmodels/robust/tools.py
+3 −2 statsmodels/stats/anova.py
+10 −1 statsmodels/stats/tests/test_power.py
+83 −62 statsmodels/tsa/ar_model.py
+1 −2 statsmodels/tsa/statespace/dynamic_factor_mq.py
+2 −3 statsmodels/tsa/statespace/meson.build
+37 −67 statsmodels/tsa/tests/test_ar.py
+3 −2 statsmodels/tsa/vector_ar/tests/test_var.py
+8 −7 statsmodels/tsa/vector_ar/vecm.py
+35 −4 tools/ci/azure/azure_template_posix.yml
+5 −2 tools/ci/azure/azure_template_windows.yml
Loading