- Updated `pyproject.toml` to include the new `data` package in the build configuration, ensuring all components are properly included. - Introduced `ADR-004` documentation outlining the rationale for refactoring the data collection system into a modular architecture, addressing complexity and maintainability issues. - Enhanced `data_collectors.md` to reflect the new component structure, detailing responsibilities of `CollectorLifecycleManager`, `ManagerHealthMonitor`, `ManagerStatsTracker`, and `ManagerLogger`. - Refactored `DataCollectionService` to utilize the new modular components, improving orchestration and error handling. - Removed the obsolete `collector-service-tasks-optimization.md` and `refactor-common-package.md` files, streamlining the tasks documentation. These changes significantly improve the architecture and maintainability of the data collection service, aligning with project standards for modularity, performance, and documentation clarity.
83 lines
1.9 KiB
TOML
83 lines
1.9 KiB
TOML
[project]
|
|
name = "dashboard"
|
|
version = "0.1.0"
|
|
description = "Crypto Trading Bot Dashboard - A control dashboard for managing and monitoring multiple cryptocurrency trading bots"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
# Core web framework
|
|
"dash>=2.14.0",
|
|
"dash-bootstrap-components>=1.6.0",
|
|
"dash-bootstrap-templates>=1.1.0",
|
|
"plotly>=5.17.0",
|
|
"waitress>=3.0.0",
|
|
# Database
|
|
"sqlalchemy>=2.0.0",
|
|
"psycopg2-binary>=2.9.0",
|
|
"alembic>=1.12.0",
|
|
# HTTP and WebSocket clients
|
|
"requests>=2.31.0",
|
|
"websocket-client>=1.6.0",
|
|
"websockets>=11.0.0",
|
|
"aiohttp>=3.8.0",
|
|
# Data processing
|
|
"pandas>=2.1.0",
|
|
"numpy>=1.24.0",
|
|
# Configuration and environment
|
|
"python-dotenv>=1.0.0",
|
|
"pydantic>=2.4.0",
|
|
"pydantic-settings>=2.1.0",
|
|
# Caching
|
|
"redis>=4.6.0",
|
|
# Utilities
|
|
"python-dateutil>=2.8.0",
|
|
"pytz>=2023.3",
|
|
# Logging
|
|
"structlog>=23.1.0",
|
|
# Development tools
|
|
"watchdog>=3.0.0", # For file watching and hot reload
|
|
"click>=8.0.0", # For CLI commands
|
|
"pytest>=8.3.5",
|
|
"psutil>=7.0.0",
|
|
"tzlocal>=5.3.1",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.4.0",
|
|
"pytest-asyncio>=0.21.0",
|
|
"pytest-cov>=4.1.0",
|
|
"black>=23.0.0",
|
|
"isort>=5.12.0",
|
|
"flake8>=6.0.0",
|
|
"mypy>=1.5.0",
|
|
"pre-commit>=3.5.0", # For git hooks
|
|
"pytest-mock>=3.12.0", # For mocking in tests
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["config", "database", "scripts", "tests", "data"]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py310']
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
line_length = 88
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = true
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest-asyncio>=1.0.0",
|
|
]
|