File size: 2,009 Bytes
b66f552
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[project]
name = "flash-linear-attention"
dynamic = ["version"]
description = "Fast Triton-based implementations of causal linear attention"
readme = "README.md"
authors = [
    { name = "Songlin Yang", email = "yangsl66@mit.edu" },
    { name = "Yu Zhang", email = "yzhang.cs@outlook.com" },
]
license = { file = "LICENSE" }
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
]
requires-python = ">=3.10"
dependencies = [
    "torch",
    "transformers",
    "einops",
]

[project.optional-dependencies]
conv1d = ["causal-conv1d>=1.4.0"]
benchmark = ["matplotlib", "datasets>=3.3.0"]
test = ["pytest"]

[project.urls]
Homepage = "https://github.com/fla-org/flash-linear-attention"
Repository = "https://github.com/fla-org/flash-linear-attention"

[build-system]
requires = ["setuptools>=45", "wheel"]

[tool.ruff.lint.isort]
known-first-party = ["fla"]
force-sort-within-sections = false

[tool.pytest.ini_options]
log_cli = true
log_cli_level = "INFO"
pythonpath = [
  "."
]

[tool.ruff]
target-version = "py310"
line-length = 127

[tool.ruff.format]
docstring-code-format = true

[tool.ruff.lint]
select = [
    "E",    # pycodestyle
    "F",    # Pyflakes
    "UP",   # pyupgrade
    "B",    # flake8-bugbear
    "SIM",  # flake8-simplify
    "I",    # isort
    "C4",   # flake8-comprehensions
    "TCH",  # flake8-type-checking
    "COM",  # flake8-commas
    "T",    # flake8-debugger
]
ignore = [
    "E501",
    "E741",
    "B023",
    "B006",
    "B007",
    "B008",
    "B028",
    "B904",
    "C408",
    "C416",
    "C417",
    "T201",
    "TC002",
    "TC003",
    "SIM102",
    "SIM108",
    "SIM118",
    "SIM211",
]

[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
"fla/utils.py" = ["TCH004"]
"evals/harness.py" = ["I", "TCH"]
"tests/*/*.py" = ["UP030"]
"scripts/*.py" = ["C414"]
"egacy/training/flame/*.py" = ["C408"]