cvmatrix 3.2.1__tar.gz → 3.2.3__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.
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/actions/build/action.yml +4 -4
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/actions/release/action.yml +2 -2
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/actions/test/action.yml +4 -2
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/workflows/package_workflow.yml +4 -4
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/workflows/pull_request_package_workflow.yml +1 -1
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/workflows/pull_request_test_workflow.yml +4 -4
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.github/workflows/test_workflow.yml +4 -4
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/CHANGELOG.md +12 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/PKG-INFO +11 -3
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/README.md +6 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/cvmatrix/__init__.py +1 -1
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/cvmatrix/cvmatrix.py +18 -16
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/pyproject.toml +4 -2
- cvmatrix-3.2.3/uv.lock +1429 -0
- cvmatrix-3.2.1/uv.lock +0 -800
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.gitignore +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/.readthedocs.yaml +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/CONTRIBUTING.md +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/LICENSE +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/README.md +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/__init__.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark_cvmatrix.png +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark_cvmatrix_numpy_vs_jax.png +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark_cvmatrix_vs_naive.png +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark_jax_variants.png +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark_results.csv +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/benchmark_results_jax.csv +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/benchmarks/plot_benchmark.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/cvmatrix/partitioner.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/CONTRIBUTING.md +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/Makefile +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/README.md +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/api.rst +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/conf.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/index.rst +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/make.bat +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/requirements.txt +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/source/cvmatrix.rst +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/source/cvmatrix_module.rst +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/docs/source/partitioner_module.rst +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/examples/__init__.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/examples/training_matrices.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/examples/training_matrices_jax.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/tests/__init__.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/tests/load_data.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/tests/naive_cvmatrix.py +0 -0
- {cvmatrix-3.2.1 → cvmatrix-3.2.3}/tests/test_cvmatrix.py +0 -0
|
@@ -4,12 +4,12 @@ description: Build the package
|
|
|
4
4
|
runs:
|
|
5
5
|
using: "composite"
|
|
6
6
|
steps:
|
|
7
|
-
- uses: actions/checkout@
|
|
7
|
+
- uses: actions/checkout@v7
|
|
8
8
|
|
|
9
9
|
- name: Install uv
|
|
10
|
-
uses: astral-sh/setup-uv@
|
|
10
|
+
uses: astral-sh/setup-uv@v7
|
|
11
11
|
with:
|
|
12
|
-
python-version: '3.
|
|
12
|
+
python-version: '3.15'
|
|
13
13
|
|
|
14
14
|
- name: Lint with ruff
|
|
15
15
|
run: |
|
|
@@ -28,7 +28,7 @@ runs:
|
|
|
28
28
|
shell: bash
|
|
29
29
|
|
|
30
30
|
- name: Store the distribution packages
|
|
31
|
-
uses: actions/upload-artifact@
|
|
31
|
+
uses: actions/upload-artifact@v7
|
|
32
32
|
with:
|
|
33
33
|
name: python-package-distributions
|
|
34
34
|
path: dist/
|
|
@@ -11,12 +11,12 @@ runs:
|
|
|
11
11
|
echo "VERSION=$version" >> $GITHUB_ENV
|
|
12
12
|
shell: bash
|
|
13
13
|
- name: Download all the dists
|
|
14
|
-
uses: actions/download-artifact@
|
|
14
|
+
uses: actions/download-artifact@v8
|
|
15
15
|
with:
|
|
16
16
|
name: python-package-distributions
|
|
17
17
|
path: dist/
|
|
18
18
|
- name: Sign the dists with Sigstore
|
|
19
|
-
uses: sigstore/gh-action-sigstore-python@v3.
|
|
19
|
+
uses: sigstore/gh-action-sigstore-python@v3.4.0
|
|
20
20
|
with:
|
|
21
21
|
inputs: >-
|
|
22
22
|
./dist/*.tar.gz
|
|
@@ -14,7 +14,7 @@ runs:
|
|
|
14
14
|
using: "composite"
|
|
15
15
|
steps:
|
|
16
16
|
- name: Install uv
|
|
17
|
-
uses: astral-sh/setup-uv@
|
|
17
|
+
uses: astral-sh/setup-uv@v7
|
|
18
18
|
with:
|
|
19
19
|
python-version: ${{ inputs.PYTHON_VERSION }}
|
|
20
20
|
|
|
@@ -33,5 +33,7 @@ runs:
|
|
|
33
33
|
# are skipped (pytest.importorskip), verifying the numpy-only path.
|
|
34
34
|
- name: Run tests
|
|
35
35
|
run: |
|
|
36
|
-
|
|
36
|
+
# NOTE: --typeguard-packages takes the PACKAGE name "cvmatrix" (not a path); a
|
|
37
|
+
# trailing slash silently instruments nothing, disabling runtime type checks.
|
|
38
|
+
uv run pytest tests --doctest-modules --junitxml=junit/test-results.xml --cov=cvmatrix/ --cov-report=xml --typeguard-packages=cvmatrix
|
|
37
39
|
shell: bash
|
|
@@ -10,7 +10,7 @@ jobs:
|
|
|
10
10
|
build_package:
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
13
|
+
- uses: actions/checkout@v7
|
|
14
14
|
- uses: ./.github/actions/build
|
|
15
15
|
|
|
16
16
|
publish_package:
|
|
@@ -18,8 +18,8 @@ jobs:
|
|
|
18
18
|
runs-on: ubuntu-latest
|
|
19
19
|
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@
|
|
22
|
-
- uses: actions/download-artifact@
|
|
21
|
+
- uses: actions/checkout@v7
|
|
22
|
+
- uses: actions/download-artifact@v8
|
|
23
23
|
with:
|
|
24
24
|
name: python-package-distributions
|
|
25
25
|
path: dist/
|
|
@@ -41,5 +41,5 @@ jobs:
|
|
|
41
41
|
contents: write
|
|
42
42
|
id-token: write
|
|
43
43
|
steps:
|
|
44
|
-
- uses: actions/checkout@
|
|
44
|
+
- uses: actions/checkout@v7
|
|
45
45
|
- uses: ./.github/actions/release
|
|
@@ -18,9 +18,9 @@ jobs:
|
|
|
18
18
|
fail-fast: false
|
|
19
19
|
matrix:
|
|
20
20
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
21
|
-
python-version: ["3.11", "3.12", "3.13", "3.14"]
|
|
21
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
23
|
+
- uses: actions/checkout@v7
|
|
24
24
|
- uses: ./.github/actions/test
|
|
25
25
|
with:
|
|
26
26
|
PYTHON_VERSION: ${{ matrix.python-version }}
|
|
@@ -42,9 +42,9 @@ jobs:
|
|
|
42
42
|
fail-fast: false
|
|
43
43
|
matrix:
|
|
44
44
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
45
|
-
python-version: ["3.11", "3.12", "3.13", "3.14"]
|
|
45
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
|
|
46
46
|
steps:
|
|
47
|
-
- uses: actions/checkout@
|
|
47
|
+
- uses: actions/checkout@v7
|
|
48
48
|
- uses: ./.github/actions/test
|
|
49
49
|
with:
|
|
50
50
|
PYTHON_VERSION: ${{ matrix.python-version }}
|
|
@@ -18,9 +18,9 @@ jobs:
|
|
|
18
18
|
fail-fast: false
|
|
19
19
|
matrix:
|
|
20
20
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
21
|
-
python-version: ["3.11", "3.12", "3.13", "3.14"]
|
|
21
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
22
22
|
steps:
|
|
23
|
-
- uses: actions/checkout@
|
|
23
|
+
- uses: actions/checkout@v7
|
|
24
24
|
- uses: ./.github/actions/test
|
|
25
25
|
with:
|
|
26
26
|
PYTHON_VERSION: ${{ matrix.python-version }}
|
|
@@ -42,9 +42,9 @@ jobs:
|
|
|
42
42
|
fail-fast: false
|
|
43
43
|
matrix:
|
|
44
44
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
45
|
-
python-version: ["3.11", "3.12", "3.13", "3.14"]
|
|
45
|
+
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
|
46
46
|
steps:
|
|
47
|
-
- uses: actions/checkout@
|
|
47
|
+
- uses: actions/checkout@v7
|
|
48
48
|
- uses: ./.github/actions/test
|
|
49
49
|
with:
|
|
50
50
|
PYTHON_VERSION: ${{ matrix.python-version }}
|
|
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.2.3] - 2026-10-30
|
|
9
|
+
- Increased the maximum supported Python version from 3.14 to 3.15. Python 3.15 is now included in the CI test matrices. No functional changes.
|
|
10
|
+
|
|
11
|
+
## [3.2.2] - 2026-07-06
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
- Lowered the minimum supported Python version from 3.11 to 3.10 (`requires-python = ">=3.10, <3.15"`). The code base uses no Python-3.11-only features; this broadens compatibility for downstream packages that still support Python 3.10. Python 3.10 is now included in the CI test matrices. No functional changes.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
- The fold-index parameters (`validation_indices` / `val_indices`) are now annotated with a new `IndexArray` alias that `_enable_jax_typing()` broadens to admit `jax.Array`, matching the `Array`/`Scalar` aliases introduced in 3.2.1. Previously they were annotated as `npt.NDArray[np.int_]` only, so running the test suite with `typeguard` instrumentation enabled failed on the `jax.jit`/`jax.vmap` trace tests (the indices are abstract tracers under tracing). Runtime behavior is unchanged; this only affects runtime type checking.
|
|
18
|
+
- CI now actually enables `typeguard` instrumentation during tests: the test command passed `--typeguard-packages=cvmatrix/` (a path, with a trailing slash) instead of the package name `cvmatrix`, which silently instrumented nothing and masked the annotation issue above.
|
|
19
|
+
|
|
8
20
|
## [3.2.1] - 2026-07-01
|
|
9
21
|
|
|
10
22
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: cvmatrix
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.3
|
|
4
4
|
Summary: Fast computation of possibly weighted and possibly centered/scaled training set kernel matrices in a cross-validation setting.
|
|
5
5
|
Project-URL: Homepage, https://cvmatrix.readthedocs.io/en/latest/
|
|
6
6
|
Project-URL: Repository, https://github.com/Sm00thix/CVMatrix
|
|
@@ -8,11 +8,13 @@ Author-email: Sm00thix <oleemail@icloud.com>
|
|
|
8
8
|
Maintainer-email: Sm00thix <oleemail@icloud.com>
|
|
9
9
|
License-Expression: Apache-2.0
|
|
10
10
|
License-File: LICENSE
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
11
12
|
Classifier: Programming Language :: Python :: 3.11
|
|
12
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
13
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
15
|
Classifier: Programming Language :: Python :: 3.14
|
|
15
|
-
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
17
|
+
Requires-Python: <3.16,>=3.10
|
|
16
18
|
Requires-Dist: numpy<3.0.0,>=2.0.0
|
|
17
19
|
Provides-Extra: jax
|
|
18
20
|
Requires-Dist: jax>=0.4.0; extra == 'jax'
|
|
@@ -32,6 +34,8 @@ Description-Content-Type: text/markdown
|
|
|
32
34
|
|
|
33
35
|
[](https://cvmatrix.readthedocs.io/en/latest/?badge=latest)
|
|
34
36
|
|
|
37
|
+
[](https://www.codefactor.io/repository/github/sm00thix/cvmatrix/overview/main)
|
|
38
|
+
|
|
35
39
|
[](https://github.com/Sm00thix/CVMatrix/actions/workflows/test_workflow.yml)
|
|
36
40
|
|
|
37
41
|
[](https://coveralls.io/github/sm00thix/cvmatrix?branch=main)
|
|
@@ -44,6 +48,10 @@ For an implementation of the fast cross-validation algorithms combined with Impr
|
|
|
44
48
|
|
|
45
49
|
The `cvmatrix` software package now also features **weigthed matrix produts** $\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{Y}$ **without increasing time or space complexity compared to the unweighted case**. This is due to a generalization of the algorithms by Engstrøm and Jensen [[1]](#references). A new article formally describing the generalization is to be announced.
|
|
46
50
|
|
|
51
|
+
## Citation
|
|
52
|
+
- If you use the `cvmatrix` software package for your work, please cite [this Journal of Chemometrics article](https://analyticalsciencejournals.onlinelibrary.wiley.com/doi/full/10.1002/cem.70008).
|
|
53
|
+
- If you use the sample weighted option, please also cite [this PhD thesis](https://arxiv.org/abs/2510.13452).
|
|
54
|
+
|
|
47
55
|
## Installation
|
|
48
56
|
|
|
49
57
|
- Install the package for Python3 using the following command:
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
[](https://cvmatrix.readthedocs.io/en/latest/?badge=latest)
|
|
14
14
|
|
|
15
|
+
[](https://www.codefactor.io/repository/github/sm00thix/cvmatrix/overview/main)
|
|
16
|
+
|
|
15
17
|
[](https://github.com/Sm00thix/CVMatrix/actions/workflows/test_workflow.yml)
|
|
16
18
|
|
|
17
19
|
[](https://coveralls.io/github/sm00thix/cvmatrix?branch=main)
|
|
@@ -24,6 +26,10 @@ For an implementation of the fast cross-validation algorithms combined with Impr
|
|
|
24
26
|
|
|
25
27
|
The `cvmatrix` software package now also features **weigthed matrix produts** $\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{Y}$ **without increasing time or space complexity compared to the unweighted case**. This is due to a generalization of the algorithms by Engstrøm and Jensen [[1]](#references). A new article formally describing the generalization is to be announced.
|
|
26
28
|
|
|
29
|
+
## Citation
|
|
30
|
+
- If you use the `cvmatrix` software package for your work, please cite [this Journal of Chemometrics article](https://analyticalsciencejournals.onlinelibrary.wiley.com/doi/full/10.1002/cem.70008).
|
|
31
|
+
- If you use the sample weighted option, please also cite [this PhD thesis](https://arxiv.org/abs/2510.13452).
|
|
32
|
+
|
|
27
33
|
## Installation
|
|
28
34
|
|
|
29
35
|
- Install the package for Python3 using the following command:
|
|
@@ -26,6 +26,9 @@ from numpy import typing as npt
|
|
|
26
26
|
# globals at call time, so the broadened unions take effect once JAX is in use.
|
|
27
27
|
Array = np.ndarray
|
|
28
28
|
Scalar = Union[np.floating, float, int]
|
|
29
|
+
# Integer index arrays (fold validation indices). Under jax.jit/jax.vmap these are
|
|
30
|
+
# abstract tracers, so the alias is broadened alongside ``Array``/``Scalar``.
|
|
31
|
+
IndexArray = npt.NDArray[np.int_]
|
|
29
32
|
# ``dtype`` specifier: ``npt.DTypeLike`` cleanly admits both numpy float types and
|
|
30
33
|
# JAX scalar dtypes (e.g. ``jnp.float64``) without importing JAX.
|
|
31
34
|
FloatDType = npt.DTypeLike
|
|
@@ -49,9 +52,10 @@ def _enable_jax_typing() -> None:
|
|
|
49
52
|
"""
|
|
50
53
|
import jax
|
|
51
54
|
|
|
52
|
-
global Array, Scalar, _TRACER_TYPES
|
|
55
|
+
global Array, Scalar, IndexArray, _TRACER_TYPES
|
|
53
56
|
Array = Union[np.ndarray, jax.Array]
|
|
54
57
|
Scalar = Union[np.floating, jax.Array, float, int]
|
|
58
|
+
IndexArray = Union[npt.NDArray[np.int_], jax.Array]
|
|
55
59
|
_TRACER_TYPES = (jax.core.Tracer,)
|
|
56
60
|
|
|
57
61
|
|
|
@@ -328,10 +332,8 @@ class CVMatrix:
|
|
|
328
332
|
self._init_stats()
|
|
329
333
|
|
|
330
334
|
def training_XTX(
|
|
331
|
-
self, validation_indices:
|
|
332
|
-
) -> Tuple[
|
|
333
|
-
Array, Tuple[Optional[Array], Optional[Array], None, None]
|
|
334
|
-
]:
|
|
335
|
+
self, validation_indices: IndexArray
|
|
336
|
+
) -> Tuple[Array, Tuple[Optional[Array], Optional[Array], None, None]]:
|
|
335
337
|
r"""
|
|
336
338
|
Computes the training set :math:`\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{X}`
|
|
337
339
|
corresponding to every sample except those at the `validation_indices`. Also
|
|
@@ -340,7 +342,7 @@ class CVMatrix:
|
|
|
340
342
|
|
|
341
343
|
Parameters
|
|
342
344
|
----------
|
|
343
|
-
validation_indices :
|
|
345
|
+
validation_indices : IndexArray
|
|
344
346
|
An integer array of indices for the validation set for which to
|
|
345
347
|
return the corresponding training set
|
|
346
348
|
:math:`\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{X}`. The validation indices
|
|
@@ -383,7 +385,7 @@ class CVMatrix:
|
|
|
383
385
|
return self._training_matrices(True, False, validation_indices)
|
|
384
386
|
|
|
385
387
|
def training_XTY(
|
|
386
|
-
self, validation_indices:
|
|
388
|
+
self, validation_indices: IndexArray
|
|
387
389
|
) -> Tuple[
|
|
388
390
|
Array,
|
|
389
391
|
Tuple[
|
|
@@ -403,7 +405,7 @@ class CVMatrix:
|
|
|
403
405
|
|
|
404
406
|
Parameters
|
|
405
407
|
----------
|
|
406
|
-
validation_indices :
|
|
408
|
+
validation_indices : IndexArray
|
|
407
409
|
An integer array of indices for the validation set for which to
|
|
408
410
|
return the corresponding training set
|
|
409
411
|
:math:`\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{Y}`. The validation indices
|
|
@@ -449,7 +451,7 @@ class CVMatrix:
|
|
|
449
451
|
return self._training_matrices(False, True, validation_indices)
|
|
450
452
|
|
|
451
453
|
def training_XTX_XTY(
|
|
452
|
-
self, validation_indices:
|
|
454
|
+
self, validation_indices: IndexArray
|
|
453
455
|
) -> Tuple[
|
|
454
456
|
Tuple[Array, Array],
|
|
455
457
|
Tuple[
|
|
@@ -471,7 +473,7 @@ class CVMatrix:
|
|
|
471
473
|
|
|
472
474
|
Parameters
|
|
473
475
|
----------
|
|
474
|
-
validation_indices :
|
|
476
|
+
validation_indices : IndexArray
|
|
475
477
|
An integer array of indices for the validation set for which to
|
|
476
478
|
return the corresponding training set
|
|
477
479
|
:math:`\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{X}` and
|
|
@@ -517,7 +519,7 @@ class CVMatrix:
|
|
|
517
519
|
return self._training_matrices(True, True, validation_indices)
|
|
518
520
|
|
|
519
521
|
def training_statistics(
|
|
520
|
-
self, validation_indices:
|
|
522
|
+
self, validation_indices: IndexArray
|
|
521
523
|
) -> Tuple[
|
|
522
524
|
Optional[Array],
|
|
523
525
|
Optional[Array],
|
|
@@ -587,7 +589,7 @@ class CVMatrix:
|
|
|
587
589
|
return x
|
|
588
590
|
|
|
589
591
|
def _get_sum_w_train_and_num_nonzero_w_train(
|
|
590
|
-
self, val_indices:
|
|
592
|
+
self, val_indices: IndexArray
|
|
591
593
|
) -> Tuple[Scalar, Scalar]:
|
|
592
594
|
"""
|
|
593
595
|
Returns a tuple containing the sum of weights in the training set and the number
|
|
@@ -631,7 +633,7 @@ class CVMatrix:
|
|
|
631
633
|
|
|
632
634
|
def _compute_training_stats(
|
|
633
635
|
self,
|
|
634
|
-
val_indices:
|
|
636
|
+
val_indices: IndexArray,
|
|
635
637
|
X_val: Optional[Array],
|
|
636
638
|
Y_val: Optional[Array],
|
|
637
639
|
return_X_mean: bool,
|
|
@@ -752,7 +754,7 @@ class CVMatrix:
|
|
|
752
754
|
)
|
|
753
755
|
|
|
754
756
|
def _training_matrices(
|
|
755
|
-
self, return_XTX: bool, return_XTY: bool, val_indices:
|
|
757
|
+
self, return_XTX: bool, return_XTY: bool, val_indices: IndexArray
|
|
756
758
|
) -> Tuple[
|
|
757
759
|
Union[Array, Tuple[Array, Array]],
|
|
758
760
|
Tuple[
|
|
@@ -777,7 +779,7 @@ class CVMatrix:
|
|
|
777
779
|
Whether to return the training set
|
|
778
780
|
:math:`\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{Y}`.
|
|
779
781
|
|
|
780
|
-
validation_indices :
|
|
782
|
+
validation_indices : IndexArray
|
|
781
783
|
An integer array of indices for the validation set for which to
|
|
782
784
|
return the corresponding training set
|
|
783
785
|
:math:`\mathbf{X}^{\mathbf{T}}\mathbf{W}\mathbf{X}` and
|
|
@@ -896,7 +898,7 @@ class CVMatrix:
|
|
|
896
898
|
)
|
|
897
899
|
|
|
898
900
|
def _get_val_matrices(
|
|
899
|
-
self, val_indices:
|
|
901
|
+
self, val_indices: IndexArray, return_XTY: bool
|
|
900
902
|
) -> Tuple[
|
|
901
903
|
Array,
|
|
902
904
|
Array,
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "cvmatrix"
|
|
3
|
-
version = "3.2.
|
|
3
|
+
version = "3.2.3"
|
|
4
4
|
description = "Fast computation of possibly weighted and possibly centered/scaled training set kernel matrices in a cross-validation setting."
|
|
5
5
|
authors = [{ name = "Sm00thix", email = "oleemail@icloud.com" }]
|
|
6
6
|
maintainers = [{ name = "Sm00thix", email = "oleemail@icloud.com" }]
|
|
7
7
|
license = "Apache-2.0"
|
|
8
8
|
readme = "README.md"
|
|
9
|
-
requires-python = ">=3.
|
|
9
|
+
requires-python = ">=3.10, <3.16"
|
|
10
10
|
classifiers = [
|
|
11
|
+
"Programming Language :: Python :: 3.10",
|
|
11
12
|
"Programming Language :: Python :: 3.11",
|
|
12
13
|
"Programming Language :: Python :: 3.12",
|
|
13
14
|
"Programming Language :: Python :: 3.13",
|
|
14
15
|
"Programming Language :: Python :: 3.14",
|
|
16
|
+
"Programming Language :: Python :: 3.15",
|
|
15
17
|
]
|
|
16
18
|
dependencies = [
|
|
17
19
|
"numpy>=2.0.0,<3.0.0",
|