Skip to content

Commit 8cfa07f

Browse files
authored
Merge branch 'master' into remove-multiclass-param
2 parents 08b603f + ebbc2b0 commit 8cfa07f

190 files changed

Lines changed: 694 additions & 478 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Unit tests
1+
name: Unit tests (conda)
22

33
on:
44
push:
@@ -14,31 +14,33 @@ jobs:
1414
env:
1515
GITHUB_ACTIONS_CI: true
1616
steps:
17-
- uses: actions/checkout@v4
18-
- name: Set up Miniconda
19-
uses: conda-incubator/setup-miniconda@v3
20-
with:
21-
auto-update-conda: true
22-
python-version: 3.9
23-
channels: conda-forge
24-
activate-environment: mlxtend
25-
environment-file: environment.yml
26-
create-env-file: true
17+
- uses: actions/checkout@v4
2718

28-
- name: Install dependencies and run tests
29-
shell: bash -l {0}
30-
run: |
31-
conda install tensorflow joblib pytest -y -q
32-
conda install imageio scikit-image -y -q
33-
conda install dlib -y -q
34-
pip install scikit-learn==1.3.1 pandas==1.3.5 markdown coverage
35-
pip install -e .
36-
python -c "import numpy; print('NumPy:', numpy.__version__)"
37-
python -c "import scipy; print('SciPy:', scipy.__version__)"
38-
python -c "import sklearn; print('Scikit-learn:', sklearn.__version__)"
39-
python -c "import pandas; print('Pandas:', pandas.__version__)"
40-
coverage run --source=mlxtend --branch -m pytest mlxtend
41-
coverage xml
19+
- name: Set up Miniconda
20+
uses: conda-incubator/setup-miniconda@v3
21+
with:
22+
auto-update-conda: true
23+
python-version: 3.11
24+
channels: conda-forge
25+
activate-environment: mlxtend
26+
environment-file: environment.yml
27+
create-env-file: true
4228

43-
- name: Upload Coverage to Codecov
44-
uses: codecov/codecov-action@v4
29+
- name: Install test dependencies (conda)
30+
shell: bash -l {0}
31+
run: |
32+
conda install -y pytest coverage
33+
34+
- name: Install package and run tests
35+
shell: bash -l {0}
36+
run: |
37+
python -m pip install -e .
38+
python -c "import numpy; print('NumPy:', numpy.__version__)"
39+
python -c "import scipy; print('SciPy:', scipy.__version__)"
40+
python -c "import sklearn; print('Scikit-learn:', sklearn.__version__)"
41+
python -c "import pandas; print('Pandas:', pandas.__version__)"
42+
coverage run --source=mlxtend --branch -m pytest mlxtend
43+
coverage xml
44+
45+
- name: Upload Coverage to Codecov
46+
uses: codecov/codecov-action@v4
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Unit tests
2+
3+
on:
4+
push:
5+
branches: master
6+
pull_request:
7+
branches: master
8+
9+
jobs:
10+
build-linux:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
max-parallel: 5
14+
env:
15+
GITHUB_ACTIONS_CI: true
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up Python
20+
uses: actions/setup-python@v5
21+
with:
22+
python-version: "3.11"
23+
24+
- name: Install dependencies (pip)
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install pytest coverage
28+
pip install -e .
29+
30+
- name: Show dependency versions
31+
run: |
32+
python -c "import numpy; print('NumPy:', numpy.__version__)"
33+
python -c "import scipy; print('SciPy:', scipy.__version__)"
34+
python -c "import sklearn; print('Scikit-learn:', sklearn.__version__)"
35+
python -c "import pandas; print('Pandas:', pandas.__version__)"
36+
37+
- name: Run tests
38+
run: |
39+
coverage run --source=mlxtend --branch -m pytest mlxtend
40+
coverage xml
41+
42+
- name: Upload Coverage to Codecov
43+
uses: codecov/codecov-action@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ dist/
2323
MANIFEST
2424

2525
# Temporary files
26+
uv.lock
2627
.coverage
2728
.ipynb_checkpoints
2829

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
<br>
1515

16-
Sebastian Raschka 2014-2024
16+
Sebastian Raschka 2014-2026
1717

1818
<br>
1919

docs/ipynb2markdown.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# IPython Notebook to Markdown conversion script
22
#
3-
# Sebastian Raschka 2014-2024
3+
# Sebastian Raschka 2014-2026
44
# mlxtend Machine Learning Library Extensions
55
#
66
# Author: Sebastian Raschka <sebastianraschka.com>

docs/make_api.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# API generator script
22
#
3-
# Sebastian Raschka 2014-2024
3+
# Sebastian Raschka 2014-2026
44
# mlxtend Machine Learning Library Extensions
55
#
66
# Author: Sebastian Raschka <sebastianraschka.com>

docs/make_userguide.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# API generator script
22
#
3-
# Sebastian Raschka 2014-2024
3+
# Sebastian Raschka 2014-2026
44
# mlxtend Machine Learning Library Extensions
55
#
66
# Author: Sebastian Raschka <sebastianraschka.com>
@@ -14,8 +14,21 @@
1414

