Skip to content

Update ema-workbench dependency to v3.0.0#70

Open
JazminZatarain wants to merge 7 commits intopollockDeVis:mainfrom
Hippo-Delft-AI-Lab:feat/update-ema-workbench-3.0-new
Open

Update ema-workbench dependency to v3.0.0#70
JazminZatarain wants to merge 7 commits intopollockDeVis:mainfrom
Hippo-Delft-AI-Lab:feat/update-ema-workbench-3.0-new

Conversation

@JazminZatarain
Copy link
Copy Markdown
Collaborator

Summary

  • Bumps ema-workbench from ==2.5.3 to >=3.0.0 and requires-python from >=3.10 to >=3.12
  • Replaces removed Policy/Scenario classes with Sample
  • Replaces removed ArchiveLogger/EpsilonProgress convergence API with the new filename=/directory= kwargs on optimize()
  • Imports EpsNSGAII directly from platypus (no longer re-exported by ema_workbench)
  • Updates load_archives usage to handle the new list[tuple[int, DataFrame]] return type
  • Renames RBF parameter names from "center i" (spaces) to "center_i" (underscores) to comply with the Python-identifier requirement introduced in 3.0

Files changed

File Change
pyproject.toml Bump ema-workbench pin, Python minimum version
run_optimization.py Replace Policy/Scenario/ArchiveLogger/EpsilonProgress/EpsNSGAII APIs
justice/util/EMA_model_wrapper.py Fix RBF parameter name format
justice/util/pareto_nash_run.py Fix RBF parameter name format
solvers/convergence/hypervolume.py Fix load_archives return type handling

Test plan

  • Install dependencies with updated pyproject.toml in a Python 3.12+ environment
  • Run run_optimization.py with a small nfe to verify optimize() writes archives correctly
  • Verify hypervolume calculation loads archives without errors
  • Confirm RBF parameter names resolve correctly in EMA_model_wrapper.py and pareto_nash_run.py

🤖 Generated with Claude Code

JazminZatarain and others added 7 commits April 1, 2026 22:14
- Bump ema-workbench pin from ==2.5.3 to >=3.0.0 and requires-python to >=3.12
- Replace removed Policy/Scenario with Sample in run_optimization.py
- Replace ArchiveLogger/EpsilonProgress convergence API with filename=/directory= kwargs
- Import EpsNSGAII directly from platypus (no longer re-exported by ema_workbench)
- Update load_archives usage to handle new list[tuple[int, DataFrame]] return type
- Rename RBF parameter names from spaces to underscores (Python identifier requirement)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ema-workbench >=3.0.0 requires Python >=3.12. pygame==2.3.0 has no
pre-built wheel for Python 3.12 on Linux so SDL2 system libs are needed
for the source build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
momaland==0.1.1 requires pettingzoo[butterfly,sisl] which pins pygame==2.3.0.
pygame==2.3.0 has no Python 3.12 wheels and cannot be built from source on
Python 3.12 (distutils.ccompiler.spawn removed). The CI tests only exercise
core JUSTICE IAM code, not the RL stack, so move RL packages to
[project.optional-dependencies] to keep them installable via `pip install
justice[rl]` without blocking the base install.

Also update CI to Python 3.12 to match ema-workbench >=3.0.0 requirement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
numpy==1.24.3 has no Python 3.12 wheels. numpy 1.26.0 was the first
release with Python 3.12 wheel support. Pinning <2.0 to stay on the
stable 1.x line. No deprecated numpy APIs found in the codebase.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pandas 2.0.x has no Python 3.12 wheels; 2.1.0 was the first release
with Python 3.12 support. Resolves to pandas 2.3.3.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 this pull request may close these issues.

1 participant