tabmat 4.2.0__tar.gz → 4.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/dependabot.yml +2 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/workflows/build-wheels.yml +11 -11
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/workflows/ci.yml +7 -6
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/workflows/daily.yml +5 -5
- tabmat-4.3.0/.github/workflows/package.yml +62 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/workflows/scorecard.yml +4 -4
- {tabmat-4.2.0 → tabmat-4.3.0}/CHANGELOG.rst +25 -0
- {tabmat-4.2.0/src/tabmat.egg-info → tabmat-4.3.0}/PKG-INFO +1 -1
- tabmat-4.3.0/conda.recipe/recipe.yaml +77 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/changelog.rst +25 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/pixi.lock +17709 -14878
- {tabmat-4.2.0 → tabmat-4.3.0}/pixi.toml +11 -8
- {tabmat-4.2.0 → tabmat-4.3.0}/pyproject.toml +1 -1
- {tabmat-4.2.0 → tabmat-4.3.0}/setup.py +1 -2
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/main.py +2 -2
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/categorical_matrix.py +5 -4
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/constructor.py +7 -5
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/categorical.cpp +13513 -9282
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/categorical.pyx +2 -2
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/dense.cpp +12518 -9077
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/sparse.cpp +17708 -11477
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/split.cpp +13896 -9965
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/split.pyx +12 -12
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/formula.py +3 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/split_matrix.py +1 -1
- {tabmat-4.2.0 → tabmat-4.3.0/src/tabmat.egg-info}/PKG-INFO +1 -1
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat.egg-info/SOURCES.txt +6 -4
- tabmat-4.3.0/src/tabmat.egg-info/scm_file_list.json +108 -0
- tabmat-4.3.0/src/tabmat.egg-info/scm_version.json +8 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_benchmark_cli.py +24 -0
- tabmat-4.3.0/tests/test_big_categorical_matrix.py +149 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_formula.py +27 -0
- tabmat-4.2.0/.github/workflows/conda-build.yml +0 -64
- tabmat-4.2.0/conda.recipe/meta.yaml +0 -68
- tabmat-4.2.0/tests/test_transpose_matvec.py +0 -24
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_64_python3.10.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_64_python3.11.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_64_python3.12.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_64_python3.13.____cp313.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_aarch64_python3.10.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_aarch64_python3.11.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_aarch64_python3.12.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/linux_aarch64_python3.13.____cp313.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_64_python3.10.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_64_python3.11.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_64_python3.12.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_64_python3.13.____cp313.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_arm64_python3.10.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_arm64_python3.11.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_arm64_python3.12.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/osx_arm64_python3.13.____cp313.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/win_64_python3.10.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/win_64_python3.11.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/win_64_python3.12.____cpython.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.ci_support/win_64_python3.13.____cp313.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.gitattributes +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/CODEOWNERS +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/ISSUE_TEMPLATE/issue-template.md +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.gitignore +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.pre-commit-config.yaml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/.readthedocs.yml +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/CONTRIBUTING.md +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/LICENSE +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/README.md +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/SECURITY.md +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/build_and_launch +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/Makefile +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/.gitignore +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/dense_bench.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/dense_cat_bench.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/headline.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/one_cat_bench.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/sparse_bench.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/_static/two_cat_bench.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/api.rst +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/benchmarks.rst +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/conf.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/dev +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/index.rst +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/docs/make.bat +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/images/intermediate_data_sandwich.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/images/narrow_data_sandwich.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/images/wide_data_sandwich.png +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/pytest.ini +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/setup.cfg +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/__init__.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/.gitignore +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/__init__.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/data/.gitignore +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/generate_matrices.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/memory_tools.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/benchmark/visualize_benchmarks.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/constructor_util.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/dense_matrix.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/.gitignore +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/__init__.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/alloc.h +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/cat_split_helpers-tmpl.cpp +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/cat_split_helpers.cpp +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/dense.pyx +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/dense_helpers-tmpl.cpp +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/dense_helpers.cpp +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/sparse.pyx +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/sparse_helpers-tmpl.cpp +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/ext/sparse_helpers.cpp +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/matrix_base.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/sparse_matrix.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/standardized_mat.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat/util.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat.egg-info/dependency_links.txt +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat.egg-info/not-zip-safe +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat.egg-info/requires.txt +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/src/tabmat.egg-info/top_level.txt +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/real_matrix.pkl +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_categorical_matrix.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_constructor.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_fast_sandwich.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_matrices.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_mkl_sparse_matrix.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_real_matrix.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_split_matrix.py +0 -0
- {tabmat-4.2.0 → tabmat-4.3.0}/tests/test_standardized_mat.py +0 -0
|
@@ -20,12 +20,12 @@ jobs:
|
|
|
20
20
|
os: [ubuntu-22.04, ubuntu-22.04-arm, windows-2022, macos-15, macos-15-intel]
|
|
21
21
|
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
23
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
24
24
|
- name: Set up micromamba
|
|
25
|
-
uses: mamba-org/setup-micromamba@
|
|
25
|
+
uses: mamba-org/setup-micromamba@f457c30a868e4760d3a6fcea5f25dc655b8edf39
|
|
26
26
|
- name: Build wheels
|
|
27
|
-
uses: pypa/cibuildwheel@
|
|
28
|
-
- uses: actions/upload-artifact@
|
|
27
|
+
uses: pypa/cibuildwheel@e090b81e30c4d855ea63bf4b6e59204c09a101ae # v4.2.1
|
|
28
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
29
29
|
with:
|
|
30
30
|
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
|
|
31
31
|
path: ./wheelhouse/*.whl
|
|
@@ -34,8 +34,8 @@ jobs:
|
|
|
34
34
|
name: Build source distribution
|
|
35
35
|
runs-on: ubuntu-latest
|
|
36
36
|
steps:
|
|
37
|
-
- uses: actions/checkout@
|
|
38
|
-
- uses: actions/setup-python@
|
|
37
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
38
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
39
39
|
name: Install Python
|
|
40
40
|
with:
|
|
41
41
|
python-version: '3.10'
|
|
@@ -43,7 +43,7 @@ jobs:
|
|
|
43
43
|
run: python -m pip install setuptools setuptools-scm wheel mako numpy 'Cython!=3.0.4'
|
|
44
44
|
- name: Build sdist
|
|
45
45
|
run: python setup.py sdist
|
|
46
|
-
- uses: actions/upload-artifact@
|
|
46
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
47
47
|
with:
|
|
48
48
|
path: dist/*.tar.gz
|
|
49
49
|
|
|
@@ -57,11 +57,11 @@ jobs:
|
|
|
57
57
|
permissions:
|
|
58
58
|
id-token: write
|
|
59
59
|
steps:
|
|
60
|
-
- uses: actions/download-artifact@
|
|
60
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
61
61
|
with:
|
|
62
62
|
merge-multiple: true
|
|
63
63
|
path: dist
|
|
64
|
-
- uses: pypa/gh-action-pypi-publish@
|
|
64
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
65
65
|
with:
|
|
66
66
|
repository-url: https://test.pypi.org/legacy/
|
|
67
67
|
|
|
@@ -75,8 +75,8 @@ jobs:
|
|
|
75
75
|
permissions:
|
|
76
76
|
id-token: write
|
|
77
77
|
steps:
|
|
78
|
-
- uses: actions/download-artifact@
|
|
78
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
79
79
|
with:
|
|
80
80
|
merge-multiple: true
|
|
81
81
|
path: dist
|
|
82
|
-
- uses: pypa/gh-action-pypi-publish@
|
|
82
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
@@ -19,9 +19,9 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
steps:
|
|
21
21
|
- name: Checkout branch
|
|
22
|
-
uses: actions/checkout@
|
|
22
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
23
23
|
- name: Set up pixi
|
|
24
|
-
uses: prefix-dev/setup-pixi@
|
|
24
|
+
uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2
|
|
25
25
|
with:
|
|
26
26
|
environments: lint default
|
|
27
27
|
- name: pre-commit
|
|
@@ -40,15 +40,16 @@ jobs:
|
|
|
40
40
|
- { os: ubuntu-latest, environment: 'py311' }
|
|
41
41
|
- { os: ubuntu-latest, environment: 'py312' }
|
|
42
42
|
- { os: ubuntu-latest, environment: 'py313' }
|
|
43
|
-
- { os:
|
|
44
|
-
- { os:
|
|
43
|
+
- { os: ubuntu-latest, environment: 'py314' }
|
|
44
|
+
- { os: windows-latest, environment: 'py314' }
|
|
45
|
+
- { os: macos-latest, environment: 'py314' }
|
|
45
46
|
- { os: ubuntu-latest, environment: 'oldies' }
|
|
46
47
|
- { os: ubuntu-latest, environment: 'nightly' }
|
|
47
48
|
steps:
|
|
48
49
|
- name: Checkout branch
|
|
49
|
-
uses: actions/checkout@
|
|
50
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
51
|
- name: Set up pixi
|
|
51
|
-
uses: prefix-dev/setup-pixi@
|
|
52
|
+
uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2
|
|
52
53
|
with:
|
|
53
54
|
environments: ${{ matrix.environment }}
|
|
54
55
|
- name: Update dependencies
|
|
@@ -19,13 +19,13 @@ jobs:
|
|
|
19
19
|
include:
|
|
20
20
|
- environment: 'nightly'
|
|
21
21
|
NOTE: 'Nightly Builds' # run once with nightlies
|
|
22
|
-
- environment: '
|
|
23
|
-
NOTE: 'Python 3.
|
|
22
|
+
- environment: 'py314'
|
|
23
|
+
NOTE: 'Python 3.14' # run once with normal dependencies
|
|
24
24
|
steps:
|
|
25
25
|
- name: Checkout branch
|
|
26
|
-
uses: actions/checkout@
|
|
26
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
27
27
|
- name: Set up pixi
|
|
28
|
-
uses: prefix-dev/setup-pixi@
|
|
28
|
+
uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2
|
|
29
29
|
with:
|
|
30
30
|
environments: ${{ matrix.environment }}
|
|
31
31
|
- name: Update dependencies
|
|
@@ -48,7 +48,7 @@ jobs:
|
|
|
48
48
|
pixi run --manifest-path ../tabmat/pixi.toml -e ${{ matrix.environment }} python -m doctest -v README.md
|
|
49
49
|
|
|
50
50
|
- name: Issue on failure
|
|
51
|
-
uses: actions/github-script@
|
|
51
|
+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
52
52
|
if: ${{ failure() && github.ref == 'refs/heads/main' }}
|
|
53
53
|
with:
|
|
54
54
|
script: |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: conda-build
|
|
2
|
+
on:
|
|
3
|
+
# We would like to trigger for CI for any pull request action -
|
|
4
|
+
# both from QuantCo's branches as well as forks.
|
|
5
|
+
pull_request:
|
|
6
|
+
# In addition to pull requests, we want to run CI for pushes
|
|
7
|
+
# to the main branch and tags.
|
|
8
|
+
push:
|
|
9
|
+
branches:
|
|
10
|
+
- "main"
|
|
11
|
+
tags:
|
|
12
|
+
- "*"
|
|
13
|
+
paths:
|
|
14
|
+
- ".github/**"
|
|
15
|
+
- "conda.recipe/**"
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
build:
|
|
19
|
+
name: ${{ matrix['variant-file'] }}
|
|
20
|
+
runs-on: ${{ matrix.os }}
|
|
21
|
+
env:
|
|
22
|
+
CI: True
|
|
23
|
+
strategy:
|
|
24
|
+
fail-fast: false
|
|
25
|
+
matrix:
|
|
26
|
+
include:
|
|
27
|
+
- { variant-file: linux_64_python3.10.____cpython, target-platform: linux-64, os: ubuntu-latest, rattler-build-args: '' }
|
|
28
|
+
- { variant-file: linux_64_python3.13.____cp313, target-platform: linux-64, os: ubuntu-latest, rattler-build-args: '' }
|
|
29
|
+
- { variant-file: osx_64_python3.10.____cpython, target-platform: osx-64, os: macos-15-intel, rattler-build-args: '' }
|
|
30
|
+
- { variant-file: osx_arm64_python3.10.____cpython, target-platform: osx-arm64, os: macos-latest, rattler-build-args: '' }
|
|
31
|
+
- { variant-file: osx_arm64_python3.13.____cp313, target-platform: osx-arm64, os: macos-latest, rattler-build-args: '' }
|
|
32
|
+
- { variant-file: win_64_python3.10.____cpython, target-platform: win-64, os: windows-2022, rattler-build-args: '' }
|
|
33
|
+
- { variant-file: win_64_python3.13.____cp313, target-platform: win-64, os: windows-2022, rattler-build-args: '' }
|
|
34
|
+
|
|
35
|
+
steps:
|
|
36
|
+
- name: Checkout branch
|
|
37
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
38
|
+
with:
|
|
39
|
+
fetch-depth: 0
|
|
40
|
+
- name: Get git metadata
|
|
41
|
+
id: git-metadata
|
|
42
|
+
shell: bash
|
|
43
|
+
run: |
|
|
44
|
+
if [ -f .git/shallow ]; then
|
|
45
|
+
git fetch --prune --unshallow
|
|
46
|
+
fi
|
|
47
|
+
GIT_DESCRIBE_TAG="$(git describe --tags --abbrev=0 || echo UNKNOWN)"
|
|
48
|
+
echo GIT_DESCRIBE_TAG=${GIT_DESCRIBE_TAG} >> $GITHUB_OUTPUT
|
|
49
|
+
GIT_DESCRIBE_HASH=g"$(git rev-parse --short HEAD || echo UNKNOWN)"
|
|
50
|
+
echo GIT_DESCRIBE_HASH=${GIT_DESCRIBE_HASH} >> $GITHUB_OUTPUT
|
|
51
|
+
GIT_DESCRIBE_NUMBER="$(git rev-list --count ${GIT_DESCRIBE_TAG}..HEAD || echo UNKNOWN)"
|
|
52
|
+
echo GIT_DESCRIBE_NUMBER=$GIT_DESCRIBE_NUMBER >> $GITHUB_OUTPUT
|
|
53
|
+
|
|
54
|
+
- uses: prefix-dev/rattler-build-action@1ca5f45832f419a46d1326ccc5861d7e14d67c44 # v0.2.39
|
|
55
|
+
with:
|
|
56
|
+
recipe-path: conda.recipe/recipe.yaml
|
|
57
|
+
build-args: -m .ci_support/${{ matrix['variant-file'] }}.yaml --target-platform ${{ matrix['target-platform'] }} ${{ matrix['rattler-build-args'] }}
|
|
58
|
+
artifact-name: package-${{ matrix['variant-file'] }}
|
|
59
|
+
env:
|
|
60
|
+
GIT_DESCRIBE_TAG: ${{ steps.git-metadata.outputs.GIT_DESCRIBE_TAG }}
|
|
61
|
+
GIT_DESCRIBE_HASH: ${{ steps.git-metadata.outputs.GIT_DESCRIBE_HASH }}
|
|
62
|
+
GIT_DESCRIBE_NUMBER: ${{ steps.git-metadata.outputs.GIT_DESCRIBE_NUMBER }}
|
|
@@ -35,12 +35,12 @@ jobs:
|
|
|
35
35
|
|
|
36
36
|
steps:
|
|
37
37
|
- name: "Checkout code"
|
|
38
|
-
uses: actions/checkout@
|
|
38
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
39
39
|
with:
|
|
40
40
|
persist-credentials: false
|
|
41
41
|
|
|
42
42
|
- name: "Run analysis"
|
|
43
|
-
uses: ossf/scorecard-action@
|
|
43
|
+
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
|
|
44
44
|
with:
|
|
45
45
|
results_file: results.sarif
|
|
46
46
|
results_format: sarif
|
|
@@ -65,7 +65,7 @@ jobs:
|
|
|
65
65
|
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
|
|
66
66
|
# format to the repository Actions tab.
|
|
67
67
|
- name: "Upload artifact"
|
|
68
|
-
uses: actions/upload-artifact@
|
|
68
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
69
69
|
with:
|
|
70
70
|
name: SARIF file
|
|
71
71
|
path: results.sarif
|
|
@@ -74,6 +74,6 @@ jobs:
|
|
|
74
74
|
# Upload the results to GitHub's code scanning dashboard (optional).
|
|
75
75
|
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
|
76
76
|
- name: "Upload to code-scanning"
|
|
77
|
-
uses: github/codeql-action/upload-sarif@
|
|
77
|
+
uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2
|
|
78
78
|
with:
|
|
79
79
|
sarif_file: results.sarif
|
|
@@ -7,6 +7,31 @@
|
|
|
7
7
|
Changelog
|
|
8
8
|
=========
|
|
9
9
|
|
|
10
|
+
4.3.0 - 2026-10-30
|
|
11
|
+
------------------
|
|
12
|
+
|
|
13
|
+
**New feature:**
|
|
14
|
+
|
|
15
|
+
- Numerical factors now record formulaic's ``spans_intercept`` in the model spec's ``encoder_state``. For example, this shows whether ``bs()`` dropped its first basis function.
|
|
16
|
+
|
|
17
|
+
**Bug fixes:**
|
|
18
|
+
|
|
19
|
+
- Fixed compatibility with polars 2.0, which removed ``Series.cat.get_categories()``.
|
|
20
|
+
|
|
21
|
+
**Other changes:**
|
|
22
|
+
|
|
23
|
+
- Clarified that ``sparse_threshold`` is used to sparsify numerical columns and is not used to densify columns that are already sparse.
|
|
24
|
+
- Fixed the benchmark harness silently recording zero timings and memory under pandas 3, where the chained assignment it used is rejected by copy-on-write.
|
|
25
|
+
- We disabled fast math to avoid invalid results (e.g., when dividing by zero).
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
4.2.1 - 2026-02-04
|
|
29
|
+
------------------
|
|
30
|
+
|
|
31
|
+
**Bug fixes:**
|
|
32
|
+
|
|
33
|
+
- Fixed methods `_cross_categorical`, `_cross_sandwich`, `multiply`, `tocsr` of `CategoricalMatrix` and function `_sandwich_cat_cat_limited_rows_cols` to operate on read-only buffers as well.
|
|
34
|
+
|
|
10
35
|
|
|
11
36
|
4.2.0 - 2026-01-13
|
|
12
37
|
------------------
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
context:
|
|
2
|
+
name: tabmat
|
|
3
|
+
version: ${{ env.get('GIT_DESCRIBE_TAG') | trim('v') }}${{ ('.post' + env.get('GIT_DESCRIBE_NUMBER') + '+' + env.get('GIT_DESCRIBE_HASH')) if env.get('GIT_DESCRIBE_NUMBER', default='0') != '0' }}
|
|
4
|
+
|
|
5
|
+
package:
|
|
6
|
+
name: tabmat
|
|
7
|
+
version: ${{ version }}
|
|
8
|
+
|
|
9
|
+
source:
|
|
10
|
+
path: ../
|
|
11
|
+
use_gitignore: false
|
|
12
|
+
|
|
13
|
+
build:
|
|
14
|
+
number: 0
|
|
15
|
+
script: python -m pip install . -vv
|
|
16
|
+
|
|
17
|
+
requirements:
|
|
18
|
+
build:
|
|
19
|
+
- if: build_platform != target_platform
|
|
20
|
+
then:
|
|
21
|
+
- python
|
|
22
|
+
- cross-python_${{ target_platform }}
|
|
23
|
+
- cython !=3.0.4
|
|
24
|
+
- numpy
|
|
25
|
+
- ${{ compiler("c") }}
|
|
26
|
+
- ${{ stdlib("c") }}
|
|
27
|
+
- ${{ compiler("cxx") }}
|
|
28
|
+
- if: osx
|
|
29
|
+
then:
|
|
30
|
+
- llvm-openmp
|
|
31
|
+
- if: linux
|
|
32
|
+
then:
|
|
33
|
+
- libgomp
|
|
34
|
+
host:
|
|
35
|
+
- python
|
|
36
|
+
- cython !=3.0.4
|
|
37
|
+
- if: not win
|
|
38
|
+
then:
|
|
39
|
+
- jemalloc-local
|
|
40
|
+
- if: osx
|
|
41
|
+
then:
|
|
42
|
+
- llvm-openmp
|
|
43
|
+
- mako
|
|
44
|
+
- numpy
|
|
45
|
+
- pip
|
|
46
|
+
- setuptools-scm
|
|
47
|
+
- xsimd <11|>12.1
|
|
48
|
+
run:
|
|
49
|
+
- python
|
|
50
|
+
- ${{ pin_compatible('numpy') }}
|
|
51
|
+
- formulaic >=1.2
|
|
52
|
+
- scipy
|
|
53
|
+
- narwhals >=2
|
|
54
|
+
|
|
55
|
+
tests:
|
|
56
|
+
- python:
|
|
57
|
+
pip_check: true
|
|
58
|
+
imports:
|
|
59
|
+
- tabmat
|
|
60
|
+
|
|
61
|
+
about:
|
|
62
|
+
homepage: https://github.com/Quantco/tabmat
|
|
63
|
+
license: BSD-3-Clause
|
|
64
|
+
license_file: LICENSE
|
|
65
|
+
summary: Efficient matrix representations for working with tabular data
|
|
66
|
+
description: |
|
|
67
|
+
tabmat provides efficient tools for representing tabular data as a mix of
|
|
68
|
+
dense, sparse and categorical subcomponents, resulting in 100x faster
|
|
69
|
+
performance on some machine learning problems!
|
|
70
|
+
documentation: https://tabmat.readthedocs.io/
|
|
71
|
+
repository: https://github.com/Quantco/tabmat
|
|
72
|
+
|
|
73
|
+
extra:
|
|
74
|
+
recipe-maintainers:
|
|
75
|
+
- MarcAntoineSchmidtQC
|
|
76
|
+
- xhochy
|
|
77
|
+
- tbenthompson
|
|
@@ -7,6 +7,31 @@
|
|
|
7
7
|
Changelog
|
|
8
8
|
=========
|
|
9
9
|
|
|
10
|
+
4.3.0 - 2026-10-30
|
|
11
|
+
------------------
|
|
12
|
+
|
|
13
|
+
**New feature:**
|
|
14
|
+
|
|
15
|
+
- Numerical factors now record formulaic's ``spans_intercept`` in the model spec's ``encoder_state``. For example, this shows whether ``bs()`` dropped its first basis function.
|
|
16
|
+
|
|
17
|
+
**Bug fixes:**
|
|
18
|
+
|
|
19
|
+
- Fixed compatibility with polars 2.0, which removed ``Series.cat.get_categories()``.
|
|
20
|
+
|
|
21
|
+
**Other changes:**
|
|
22
|
+
|
|
23
|
+
- Clarified that ``sparse_threshold`` is used to sparsify numerical columns and is not used to densify columns that are already sparse.
|
|
24
|
+
- Fixed the benchmark harness silently recording zero timings and memory under pandas 3, where the chained assignment it used is rejected by copy-on-write.
|
|
25
|
+
- We disabled fast math to avoid invalid results (e.g., when dividing by zero).
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
4.2.1 - 2026-02-04
|
|
29
|
+
------------------
|
|
30
|
+
|
|
31
|
+
**Bug fixes:**
|
|
32
|
+
|
|
33
|
+
- Fixed methods `_cross_categorical`, `_cross_sandwich`, `multiply`, `tocsr` of `CategoricalMatrix` and function `_sandwich_cat_cat_limited_rows_cols` to operate on read-only buffers as well.
|
|
34
|
+
|
|
10
35
|
|
|
11
36
|
4.2.0 - 2026-01-13
|
|
12
37
|
------------------
|