[project]
name = "Solo_bot"
version = "0.0.1"
dependencies = [
    "aiofiles==24.1.0",
    "aiogram==3.13.1",
    "aiohappyeyeballs==2.4.3",
    "aiohttp==3.10.10",
    "aiosignal==1.3.1",
    "annotated-types==0.7.0",
    "async-timeout==4.0.3",
    "asyncpg==0.30.0",
    "attrs==24.2.0",
    "certifi",
    "charset-normalizer==3.4.0",
    "deprecated==1.2.14",
    "distro==1.9.0",
    "frozenlist==1.4.1",
    "idna==3.10",
    "magic-filter==1.0.12",
    "multidict==6.1.0",
    "netaddr==1.3.0",
    "propcache==0.2.0",
    "pydantic",
    "pydantic-core",
    "requests==2.32.3",
    "typing-extensions==4.12.2",
    "urllib3==2.2.3",
    "wrapt==1.16.0",
    "yarl==1.15.5",
    "yookassa==3.3.0",
    "loguru",
    "aiocryptopay",
    "py3xui",
    "sqlalchemy",
    "robokassa",
    "ping3",
    "ruff",
    "pytz",
    "cachetools",
    "babel",
]

[tool.ruff]
line-length = 120
target-version = "py312"
fix = true
unsafe-fixes = true
preview = true

[tool.uv]
package = false

[tool.ruff.lint]
select = ["E", "F", "W", "I", "N", "UP", "ANN", "ASYNC", "S", "BLE", "FBT", "B", "A", "C4", "DTZ", "T10", "ISC", "ICN", "G", "PIE"]
ignore = ["ANN101", "ANN102", "S101", "ANN201", "ANN001", "BLE001", "W291", "ANN401", "DTZ003", "DTZ005", "F401", "FBT002", "FBT001", "FBT003", "A005", "E501", "UP017", "DTZ004", "W293", "ANN202", "DTZ007"]
exclude = [
    ".git", 
    "venv",
    "main.py",
    "handlers/payments",
]

[tool.ruff.format]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
docstring-code-format = true
docstring-code-line-length = 88

[tool.ruff.lint.isort]
case-sensitive = true
combine-as-imports = true
force-wrap-aliases = true
known-first-party = ["Solo_bot"]
lines-after-imports = 2
lines-between-types = 1

[tool.ruff.lint.flake8-quotes]
docstring-quotes = "double"
inline-quotes = "double"
multiline-quotes = "double"

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.ruff.lint.pycodestyle]
max-doc-length = 120

[tool.ruff.lint.mccabe]
max-complexity = 10

[tool.darker]
src = ["."]
revision = "HEAD"
diff = false
check = false 
exclude = [
    ".git", 
    "venv",
    "main.py",
    "handlers/payments",
]
