Core Modules - Базовые модули BQuant
📚 Обзор
Core модули содержат базовую функциональность BQuant: конфигурацию, исключения, логирование, производительность и утилиты.
🗂️ Модули
🔧 bquant.core.config - Конфигурация и настройки
Константы путей и конфигураций (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 - Исключения и ошибки
BQuantError - Базовое исключение BQuant
DataError - Ошибки данных
AnalysisError - Ошибки анализа
VisualizationError - Ошибки визуализации
📝 bquant.core.logging_config - Настройка логирования
setup_logging()— инициализация логированияget_logger()— получение логгера (с контекстом)Декораторы и контекст логирования
⚡ bquant.core.performance - Производительность и профилирование
Декоратор
@performance_monitorи контекстperformance_contextГлобальный монитор
PerformanceMonitor, сбор и экспорт метрикОптимизированные индикаторы (NumPy):
sma,ema,rsi,macd,bollinger_bands
🛠️ bquant.core.utils - Утилиты и вспомогательные функции
setup_project_logging(),calculate_returns(),normalize_data()save_results(),validate_ohlcv_columns(),create_timestamp()memory_usage_info(),ensure_directory()
📓 bquant.core.nb - 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- Ошибки анализа
💡 Примеры использования
Конфигурация
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')
Логирование
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")
Производительность
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()
Обработка ошибок
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}")
# Обработка общей ошибки
Утилиты
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 скрипты
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 - Модули для работы с данными
Indicators - Технические индикаторы
Analysis - Аналитические модули
Visualization - Модули визуализации
📖 Детальная документация
Config Module - Подробная документация конфигурации
Exceptions Module - Документация исключений
Logging Module - Документация логирования
Performance Module - Документация производительности
Utils Module - Документация утилит
Notebook-Style API - Документация notebook-style скриптов
Следующий раздел: Data Modules 📊