refactor: Major reorganization of optimization_engine module structure
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>
This commit is contained in:
@@ -20,7 +20,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.research_agent import (
|
||||
from optimization_engine.future.research_agent import (
|
||||
ResearchAgent,
|
||||
ResearchFindings,
|
||||
KnowledgeGap,
|
||||
|
||||
@@ -15,10 +15,10 @@ from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.optimization_setup_wizard import OptimizationSetupWizard
|
||||
from optimization_engine.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.nx_solver import NXSolver
|
||||
from optimization_engine.nx_updater import NXParameterUpdater
|
||||
from optimization_engine.config.setup_wizard import OptimizationSetupWizard
|
||||
from optimization_engine.future.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.nx.solver import NXSolver
|
||||
from optimization_engine.nx.updater import NXParameterUpdater
|
||||
|
||||
|
||||
def print_section(title: str):
|
||||
|
||||
@@ -15,8 +15,8 @@ sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
import atomizer_paths
|
||||
atomizer_paths.ensure_imports()
|
||||
|
||||
from optimization_engine.runner import OptimizationRunner
|
||||
from optimization_engine.nx_solver import run_nx_simulation
|
||||
from optimization_engine.core.runner import OptimizationRunner
|
||||
from optimization_engine.nx.solver import run_nx_simulation
|
||||
from optimization_engine.result_extractors.extractors import (
|
||||
stress_extractor,
|
||||
displacement_extractor
|
||||
|
||||
@@ -18,7 +18,7 @@ from pathlib import Path
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.study_creator import StudyCreator
|
||||
from optimization_engine.study.creator import StudyCreator
|
||||
import logging
|
||||
|
||||
# Setup logging
|
||||
|
||||
@@ -18,7 +18,7 @@ from pathlib import Path
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.study_creator import StudyCreator
|
||||
from optimization_engine.study.creator import StudyCreator
|
||||
import logging
|
||||
|
||||
# Setup logging
|
||||
|
||||
@@ -8,7 +8,7 @@ from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.study_creator import StudyCreator
|
||||
from optimization_engine.study.creator import StudyCreator
|
||||
import logging
|
||||
|
||||
logging.basicConfig(level=logging.INFO, format='%(levelname)s - %(message)s')
|
||||
|
||||
@@ -13,7 +13,7 @@ from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.study_creator import StudyCreator
|
||||
from optimization_engine.study.creator import StudyCreator
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -18,7 +18,7 @@ from pathlib import Path
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.llm_workflow_analyzer import LLMWorkflowAnalyzer
|
||||
from optimization_engine.future.llm_workflow_analyzer import LLMWorkflowAnalyzer
|
||||
|
||||
|
||||
def test_api_connection():
|
||||
|
||||
@@ -20,7 +20,7 @@ from pathlib import Path
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.study_creator import StudyCreator
|
||||
from optimization_engine.study.creator import StudyCreator
|
||||
import logging
|
||||
|
||||
# Setup logging
|
||||
|
||||
@@ -25,9 +25,9 @@ import json
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.nx_solver import NXSolver
|
||||
from optimization_engine.nx_updater import NXParameterUpdater
|
||||
from optimization_engine.future.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.nx.solver import NXSolver
|
||||
from optimization_engine.nx.updater import NXParameterUpdater
|
||||
|
||||
# LLM workflow for bracket optimization
|
||||
llm_workflow = {
|
||||
|
||||
@@ -17,7 +17,7 @@ from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.future.llm_optimization_runner import LLMOptimizationRunner
|
||||
|
||||
# LLM workflow for bracket optimization
|
||||
# Goal: Maximize displacement while keeping stress below safety factor
|
||||
|
||||
@@ -22,10 +22,10 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.step_classifier import StepClassifier
|
||||
from optimization_engine.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.future.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.future.step_classifier import StepClassifier
|
||||
from optimization_engine.utils.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.config.capability_matcher import CapabilityMatcher
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -10,10 +10,10 @@ from pathlib import Path
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.targeted_research_planner import TargetedResearchPlanner
|
||||
from optimization_engine.utils.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.future.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.config.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.future.targeted_research_planner import TargetedResearchPlanner
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -26,7 +26,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.research_agent import (
|
||||
from optimization_engine.future.research_agent import (
|
||||
ResearchAgent,
|
||||
ResearchFindings,
|
||||
CONFIDENCE_LEVELS
|
||||
|
||||
@@ -28,7 +28,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.research_agent import (
|
||||
from optimization_engine.future.research_agent import (
|
||||
ResearchAgent,
|
||||
CONFIDENCE_LEVELS
|
||||
)
|
||||
|
||||
@@ -11,10 +11,10 @@ from pathlib import Path
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.targeted_research_planner import TargetedResearchPlanner
|
||||
from optimization_engine.utils.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.future.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.config.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.future.targeted_research_planner import TargetedResearchPlanner
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -17,7 +17,7 @@ sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
import atomizer_paths
|
||||
atomizer_paths.ensure_imports()
|
||||
|
||||
from optimization_engine.runner import OptimizationRunner
|
||||
from optimization_engine.core.runner import OptimizationRunner
|
||||
from optimization_engine.result_extractors.extractors import (
|
||||
stress_extractor,
|
||||
displacement_extractor
|
||||
|
||||
@@ -26,7 +26,7 @@ examples_path = project_root / "examples"
|
||||
sys.path.insert(0, str(examples_path))
|
||||
|
||||
from interactive_research_session import InteractiveResearchSession
|
||||
from optimization_engine.research_agent import CONFIDENCE_LEVELS
|
||||
from optimization_engine.future.research_agent import CONFIDENCE_LEVELS
|
||||
|
||||
|
||||
def test_interactive_demo():
|
||||
|
||||
@@ -22,9 +22,9 @@ sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
import atomizer_paths
|
||||
atomizer_paths.ensure_imports()
|
||||
|
||||
from optimization_engine.runner import OptimizationRunner
|
||||
from optimization_engine.nx_updater import update_nx_model
|
||||
from optimization_engine.nx_solver import run_nx_simulation
|
||||
from optimization_engine.core.runner import OptimizationRunner
|
||||
from optimization_engine.nx.updater import update_nx_model
|
||||
from optimization_engine.nx.solver import run_nx_simulation
|
||||
from optimization_engine.result_extractors.extractors import (
|
||||
stress_extractor,
|
||||
displacement_extractor
|
||||
|
||||
@@ -25,7 +25,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.research_agent import (
|
||||
from optimization_engine.future.research_agent import (
|
||||
ResearchAgent,
|
||||
ResearchFindings,
|
||||
KnowledgeGap,
|
||||
|
||||
@@ -29,7 +29,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.llm_workflow_analyzer import LLMWorkflowAnalyzer
|
||||
from optimization_engine.future.llm_workflow_analyzer import LLMWorkflowAnalyzer
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -4,7 +4,7 @@ from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.future.llm_optimization_runner import LLMOptimizationRunner
|
||||
|
||||
# Example LLM workflow
|
||||
llm_workflow = {
|
||||
|
||||
@@ -28,7 +28,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.research_agent import ResearchAgent
|
||||
from optimization_engine.future.research_agent import ResearchAgent
|
||||
|
||||
|
||||
def test_complex_modal_request():
|
||||
|
||||
@@ -16,7 +16,7 @@ from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.optimization_setup_wizard import OptimizationSetupWizard
|
||||
from optimization_engine.config.setup_wizard import OptimizationSetupWizard
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -24,10 +24,10 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.targeted_research_planner import TargetedResearchPlanner
|
||||
from optimization_engine.utils.codebase_analyzer import CodebaseCapabilityAnalyzer
|
||||
from optimization_engine.future.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.config.capability_matcher import CapabilityMatcher
|
||||
from optimization_engine.future.targeted_research_planner import TargetedResearchPlanner
|
||||
|
||||
|
||||
def print_header(text: str, char: str = "="):
|
||||
|
||||
@@ -19,7 +19,7 @@ from pathlib import Path
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.llm_workflow_analyzer import LLMWorkflowAnalyzer
|
||||
from optimization_engine.future.llm_workflow_analyzer import LLMWorkflowAnalyzer
|
||||
|
||||
|
||||
def test_llm_workflow_analysis():
|
||||
|
||||
@@ -33,7 +33,7 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.research_agent import (
|
||||
from optimization_engine.future.research_agent import (
|
||||
ResearchAgent,
|
||||
ResearchFindings,
|
||||
CONFIDENCE_LEVELS
|
||||
@@ -194,7 +194,7 @@ def test_research_session_documentation():
|
||||
agent = ResearchAgent()
|
||||
|
||||
# Simulate a complete research session
|
||||
from optimization_engine.research_agent import KnowledgeGap, SynthesizedKnowledge
|
||||
from optimization_engine.future.research_agent import KnowledgeGap, SynthesizedKnowledge
|
||||
|
||||
gap = KnowledgeGap(
|
||||
missing_features=['material_xml_generator'],
|
||||
|
||||
@@ -21,8 +21,8 @@ if sys.platform == 'win32':
|
||||
project_root = Path(__file__).parent.parent
|
||||
sys.path.insert(0, str(project_root))
|
||||
|
||||
from optimization_engine.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.step_classifier import StepClassifier
|
||||
from optimization_engine.future.workflow_decomposer import WorkflowDecomposer
|
||||
from optimization_engine.future.step_classifier import StepClassifier
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
@@ -27,7 +27,7 @@ from typing import Dict, Any
|
||||
# Add parent directory to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.llm_optimization_runner import LLMOptimizationRunner
|
||||
from optimization_engine.future.llm_optimization_runner import LLMOptimizationRunner
|
||||
|
||||
|
||||
def create_mock_llm_workflow() -> Dict[str, Any]:
|
||||
|
||||
@@ -10,7 +10,7 @@ import time
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
from optimization_engine.nx_solver import NXSolver
|
||||
from optimization_engine.nx.solver import NXSolver
|
||||
|
||||
print("=" * 60)
|
||||
print("Testing timestamp verification fix")
|
||||
|
||||
@@ -9,7 +9,7 @@ import json
|
||||
import tempfile
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
from optimization_engine.training_data_exporter import TrainingDataExporter, create_exporter_from_config
|
||||
from optimization_engine.processors.surrogates.training_data_exporter import TrainingDataExporter, create_exporter_from_config
|
||||
|
||||
|
||||
class TestTrainingDataExporter:
|
||||
|
||||
Reference in New Issue
Block a user