144 lines
3.3 KiB
TOML
144 lines
3.3 KiB
TOML
# Copyright (c) 2024 by FlashInfer team.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
[project]
|
|
name = "flashinfer-python"
|
|
description = "FlashInfer: Kernel Library for LLM Serving"
|
|
requires-python = ">=3.9,<4.0"
|
|
authors = [{ name = "FlashInfer team" }]
|
|
license = "Apache-2.0"
|
|
readme = "README.md"
|
|
urls = { Homepage = "https://github.com/flashinfer-ai/flashinfer" }
|
|
dynamic = ["dependencies", "version"]
|
|
license-files = ["LICENSE", "licenses/*"]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=77", "packaging>=24"]
|
|
build-backend = "custom_backend"
|
|
backend-path = ["."]
|
|
|
|
[tool.codespell]
|
|
ignore-words-list = "3nd"
|
|
skip = [
|
|
"build",
|
|
"3rdparty",
|
|
"dist",
|
|
".venv"
|
|
]
|
|
|
|
[tool.setuptools]
|
|
packages = [
|
|
"flashinfer",
|
|
"flashinfer.cute_dsl",
|
|
"flashinfer.data",
|
|
"flashinfer.data.aot",
|
|
"flashinfer.data.csrc",
|
|
"flashinfer.data.cutlass",
|
|
"flashinfer.data.spdlog",
|
|
"flashinfer.data.tvm_binding",
|
|
"flashinfer.data.include",
|
|
"flashinfer.fused_moe",
|
|
"flashinfer.jit",
|
|
"flashinfer.jit.attention",
|
|
"flashinfer.jit.cutlass_gemm",
|
|
"flashinfer.testing",
|
|
"flashinfer.triton",
|
|
"flashinfer.tuning_configs",
|
|
"flashinfer.profiler",
|
|
"flashinfer.triton.kernels",
|
|
"flashinfer.comm",
|
|
"flashinfer.cudnn",
|
|
"flashinfer.logits_processor",
|
|
]
|
|
include-package-data = false
|
|
|
|
[tool.setuptools.package-dir]
|
|
"flashinfer.data" = "."
|
|
"flashinfer.data.aot" = "build/aot-ops-package-dir"
|
|
"flashinfer.data.cutlass" = "3rdparty/cutlass"
|
|
"flashinfer.data.spdlog" = "3rdparty/spdlog"
|
|
|
|
[tool.setuptools.package-data]
|
|
"flashinfer.data" = [
|
|
"csrc/**",
|
|
"include/**",
|
|
"tvm_binding/**",
|
|
"version.txt"
|
|
]
|
|
"flashinfer.data.aot" = [
|
|
"**"
|
|
]
|
|
"flashinfer.data.cutlass" = [
|
|
"include/**",
|
|
"tools/util/include/**"
|
|
]
|
|
"flashinfer.data.spdlog" = [
|
|
"include/**",
|
|
]
|
|
|
|
[tool.mypy]
|
|
ignore_missing_imports = false
|
|
show_column_numbers = true
|
|
show_error_context = true
|
|
follow_imports = "skip"
|
|
ignore_errors = false
|
|
strict_optional = false
|
|
|
|
|
|
[tool.ruff.lint]
|
|
select = [
|
|
# pycodestyle
|
|
"E",
|
|
# Pyflakes
|
|
"F",
|
|
# pyupgrade
|
|
# "UP",
|
|
# flake8-bugbear
|
|
"B",
|
|
# flake8-simplify
|
|
"SIM",
|
|
# isort
|
|
# "I",
|
|
]
|
|
ignore = [
|
|
# Module level import not at top of file
|
|
"E402",
|
|
# star imports
|
|
"F405", "F403",
|
|
# ambiguous name
|
|
"E741",
|
|
# line too long
|
|
"E501",
|
|
# key in dict.keys()
|
|
"SIM118",
|
|
# memory leaks
|
|
"B019",
|
|
# No such file or directory
|
|
"E902",
|
|
# nested `if` statements
|
|
"SIM102",
|
|
# `if`-`else`-block
|
|
"SIM108",
|
|
# assign `lambda` expressions
|
|
"E731",
|
|
# Loop control variable overrides iterable it iterates
|
|
"B020",
|
|
# Return te negated condition directly
|
|
"SIM103",
|
|
# Function definition does not bind loop variable
|
|
"B023",
|
|
]
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"__init__.py" = ["F401"]
|