Skip to content

Conversation

@Apprentice2907
Copy link

Description

Fixes #108

Updates pyHalo imports to use the factory function preset_model_from_name() for compatibility with newer pyHalo versions while maintaining backward compatibility.

Problem

Recent pyHalo versions removed/relocated the PresetModels module, causing:

  • ModuleNotFoundError: No module named 'pyHalo.PresetModels.cdm'
  • ImportError: cannot import name 'CDM'

Solution

Replace direct imports with version-agnostic factory function:

Before:

from pyHalo.PresetModels.cdm import CDM
from pyHalo.PresetModels.uldm import ULDM

After:

try:
    from pyHalo.preset_models import preset_model_from_name
    CDM = preset_model_from_name("CDM")
    ULDM = preset_model_from_name("ULDM")
except ImportError:
    from pyHalo.PresetModels.cdm import CDM
    from pyHalo.PresetModels.uldm import ULDM

Changes Made

  • Updated generate-paired.ipynb
  • Updated smooth_image_comparison.ipynb
  • No changes to simulation logic or outputs
  • Cleared notebook outputs for clean diff

Testing

✅ Notebooks execute without import errors
✅ Works with pyHalo >= 1.x (new API)
✅ Falls back gracefully to pyHalo < 1.x (old API)
✅ No functional changes to simulations

Scope

🔹 Only import statements modified
🔹 No dependency version changes
🔹 No numerical/functional behavior altered

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.

ML4SCI/DeepLenseSim/Model-4 ImportError for CDM and ULDM with newer pyHalo versions

1 participant