1515
s = "# User Guide Index"
1616

17-
yml_cont = open("mkdocs.yml", "r")
18-
usr_gd = yaml.load(yml_cont)["pages"][1]["User Guide"]
17+
with open("mkdocs.yml", "r") as yml_cont:
18+
mkdocs_cfg = yaml.safe_load(yml_cont) or {}
19+
20+
nav = mkdocs_cfg.get("nav")
21+
if not nav:
22+
raise KeyError("'nav' section missing from mkdocs.yml")
23+
24+
user_guide_entry = next(
25+
(item for item in nav if isinstance(item, dict) and "User Guide" in item),
26+
None,
27+
)
28+
if not user_guide_entry:
29+
raise KeyError("'User Guide' section missing from mkdocs.yml")
30+
31+
usr_gd = user_guide_entry["User Guide"]
1932
for dct in usr_gd[1:]:
2033
subpk = list(dct.keys())[0]
2134
s += "\n\n## `%s`" % subpk

docs/md2pdf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# API generator script
22
#
3-
# Sebastian Raschka 2014-2024
3+
# Sebastian Raschka 2014-2026
44
# mlxtend Machine Learning Library Extensions
55
#
66
# Author: Sebastian Raschka <sebastianraschka.com>

docs/sources/CHANGELOG.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,24 @@ The CHANGELOG for the current development version is available at
77

88
---
99

10+
### Version 0.24.0 (13 Dec 2025)
11+
12+
##### Downloads
13+
14+
- [Source code (zip)](https://github.com/rasbt/mlxtend/archive/v0.24.0.zip)
15+
16+
- [Source code (tar.gz)](https://github.com/rasbt/mlxtend/archive/v0.24.0.tar.gz)
17+
18+
1019
##### Changes
1120

12-
- [`mlxtend/classifier/stacking_cv_classification.py`](https://github.com/rasbt/mlxtend/blob/master/mlxtend/classifier/stacking_cv_classification.py) and [`mlxtend/regressor/stacking_cv_regression.py`](https://github.com/rasbt/mlxtend/blob/master/mlxtend/regressor/stacking_cv_regression.py)
21+
- Compatibility with latest scikit-learn (1.8.0) and pandas versions (2.3.3)
22+
- [`mlxtend/classifier/stacking_cv_classification.py`](https://github.com/rasbt/mlxtend/blob/master/mlxtend/classifier/stacking_cv_classification.py) and [`mlxtend/regressor/stacking_cv_regression.py`](https://github.com/rasbt/mlxtend/blob/master/mlxtend/regressor/stacking_cv_regression.py)
1323
- Modified `meta_features` to ensure compatibility with *scikit-learn* versions 1.4 and above by dynamically selecting between `fit_params` and `params` in `cross_val_predict`.
1424

15-
### Version 0.24.4 (25 Nov 2025)
25+
---
26+
27+
### Version 0.23.4 (25 Nov 2024)
1628

1729
##### Downloads
1830

docs/sources/USER_GUIDE_INDEX.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
- [paired_ttest_resampled](user_guide/evaluate/paired_ttest_resampled.md)
4747
- [permutation_test](user_guide/evaluate/permutation_test.md)
4848
- [PredefinedHoldoutSplit](user_guide/evaluate/PredefinedHoldoutSplit.md)
49-
- [proportion_difference](user_guide/evaluate/proportion_difference.md)
5049
- [RandomHoldoutSplit](user_guide/evaluate/RandomHoldoutSplit.md)
5150
- [scoring](user_guide/evaluate/scoring.md)
5251

@@ -73,15 +72,17 @@
7372
## `math`
7473
- [num_combinations](user_guide/math/num_combinations.md)
7574
- [num_permutations](user_guide/math/num_permutations.md)
75+
- [vectorspace_dimensionality](user_guide/math/vectorspace_dimensionality.md)
76+
- [vectorspace_orthonormalization](user_guide/math/vectorspace_orthonormalization.md)
7677

7778
## `plotting`
7879
- [category_scatter](user_guide/plotting/category_scatter.md)
7980
- [checkerboard_plot](user_guide/plotting/checkerboard_plot.md)
81+
- [plot_pca_correlation_graph](user_guide/plotting/plot_pca_correlation_graph.md)
8082
- [ecdf](user_guide/plotting/ecdf.md)
8183
- [enrichment_plot](user_guide/plotting/enrichment_plot.md)
8284
- [heatmap](user_guide/plotting/heatmap.md)
8385
- [plot_confusion_matrix](user_guide/plotting/plot_confusion_matrix.md)
84-
- [plot_pca_correlation_graph](user_guide/plotting/plot_pca_correlation_graph.md)
8586
- [plot_decision_regions](user_guide/plotting/plot_decision_regions.md)
8687
- [plot_learning_curves](user_guide/plotting/plot_learning_curves.md)
8788
- [plot_linear_regression](user_guide/plotting/plot_linear_regression.md)

0 commit comments

Comments
 (0)