[project]
name = "art-celery"
version = "0.1.0"
description = "Art DAG L1 Server and Celery Workers"
requires-python = ">=3.11"

[tool.mypy]
python_version = "3.11"
warn_return_any = true
warn_unused_ignores = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
strict_optional = true
no_implicit_optional = true

# Start strict on new code, gradually enable for existing
files = [
    "app/types.py",
    "app/routers/recipes.py",
    "tests/",
]

# Ignore missing imports for third-party packages without stubs
[[tool.mypy.overrides]]
module = [
    "celery.*",
    "redis.*",
    "artdag.*",
    "artdag_common.*",
    "ipfs_client.*",
]
ignore_missing_imports = true

[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
asyncio_mode = "auto"
addopts = "-v --tb=short"
filterwarnings = [
    "ignore::DeprecationWarning",
]

[tool.ruff]
line-length = 100
target-version = "py311"

[tool.ruff.lint]
select = ["E", "F", "I", "UP"]
ignore = ["E501"]  # Line length handled separately
