Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SMAC package now required for using storage API #898

Closed
eujing opened this issue Dec 12, 2024 · 2 comments · Fixed by #899
Closed

SMAC package now required for using storage API #898

eujing opened this issue Dec 12, 2024 · 2 comments · Fixed by #899

Comments

@eujing
Copy link
Contributor

eujing commented Dec 12, 2024

When trying to use the storage API from a python env that only has mlos_core and mlos_bench installed without optional deps, we now get an import error where smac is required.

This dependency was likely introduced in #852 with the top-level import of smac in smac_optimizer.py

dashboard-1  | Traceback (most recent call last):
dashboard-1  |   File "/root/.local/bin/run_dashboard", line 5, in <module>
dashboard-1  |     from dashboard.run import run
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/dashboard/run.py", line 4, in <module>
dashboard-1  |     from dashboard import main
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/dashboard/main.py", line 5, in <module>
dashboard-1  |     from mlos_bench.storage import Storage
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_bench/storage/__init__.py", line 167, in <module>
dashboard-1  |     from mlos_bench.storage.storage_factory import from_config
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_bench/storage/storage_factory.py", line 18, in <module>
dashboard-1  |     from mlos_bench.services.config_persistence import ConfigPersistenceService
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_bench/services/config_persistence.py", line 30, in <module>
dashboard-1  |     from mlos_bench.optimizers.base_optimizer import Optimizer
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_bench/optimizers/__init__.py", line 14, in <module>
dashboard-1  |     from mlos_bench.optimizers.mlos_core_optimizer import MlosCoreOptimizer
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_bench/optimizers/mlos_core_optimizer.py", line 25, in <module>
dashboard-1  |     from mlos_core.optimizers import (
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_core/optimizers/__init__.py", line 36, in <module>
dashboard-1  |     from mlos_core.optimizers.bayesian_optimizers.smac_optimizer import SmacOptimizer
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_core/optimizers/bayesian_optimizers/__init__.py", line 10, in <module>
dashboard-1  |     from mlos_core.optimizers.bayesian_optimizers.smac_optimizer import SmacOptimizer
dashboard-1  |   File "/root/.local/lib/python3.12/site-packages/mlos_core/optimizers/bayesian_optimizers/smac_optimizer.py", line 23, in <module>
dashboard-1  |     from smac.utils.configspace import convert_configurations_to_array
dashboard-1  | ModuleNotFoundError: No module named 'smac'
@bpkroth
Copy link
Contributor

bpkroth commented Dec 12, 2024

Another reason to solve #343

@bpkroth
Copy link
Contributor

bpkroth commented Dec 12, 2024

Thanks for catching!

eujing added a commit that referenced this issue Dec 12, 2024
# Pull Request

## Fix storage API having SMAC as a required dependency

---

## Description

Fixes #898 by moving import away from top-level.

---

## Type of Change

- 🛠️ Bug fix

---

## Testing

Ran existing `mlos_core` unit tests, and manually tested in a fresh
python env without optional deps installed.

---

Co-authored-by: Eu Jing Chua <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants