BREAKING CHANGE: Module paths have been reorganized for better maintainability. Backwards compatibility aliases with deprecation warnings are provided. New Structure: - core/ - Optimization runners (runner, intelligent_optimizer, etc.) - processors/ - Data processing - surrogates/ - Neural network surrogates - nx/ - NX/Nastran integration (solver, updater, session_manager) - study/ - Study management (creator, wizard, state, reset) - reporting/ - Reports and analysis (visualizer, report_generator) - config/ - Configuration management (manager, builder) - utils/ - Utilities (logger, auto_doc, etc.) - future/ - Research/experimental code Migration: - ~200 import changes across 125 files - All __init__.py files use lazy loading to avoid circular imports - Backwards compatibility layer supports old import paths with warnings - All existing functionality preserved To migrate existing code: OLD: from optimization_engine.nx_solver import NXSolver NEW: from optimization_engine.nx.solver import NXSolver OLD: from optimization_engine.runner import OptimizationRunner NEW: from optimization_engine.core.runner import OptimizationRunner 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
"""
|
|
Study Management
|
|
================
|
|
|
|
Study creation, state management, and lifecycle.
|
|
|
|
Modules:
|
|
- creator: Study creation from templates
|
|
- wizard: Interactive study setup wizard
|
|
- state: Study state tracking
|
|
- reset: Study reset functionality
|
|
- continuation: Resume interrupted studies
|
|
"""
|
|
|
|
# Lazy imports to avoid circular dependencies
|
|
def __getattr__(name):
|
|
if name == 'StudyCreator':
|
|
from .creator import StudyCreator
|
|
return StudyCreator
|
|
elif name == 'create_study':
|
|
from .creator import create_study
|
|
return create_study
|
|
elif name == 'StudyWizard':
|
|
from .wizard import StudyWizard
|
|
return StudyWizard
|
|
elif name == 'StudyState':
|
|
from .state import StudyState
|
|
return StudyState
|
|
elif name == 'StudyReset':
|
|
from .reset import StudyReset
|
|
return StudyReset
|
|
elif name == 'reset_study':
|
|
from .reset import reset_study
|
|
return reset_study
|
|
elif name == 'StudyContinuation':
|
|
from .continuation import StudyContinuation
|
|
return StudyContinuation
|
|
elif name == 'continue_study':
|
|
from .continuation import continue_study
|
|
return continue_study
|
|
elif name == 'BenchmarkingSubstudy':
|
|
from .benchmarking import BenchmarkingSubstudy
|
|
return BenchmarkingSubstudy
|
|
elif name == 'generate_history':
|
|
from .history_generator import generate_history
|
|
return generate_history
|
|
raise AttributeError(f"module 'optimization_engine.study' has no attribute '{name}'")
|
|
|
|
__all__ = [
|
|
'StudyCreator',
|
|
'create_study',
|
|
'StudyWizard',
|
|
'StudyState',
|
|
'StudyReset',
|
|
'reset_study',
|
|
'StudyContinuation',
|
|
'continue_study',
|
|
'BenchmarkingSubstudy',
|
|
'generate_history',
|
|
]
|