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:
2025-12-29 12:30:59 -05:00
parent 82f36689b7
commit eabcc4c3ca
120 changed files with 1127 additions and 637 deletions

View File

@@ -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,

View File

@@ -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):

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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')

View File

@@ -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():

View File

@@ -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():

View File

@@ -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

View File

@@ -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 = {

View File

@@ -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

View File

@@ -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():

View File

@@ -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():

View File

@@ -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

View File

@@ -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
)

View File

@@ -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():

View File

@@ -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

View File

@@ -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():

View File

@@ -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

View File

@@ -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,

View File

@@ -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():

View File

@@ -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 = {

View File

@@ -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():

View File

@@ -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__':

View File

@@ -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 = "="):

View File

@@ -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():

View File

@@ -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'],

View File

@@ -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():

View File

@@ -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]:

View File

@@ -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")

View File

@@ -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: