"""
AI/ML Framework - Main Package

A comprehensive, modular, and intelligent AI/ML framework in Python.
"""

__version__ = "1.0.0"
__author__ = "AI/ML Framework Team"
__email__ = "support@ai-ml-framework.com"
__description__ = "Comprehensive AI/ML framework for end-to-end machine learning workflows"

# Import main modules
from . import preprocessing
from . import auto_ml
from . import deep_learning
from . import pipeline
from . import api
from . import visualization
from . import utils
from . import experiments

# Convenience imports for common use cases
from .preprocessing import DataAnalyzer, AutoPreprocessor, PreprocessingRecommender
from .auto_ml import AutoMLSelector, HyperparameterOptimizer, ModelEvaluator
from .deep_learning import NeuralNetworkDesigner, DeepLearningTrainer, NetworkVisualizer
from .pipeline import PipelineCreator, PipelineManager
from .api import APIGenerator, APIDeployment
from .visualization import MLVisualizer, DashboardBuilder
from .utils import AIRecommendationsEngine
from .experiments import ExperimentTracker, VersionManager

# Version info
def get_version():
    """Get framework version"""
    return __version__

def get_info():
    """Get framework information"""
    return {
        "name": "AI/ML Framework",
        "version": __version__,
        "author": __author__,
        "email": __email__,
        "description": __description__,
        "modules": [
            "preprocessing",
            "auto_ml", 
            "deep_learning",
            "pipeline",
            "api",
            "visualization",
            "utils",
            "experiments"
        ]
    }

# Quick start functions
def quick_preprocess(df, target_column):
    """Quick preprocessing for common use cases"""
    preprocessor = AutoPreprocessor(target_column=target_column)
    return preprocessor.fit_transform(df)

def quick_automl(X, y, problem_type='classification'):
    """Quick AutoML for common use cases"""
    automl = AutoMLSelector(problem_type=problem_type)
    return automl.auto_select_and_train(X, y)

def quick_pipeline(df, target_column, model=None):
    """Quick pipeline creation"""
    pipeline_creator = PipelineCreator()
    return pipeline_creator.create_auto_pipeline(df, target_column, model)

def quick_api(model_path, model_id="model"):
    """Quick API generation"""
    return APIGenerator(model_path, model_id)

# All exports
__all__ = [
    # Version info
    "__version__",
    "__author__", 
    "__email__",
    "__description__",
    "get_version",
    "get_info",
    
    # Main modules
    "preprocessing",
    "auto_ml",
    "deep_learning", 
    "pipeline",
    "api",
    "visualization",
    "utils",
    "experiments",
    
    # Core classes
    "DataAnalyzer",
    "AutoPreprocessor", 
    "PreprocessingRecommender",
    "AutoMLSelector",
    "HyperparameterOptimizer",
    "ModelEvaluator",
    "NeuralNetworkDesigner",
    "DeepLearningTrainer",
    "NetworkVisualizer",
    "PipelineCreator",
    "PipelineManager",
    "APIGenerator",
    "APIDeployment",
    "MLVisualizer",
    "DashboardBuilder",
    "AIRecommendationsEngine",
    "ExperimentTracker",
    "VersionManager",
    
    # Quick functions
    "quick_preprocess",
    "quick_automl",
    "quick_pipeline",
    "quick_api"
]
