[build-system] requires = ["setuptools>=42", "wheel", "setuptools-scm"] build-backend = "setuptools.build_meta" [project] name = "liger_kernel" version = "0.7.0" description = "Efficient Triton kernels for LLM Training" urls = { "Homepage" = "https://github.com/linkedin/Liger-Kernel" } readme = { file = "README.md", content-type = "text/markdown" } license = { file = "LICENSE" } dynamic = ["dependencies", "optional-dependencies"] [tool.setuptools] package-dir = {"" = "src"} [tool.setuptools.packages.find] where = ["src"] include = ["liger_kernel*"] namespaces = false [tool.pytest.ini_options] pythonpath = ["src", "."] asyncio_mode = "auto" log_cli = true log_cli_level = "INFO" addopts = [ "--cov=src/liger_kernel", "--cov-report=term-missing", "--cov-report=html", "--cov-config=pyproject.toml", "--durations=0" ] python_files = "test_*.py" testpaths = ["test/"] [tool.coverage.run] branch = true parallel = true source = ["src/liger_kernel"] # xdist uses subprocesses; "multiprocessing" is a safe concurrency choice concurrency = ["multiprocessing"] [tool.coverage.paths] liger_kernel = [ "src/liger_kernel", "*/site-packages/liger_kernel" ] [tool.coverage.report] omit = ["test/*"] show_missing = true skip_covered = false [tool.ruff] line-length = 120 target-version = "py310" respect-gitignore = true src = ["src"] [tool.ruff.lint] select = [ "E", # pycodestyle errors "F", # pyflakes "I", # isort ] ignore = ["E501", "B006", "E731", "A002", "E203"] exclude = [ ".git", "__pycache__", "benchmark_internal/others", ".venv", ] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.ruff.lint.isort] known-first-party = ["liger_kernel"] force-single-line = true lines-between-types = 1