[build-system]
requires = [
    "setuptools>=61.0",
    "wheel",
    "packaging",
    "ninja",
]
build-backend = "setuptools.build_meta"

[project]
name = "lightx2v"
version = "0.1.0"
authors = [
    {name = "LightX2V Contributors"},
]
description = "LightX2V: Light Video Generation Inference Framework"
readme = "README.md"
license = "Apache-2.0"
requires-python = ">=3.10"
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "Intended Audience :: Science/Research",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Multimedia :: Video",
]

dependencies = [
    "numpy",
    "scipy",
    "torch<=2.8.0",
    "torchvision<=0.23.0",
    "torchaudio<=2.8.0",
    "diffusers",
    "transformers",
    "tokenizers",
    "tqdm",
    "accelerate",
    "safetensors",
    "opencv-python",
    "imageio",
    "imageio-ffmpeg",
    "einops",
    "loguru",
    "qtorch",
    "ftfy",
    "gradio",
    "aiohttp",
    "pydantic",
    "prometheus-client",
    "gguf",
    "fastapi",
    "uvicorn",
    "PyJWT",
    "requests",
    "aio-pika",
    "asyncpg>=0.27.0",
    "aioboto3>=12.0.0",
    "alibabacloud_dypnsapi20170525==1.2.2",
    "redis==6.4.0",
    "tos",
    "decord",
    "av",
]

[project.urls]
Homepage = "https://github.com/ModelTC/LightX2V"
Documentation = "https://lightx2v-en.readthedocs.io/en/latest/"
Repository = "https://github.com/ModelTC/LightX2V"

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
include = ["lightx2v*"]
exclude = ["lightx2v_kernel*"]

[tool.ruff]
exclude = [
    ".git",
    ".mypy_cache",
    ".ruff_cache",
    ".venv",
    "dist",
    "build",
    "__pycache__",
    "*.egg-info",
    ".pytest_cache",
    ".cluade",
    ".cursor",
    "lightx2v_kernel",
]
target-version = "py311"
line-length = 200
indent-width = 4


[tool.ruff.lint]
extend-select = ["I", "F401"]
ignore = ["F"]

[tool.ruff.lint.per-file-ignores]
"**/__init__.py" = ["F401"]
"**/lightx2v_kernel/*" = ["F401"]
"**/{cookbook,docs}/*" = ["E402", "F401", "F811", "F841"]

[tool.ruff.lint.isort]
known-first-party = ["lightx2v"]
case-sensitive = true
