mirror of
https://github.com/triqbit/mt5-ai-xauusd-trader.git
synced 2026-11-02 06:56:15 +00:00
Bumps [pytz](https://github.com/stub42/pytz) from 2026.5 to 2026.6. - [Release notes](https://github.com/stub42/pytz/releases) - [Commits](https://github.com/stub42/pytz/compare/release_2026.5...release_2026.6) --- updated-dependencies: - dependency-name: pytz dependency-version: '2026.6' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
144 lines
4.0 KiB
TOML
144 lines
4.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=65.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "mt5-ai-xauusd-trader"
|
|
version = "1.1.0-rc7"
|
|
description = "AI/ML Trading Bot for MetaTrader 5 - XAUUSD Gold Trading"
|
|
authors = [{name = "triqbit"}]
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
requires-python = ">=3.11,<3.12"
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"License :: OSI Approved :: MIT License",
|
|
]
|
|
dependencies = [
|
|
"torch==2.14.1+cpu",
|
|
"stable-baselines3==2.9.0",
|
|
"gymnasium==1.4.0",
|
|
"numpy==2.4.6",
|
|
"scipy==1.17.1",
|
|
"scikit-learn==1.9.1",
|
|
"pandas==3.1.0",
|
|
"TA-Lib==0.8.2",
|
|
"requests==2.34.2",
|
|
"aiohttp==3.14.5",
|
|
"httpx==0.28.1",
|
|
"psycopg2-binary==2.9.13",
|
|
"sqlalchemy==2.1.6",
|
|
"alembic==1.20.1",
|
|
"redis==8.1.0",
|
|
"prometheus-client==0.26.0",
|
|
"structlog==26.1.0",
|
|
"rich==15.0.0",
|
|
"tqdm==4.70.1",
|
|
"jinja2==3.1.6",
|
|
"fastapi==0.143.0",
|
|
"uvicorn[standard]==0.54.0",
|
|
"python-dotenv==1.2.4",
|
|
"pydantic==2.14.1",
|
|
"pydantic-settings==2.16.1",
|
|
"tomli==2.5.0",
|
|
"python-dateutil==3.0.0",
|
|
"nest-asyncio==1.6.0",
|
|
"pytz==2026.6",
|
|
"click==8.5.0",
|
|
"tabulate==0.10.0",
|
|
"joblib==1.6.0",
|
|
"python-telegram-bot==22.8",
|
|
"psutil==7.2.2",
|
|
"optuna==5.0.0",
|
|
"python-socketio==5.17.0",
|
|
"MetaTrader5==5.0.6231; sys_platform == 'win32'",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pre-commit==4.7.0",
|
|
"ruff==0.17.2",
|
|
"mypy==2.4.0",
|
|
"pip-audit",
|
|
]
|
|
test = [
|
|
"pytest==9.1.1",
|
|
"pytest-asyncio==1.4.0",
|
|
"pytest-mock==3.17.0",
|
|
"pytest-cov==7.1.0",
|
|
"hypothesis==6.170.8",
|
|
"types-redis==4.6.0.20241004",
|
|
"types-requests==2.33.0.20261006",
|
|
"types-python-dateutil==2.9.0.20261021",
|
|
"types-setuptools==84.0.0.20261006",
|
|
"types-PyYAML==6.0.12.20260906",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["src*"]
|
|
|
|
# ===========================================================
|
|
# Ruff — single tool for lint + format + import sorting
|
|
# Replaces: black, isort, flake8, pyupgrade
|
|
# ===========================================================
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py311"
|
|
|
|
[tool.ruff.format]
|
|
# ruff format is the black-compatible formatter
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
skip-magic-trailing-comma = false
|
|
line-ending = "auto"
|
|
|
|
[tool.ruff.lint]
|
|
# Rule sets enabled:
|
|
# E/W = pycodestyle errors/warnings
|
|
# F = pyflakes (undefined names, unused imports)
|
|
# I = isort (import sorting — enforced)
|
|
# B = flake8-bugbear (likely bugs and design issues)
|
|
# C4 = flake8-comprehensions (simplify comprehensions)
|
|
# SIM = flake8-simplify
|
|
# RUF = ruff-specific rules
|
|
#
|
|
# NOTE: UP (pyupgrade) intentionally excluded until source files
|
|
# are migrated from typing.Dict/List/Optional to built-in generics.
|
|
# Track in: https://github.com/triqbit/mt5-ai-xauusd-trader/issues
|
|
select = ["E", "W", "F", "I", "B", "C4", "SIM", "RUF"]
|
|
ignore = [
|
|
"E501", # line-length — handled by ruff format
|
|
"B008", # function calls in default args (FastAPI Depends pattern)
|
|
"RUF012", # mutable class attrs — false positives in pydantic models
|
|
"SIM108", # ternary operator — sometimes less readable
|
|
]
|
|
|
|
[tool.ruff.lint.isort]
|
|
known-first-party = ["src"]
|
|
combine-as-imports = true
|
|
force-single-line = false
|
|
split-on-trailing-comma = true
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"tests/**" = ["S101", "B011"] # assert + raise-without-from OK in tests
|
|
"migrations/**" = ["E402", "I"] # module level imports & import sorting ignored in migrations
|
|
|
|
# ===========================================================
|
|
# mypy
|
|
# ===========================================================
|
|
[tool.mypy]
|
|
python_version = "3.11"
|
|
strict = true
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
ignore_missing_imports = true
|
|
|
|
# ===========================================================
|
|
# pytest
|
|
# ===========================================================
|
|
[tool.pytest.ini_options]
|
|
pythonpath = "."
|
|
testpaths = ["tests"]
|
|
addopts = "--strict-markers --verbose"
|