[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", "tdqm>=0.0.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", "strategies"] [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", ] [tool.pytest.ini_options] pythonpath = ["."] testpaths = ["tests"]