# Core Modules - Базовые модули BQuant ## 📚 Обзор Core модули содержат базовую функциональность BQuant: конфигурацию, исключения, логирование, производительность и утилиты. ## 🗂️ Модули ### 🔧 [bquant.core.config](config.md) - Конфигурация и настройки - Константы путей и конфигураций (PROJECT_ROOT, DATA_DIR, RESULTS_DIR, LOGGING, и др.) - Помощники: `get_data_path()`, `get_indicator_params()`, `get_analysis_params()`, `validate_timeframe()`, `get_results_path()`, `get_cache_config()` ### ⚠️ [bquant.core.exceptions](exceptions.md) - Исключения и ошибки - **BQuantError** - Базовое исключение BQuant - **DataError** - Ошибки данных - **AnalysisError** - Ошибки анализа - **VisualizationError** - Ошибки визуализации ### 📝 [bquant.core.logging_config](logging.md) - Настройка логирования - `setup_logging()` — инициализация логирования - `get_logger()` — получение логгера (с контекстом) - Декораторы и контекст логирования ### ⚡ [bquant.core.performance](performance.md) - Производительность и профилирование - Декоратор `@performance_monitor` и контекст `performance_context` - Глобальный монитор `PerformanceMonitor`, сбор и экспорт метрик - Оптимизированные индикаторы (NumPy): `sma`, `ema`, `rsi`, `macd`, `bollinger_bands` ### 🛠️ [bquant.core.utils](utils.md) - Утилиты и вспомогательные функции - `setup_project_logging()`, `calculate_returns()`, `normalize_data()` - `save_results()`, `validate_ohlcv_columns()`, `create_timestamp()` - `memory_usage_info()`, `ensure_directory()` ### 📓 [bquant.core.nb](nb.md) - Notebook-Style Scripts API - **NotebookSimulator** - Класс для управления пошаговым выполнением скриптов - Утилиты логирования: `log()`, `success()`, `error()`, `warning()`, `info()` - Интерактивное управление: `step()`, `wait()`, `substep()` - Настройка окружения: `setup_logging()`, `set_trap_mode()` ## 🔍 Быстрый поиск ### По функциональности #### Конфигурация - `get_data_path()` - Получение пути к данным - `validate_timeframe()` - Проверка таймфрейма - `get_indicator_params()` - Параметры индикатора #### Логирование - `setup_logging()` - Настройка логирования - `get_logger()` - Получение логгера - `logger.info()` - Информационные сообщения #### Производительность - `@performance_monitor()` - Декоратор профилирования - `performance_context()` - Контекстный менеджер - `get_performance_monitor().get_stats()` - Получение метрик #### Утилиты - `validate_ohlcv_columns()` - Проверка структуры данных - `calculate_returns()` - Доходности (simple/log) - `normalize_data()` - Нормализация данных #### Notebook-style скрипты - `NotebookSimulator()` - Создание runner для скрипта - `step()` / `wait()` - Пошаговое выполнение - `success()` / `error()` - Логирование с эмодзи ### По типу #### 🏗️ Классы - `BQuantError` - Базовое исключение - `PerformanceMonitor` - Сбор метрик - `NotebookSimulator` - Управление notebook-style скриптами #### 🔧 Функции - `setup_logging()` - Настройка логирования - `get_logger()` - Получение логгера - `validate_ohlcv_columns()` - Валидация данных #### 📋 Исключения - `BQuantError` - Базовое исключение - `DataError` - Ошибки данных - `AnalysisError` - Ошибки анализа ## 💡 Примеры использования ### Конфигурация ```python from bquant.core.config import get_data_path, validate_timeframe # Проверка таймфрейма validate_timeframe('1h') # Путь к данным TradingView/OANDA для XAUUSD 1h path = get_data_path('XAUUSD', '1h', data_source='tradingview', quote_provider='oanda') ``` ### Логирование ```python from bquant.core.logging_config import setup_logging, get_logger # Настройка логирования setup_logging(level='INFO', log_file='bquant.log') # Получение логгера logger = get_logger(__name__) # Использование логгера logger.info("Starting analysis...") logger.debug("Processing data...") logger.warning("Data validation failed") logger.error("Analysis failed") ``` ### Производительность ```python from bquant.core.performance import performance_monitor, performance_context # Декоратор для профилирования @performance_monitor() def slow_function(): """Функция с профилированием""" import time time.sleep(1) return "result" # Контекстный менеджер with performance_context("data_processing"): # Код для профилирования process_large_dataset() ``` ### Обработка ошибок ```python from bquant.core.exceptions import BQuantError, DataError, AnalysisError try: # Попытка загрузки данных data = load_data('invalid_file.csv') except DataError as e: logger.error(f"Data error: {e}") # Обработка ошибки данных except BQuantError as e: logger.error(f"BQuant error: {e}") # Обработка общей ошибки ``` ### Утилиты ```python from bquant.core.utils import validate_ohlcv_columns, calculate_returns check = validate_ohlcv_columns(df) if not check['is_valid']: raise DataError('; '.join(check['messages'])) ret = calculate_returns(df['close'], method='log') ``` ### Notebook-style скрипты ```python from bquant.core.nb import NotebookSimulator # Создание и настройка runner runner = NotebookSimulator("Data Analysis Script", auto_setup=False) runner.setup_logging('analysis.log') # Пошаговое выполнение runner.step("Loading Data") # код загрузки данных runner.success("Data loaded successfully") runner.wait() runner.step("Processing Data") # код обработки runner.success("Processing completed") runner.wait() runner.finish() ``` ## 🔗 Связанные разделы - **[Data Modules](../data/README.md)** - Модули для работы с данными - **[Indicators](../indicators/README.md)** - Технические индикаторы - **[Analysis](../analysis/README.md)** - Аналитические модули - **[Visualization](../visualization/README.md)** - Модули визуализации ## 📖 Детальная документация - **[Config Module](config.md)** - Подробная документация конфигурации - **[Exceptions Module](exceptions.md)** - Документация исключений - **[Logging Module](logging.md)** - Документация логирования - **[Performance Module](performance.md)** - Документация производительности - **[Utils Module](utils.md)** - Документация утилит - **[Notebook-Style API](nb.md)** - Документация notebook-style скриптов --- **Следующий раздел:** [Data Modules](../data/README.md) 📊