library/__init__.py
"""
Library - Платформенная библиотека компонентов

ИСПОЛЬЗОВАНИЕ:
    from library import OzonClient, OneCClient  # Короткие импорты
    from library.connectors.api.ozon import OzonClient  # Полные импорты

РЕЭКСПОРТЫ:
    Автоматически генерируются из system/config/REGISTRY.yaml
"""
import sys
import os
from pathlib import Path

# ============================================================================
# PYTHONPATH SETUP
# ============================================================================

# Автоопределение workspace
_current_file = Path(__file__).resolve()
_workspace = _current_file.parent  # library/ → workspace/

# Добавить workspace в sys.path если его там нет
if str(_workspace) not in sys.path:
    sys.path.insert(0, str(_workspace))

# Также можно использовать переменную окружения
if 'WORKSPACE' in os.environ:
    workspace_env = os.environ['WORKSPACE']
    if workspace_env not in sys.path:
        sys.path.insert(0, workspace_env)

# ============================================================================
# КОРОТКИЕ ИМПОРТЫ (из REGISTRY.yaml)
# ============================================================================

__all__ = []

# Загрузить реестр и создать реэкспорты
try:
    from system.core.registry import load_registry

    registry = load_registry()
    library_config = registry.get('library', {})

    # API Коннекторы
    for name, info in library_config.get('connectors', {}).items():
        try:
            module_path = info['path']
            class_name = info.get('main_class')

            if class_name:
                # Импортировать класс: from library.connectors.api.ozon import OzonClient
                exec(f"from {module_path} import {class_name}")
                __all__.append(class_name)
        except ImportError:
            pass

    # Внутренние утилиты
    for name, info in library_config.get('internal', {}).items():
        try:
            module_path = info['path']
            class_name = info.get('main_class')

            if class_name:
                exec(f"from {module_path} import {class_name}")
                __all__.append(class_name)
        except ImportError:
            pass

except ImportError:
    # Если registry недоступен — fallback на ручные импорты
    try:
        from library.connectors.api.ozon import OzonClient
        __all__.append('OzonClient')
    except ImportError:
        pass

    try:
        from library.connectors.api.onec import OneCClient
        __all__.append('OneCClient')
    except ImportError:
        pass

# Версия библиотеки
__version__ = '1.0.0'