Skip to content

Commit 3bf4f05

Browse files
Add optimizers from nevergrad (#591)
1 parent 0f4a30b commit 3bf4f05

File tree

17 files changed

+2262
-174
lines changed

17 files changed

+2262
-174
lines changed

.github/workflows/main.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,35 @@ jobs:
146146
run: |
147147
micromamba activate optimagic
148148
pytest -m "not slow and not jax"
149+
run-tests-nevergrad:
150+
# This job is for running test related to nevergrad with pinned version of
151+
# bayesian_optimization == 1.4.0
152+
name: Run tests for ubuntu-latest on ${{ matrix.python-version }} bayes_opt==1.4.0
153+
runs-on: ${{ matrix.os }}
154+
strategy:
155+
fail-fast: false
156+
matrix:
157+
os:
158+
- ubuntu-latest
159+
python-version:
160+
- '3.10'
161+
- '3.11'
162+
- '3.12'
163+
- '3.13'
164+
steps:
165+
- uses: actions/checkout@v4
166+
- name: create build environment
167+
uses: mamba-org/setup-micromamba@v1
168+
with:
169+
environment-file: ./.tools/envs/testenv-nevergrad.yml
170+
cache-environment: true
171+
create-args: |
172+
python=${{ matrix.python-version }}
173+
- name: run pytest
174+
shell: bash -l {0}
175+
run: |
176+
micromamba activate optimagic
177+
pytest tests/optimagic/optimizers/test_nevergrad.py
149178
code-in-docs:
150179
name: Run code snippets in documentation
151180
runs-on: ubuntu-latest

.tools/envs/testenv-linux.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,14 @@ dependencies:
2828
- jinja2 # dev, tests
2929
- annotated-types # dev, tests
3030
- iminuit # dev, tests
31+
- cma # dev, tests
3132
- pip: # dev, tests, docs
3233
- bayesian-optimization>=2.0.4 # dev, tests
33-
- nevergrad # dev, tests
3434
- DFO-LS>=1.5.3 # dev, tests
3535
- Py-BOBYQA # dev, tests
3636
- fides==0.7.4 # dev, tests
3737
- kaleido>=1.0 # dev, tests
38+
- bayes_optim # dev, tests
3839
- pandas-stubs # dev, tests
3940
- types-cffi # dev, tests
4041
- types-openpyxl # dev, tests

.tools/envs/testenv-nevergrad.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: optimagic
3+
channels:
4+
- conda-forge
5+
- nodefaults
6+
dependencies:
7+
- cyipopt>=1.4.0 # dev, tests
8+
- pygmo>=2.19.0 # dev, tests, docs
9+
- nlopt # dev, tests, docs
10+
- pip # dev, tests, docs
11+
- pytest # dev, tests
12+
- pytest-cov # tests
13+
- pytest-xdist # dev, tests
14+
- statsmodels # dev, tests
15+
- cloudpickle # run, tests
16+
- joblib # run, tests
17+
- numpy >= 2 # run, tests
18+
- pandas # run, tests
19+
- plotly>=6.2 # run, tests
20+
- pybaum>=0.1.2 # run, tests
21+
- scipy>=1.2.1 # run, tests
22+
- sqlalchemy # run, tests
23+
- seaborn # dev, tests
24+
- mypy=1.14.1 # dev, tests
25+
- pyyaml # dev, tests
26+
- jinja2 # dev, tests
27+
- annotated-types # dev, tests
28+
- iminuit # dev, tests
29+
- cma # dev, tests
30+
- pip: # dev, tests, docs
31+
- DFO-LS>=1.5.3 # dev, tests
32+
- Py-BOBYQA # dev, tests
33+
- fides==0.7.4 # dev, tests
34+
- kaleido>=1.0 # dev, tests
35+
- bayes_optim # dev, tests
36+
- pandas-stubs # dev, tests
37+
- types-cffi # dev, tests
38+
- types-openpyxl # dev, tests
39+
- types-jinja2 # dev, tests
40+
- sqlalchemy-stubs # dev, tests
41+
- sphinxcontrib-mermaid # dev, tests, docs
42+
- -e ../../
43+
- bayesian_optimization==1.4.0
44+
- nevergrad

.tools/envs/testenv-numpy.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ dependencies:
2626
- jinja2 # dev, tests
2727
- annotated-types # dev, tests
2828
- iminuit # dev, tests
29+
- cma # dev, tests
2930
- pip: # dev, tests, docs
3031
- bayesian-optimization>=2.0.4 # dev, tests
31-
- nevergrad # dev, tests
3232
- DFO-LS>=1.5.3 # dev, tests
3333
- Py-BOBYQA # dev, tests
3434
- fides==0.7.4 # dev, tests
3535
- kaleido>=1.0 # dev, tests
36+
- bayes_optim # dev, tests
3637
- types-cffi # dev, tests
3738
- types-openpyxl # dev, tests
3839
- types-jinja2 # dev, tests

.tools/envs/testenv-others.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ dependencies:
2626
- jinja2 # dev, tests
2727
- annotated-types # dev, tests
2828
- iminuit # dev, tests
29+
- cma # dev, tests
2930
- pip: # dev, tests, docs
3031
- bayesian-optimization>=2.0.4 # dev, tests
31-
- nevergrad # dev, tests
3232
- DFO-LS>=1.5.3 # dev, tests
3333
- Py-BOBYQA # dev, tests
3434
- fides==0.7.4 # dev, tests
3535
- kaleido>=1.0 # dev, tests
36+
- bayes_optim # dev, tests
3637
- pandas-stubs # dev, tests
3738
- types-cffi # dev, tests
3839
- types-openpyxl # dev, tests

.tools/envs/testenv-pandas.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ dependencies:
2626
- jinja2 # dev, tests
2727
- annotated-types # dev, tests
2828
- iminuit # dev, tests
29+
- cma # dev, tests
2930
- pip: # dev, tests, docs
3031
- bayesian-optimization>=2.0.4 # dev, tests
31-
- nevergrad # dev, tests
3232
- DFO-LS>=1.5.3 # dev, tests
3333
- Py-BOBYQA # dev, tests
3434
- fides==0.7.4 # dev, tests
3535
- kaleido>=1.0 # dev, tests
36+
- bayes_optim # dev, tests
3637
- types-cffi # dev, tests
3738
- types-openpyxl # dev, tests
3839
- types-jinja2 # dev, tests

.tools/envs/testenv-plotly.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ dependencies:
2626
- jinja2 # dev, tests
2727
- annotated-types # dev, tests
2828
- iminuit # dev, tests
29+
- cma # dev, tests
2930
- pip: # dev, tests, docs
3031
- bayesian-optimization>=2.0.4 # dev, tests
31-
- nevergrad # dev, tests
3232
- DFO-LS>=1.5.3 # dev, tests
3333
- Py-BOBYQA # dev, tests
3434
- fides==0.7.4 # dev, tests
35+
- bayes_optim # dev, tests
3536
- pandas-stubs # dev, tests
3637
- types-cffi # dev, tests
3738
- types-openpyxl # dev, tests

.tools/update_envs.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,28 @@ def main() -> None:
5454
test_env_plotly.insert(_insert_idx, " - plotly<6")
5555
test_env_plotly.insert(_insert_idx_pip, " - kaleido<0.3")
5656

57+
test_env_nevergrad = deepcopy(test_env)
58+
for pkg in ["bayesian-optimization"]:
59+
test_env_nevergrad = [line for line in test_env_nevergrad if pkg not in line]
60+
test_env_nevergrad.insert(_insert_idx_pip, " - nevergrad")
61+
test_env_nevergrad.insert(
62+
_insert_idx_pip, " - bayesian_optimization==1.4.0"
63+
)
64+
5765
# test environment for documentation
5866
docs_env = [line for line in lines if _keep_line(line, "docs")]
5967
docs_env.append(" - -e ../../") # add local installation
6068

6169
# write environments
6270
for name, env in zip(
63-
["linux", "others", "pandas", "numpy", "plotly"],
71+
["linux", "others", "pandas", "numpy", "plotly", "nevergrad"],
6472
[
6573
test_env_linux,
6674
test_env_others,
6775
test_env_pandas,
6876
test_env_numpy,
6977
test_env_plotly,
78+
test_env_nevergrad,
7079
],
7180
strict=False,
7281
):

0 commit comments

Comments
 (0)