From 82a6d35002e2c13810bdd24e4ae1ab557713d739 Mon Sep 17 00:00:00 2001 From: Matthew Evans <7916000+ml-evs@users.noreply.github.com> Date: Thu, 28 Nov 2024 11:30:46 +0000 Subject: [PATCH] Bundle recent deps updates (#233) * Bump pandas from 1.5.2 to 2.2.3 Bumps [pandas](https://github.com/pandas-dev/pandas) from 1.5.2 to 2.2.3. - [Release notes](https://github.com/pandas-dev/pandas/releases) - [Commits](https://github.com/pandas-dev/pandas/compare/v1.5.2...v2.2.3) --- updated-dependencies: - dependency-name: pandas dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Use `pip` cache for linting step * Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump tensorflow from 2.11.0 to 2.16.1 Bumps [tensorflow](https://github.com/tensorflow/tensorflow) from 2.11.0 to 2.16.1. - [Release notes](https://github.com/tensorflow/tensorflow/releases) - [Changelog](https://github.com/tensorflow/tensorflow/blob/v2.16.1/RELEASE.md) - [Commits](https://github.com/tensorflow/tensorflow/compare/v2.11.0...v2.16.1) --- updated-dependencies: - dependency-name: tensorflow dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump scikit-learn from 1.3.2 to 1.5.2 Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.3.2 to 1.5.2. - [Release notes](https://github.com/scikit-learn/scikit-learn/releases) - [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.3.2...1.5.2) --- updated-dependencies: - dependency-name: scikit-learn dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump pymatgen from 2024.3.1 to 2024.5.31 Bumps [pymatgen](https://github.com/materialsproject/pymatgen) from 2024.3.1 to 2024.5.31. - [Release notes](https://github.com/materialsproject/pymatgen/releases) - [Changelog](https://github.com/materialsproject/pymatgen/blob/master/docs/CHANGES.md) - [Commits](https://github.com/materialsproject/pymatgen/compare/v2024.3.1...v2024.5.31) --- updated-dependencies: - dependency-name: pymatgen dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Remove deprecated Bayesian model tests from CI run * Add CI debug print of installed versions * Downgrade tensorflow to avoid needing keras downgrade * Try to deprecate 'learning_rate' again * Take all models from ensemble when refitting in `fit_preset` No idea how this wasn't triggered in the tests previously... --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 21 ++++++++++++++------- modnet/models/ensemble.py | 2 +- modnet/models/vanilla.py | 3 +++ modnet/tests/test_model.py | 3 +++ pytest.ini | 1 + requirements.txt | 9 ++++----- setup.py | 14 +++++++------- 7 files changed, 33 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18db3e03..dbbd67a9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,18 +17,21 @@ jobs: steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10' + cache: pip + cache-dependency-path: | + **/requirements*.txt - name: Install pre-commit run: | python -m pip install --upgrade pip pip install -U setuptools wheel - pip install .[dev,bayesian] + pip install .[dev] - name: Run pre-commit run: | @@ -45,10 +48,10 @@ jobs: steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' @@ -59,9 +62,13 @@ jobs: run: | python -m pip install --upgrade pip pip install -r requirements.txt - pip install .[test,dev,bayesian] + pip install .[test,dev] + + - name: List installed versions + run: | + pip list - name: Run tests with pytest run: | # run tests with pytest, reporting coverage and timings - pytest -m "not slow" -rs -vvv --durations=0 --cov=./modnet/ + pytest -m "not slow" -m "not deprecated" -rs -vvv --durations=0 --cov=./modnet/ diff --git a/modnet/models/ensemble.py b/modnet/models/ensemble.py index 880d09e9..dc2fce8e 100644 --- a/modnet/models/ensemble.py +++ b/modnet/models/ensemble.py @@ -438,7 +438,7 @@ def fit_preset( for i in range(n_splits): best_5_idx = np.argsort(val_losses[:, i])[:5] for idx in best_5_idx: - final_models += models[idx][i].model + final_models.extend(models[idx][i].models) self.__init__(modnet_models=final_models) os.environ["TF_CPP_MIN_LOG_LEVEL"] = "0" # reset diff --git a/modnet/models/vanilla.py b/modnet/models/vanilla.py index 56ebd7f6..6eb8b4ff 100644 --- a/modnet/models/vanilla.py +++ b/modnet/models/vanilla.py @@ -1343,6 +1343,9 @@ def fit( } fit_params.update(fit_params_kw) + if "learning_rate" in fit_params: + fit_params.pop("learning_rate") + warnings.warn("learning_rate is deprecated, use lr instead.") if loss is None: loss = "mse" diff --git a/modnet/tests/test_model.py b/modnet/tests/test_model.py index c4853e07..1742b466 100644 --- a/modnet/tests/test_model.py +++ b/modnet/tests/test_model.py @@ -142,6 +142,7 @@ def test_model_integration(subset_moddata, tf_session): assert not np.isnan(model.evaluate(data)) +@pytest.mark.deprecated def test_train_small_bayesian_single_target(subset_moddata, tf_session): """Tests the single target training.""" from modnet.models import BayesianMODNetModel @@ -165,6 +166,7 @@ def test_train_small_bayesian_single_target(subset_moddata, tf_session): assert not np.isnan(model.evaluate(data)) +@pytest.mark.deprecated def test_train_small_bayesian_single_target_classif(subset_moddata, tf_session): """Tests the single target training.""" from modnet.models import BayesianMODNetModel @@ -196,6 +198,7 @@ def is_metal(egap): assert not np.isnan(model.evaluate(data)) +@pytest.mark.deprecated def test_train_small_bayesian_multi_target(subset_moddata, tf_session): """Tests the multi-target training.""" from modnet.models import BayesianMODNetModel diff --git a/pytest.ini b/pytest.ini index 76178536..c382c881 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,3 +1,4 @@ [pytest] markers = slow: marks tests as slow (deselect with '-m "not slow"') + deprecated: mark tests as deprecated (deselect with -m "not deprecated") diff --git a/requirements.txt b/requirements.txt index 81c0afa6..24046bcd 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,6 @@ -tensorflow==2.11.0 -pandas==1.5.2 -scikit-learn==1.3.2 +tensorflow==2.15.1 +pandas==2.2.3 +scikit-learn==1.5.0 matminer==0.9.2 numpy>=1.25 -pymatgen==2024.3.1 -scikit-learn==1.3.2 +pymatgen==2024.5.31 diff --git a/setup.py b/setup.py index 28781da1..849a3396 100644 --- a/setup.py +++ b/setup.py @@ -32,17 +32,17 @@ include_package_data=True, packages=setuptools.find_packages(), install_requires=[ - "pandas~=1.5", - "tensorflow~=2.10,<2.12", - "pymatgen>=2023", - "matminer~=0.9", - "numpy>=1.24", - "scikit-learn~=1.3", + "pandas <= 1.5, < 3", + "tensorflow ~= 2.10, < 2.16", + "pymatgen >= 2023", + "matminer ~= 0.9", + "numpy >= 1.24", + "scikit-learn ~= 1.3", ], tests_require=tests_require, test_suite="modnet.tests", extras_require={ - "bayesian": ["tensorflow-probability==0.18"], + "bayesian": ["tensorflow-probability==0.18", "tensorflow == 2.11.*"], "test": tests_require, "dev": dev_require, },