11[build-system ]
2- requires = [" setuptools>=40.8.0 " , " wheel " ]
2+ requires = [" setuptools>=64.0 " ]
33build-backend = " setuptools.build_meta"
44
55[project ]
@@ -13,19 +13,15 @@ readme = "README.md"
1313classifiers = [
1414 " Development Status :: 3 - Alpha" ,
1515 " Programming Language :: Python :: 3" ,
16- " License :: OSI Approved :: MIT License" ,
1716 " Operating System :: OS Independent" ,
1817]
1918requires-python = " >=3.10"
20- license = { " text" = " MIT" }
19+ license = { text = " MIT" }
2120dependencies = [
22- " evaluate" ,
2321 " datasets>=2.16.0" ,
2422 " evaluate>=0.4.0" ,
23+ " jinja2" ,
2524 " jsonlines" ,
26- " numexpr" ,
27- " peft>=0.2.0" ,
28- " pybind11>=2.6.2" ,
2925 " pytablewriter" ,
3026 " rouge-score>=0.0.4" ,
3127 " sacrebleu>=1.5.0" ,
@@ -55,21 +51,21 @@ Repository = "https://github.com/EleutherAI/lm-evaluation-harness"
5551[project .optional-dependencies ]
5652# Model backend dependencies
5753api = [" requests" , " aiohttp" , " tenacity" , " tqdm" , " tiktoken" ]
58- hf = [" transformers>=4.1" ," torch>=1.8" , " accelerate>=0.26.0" ]
54+ hf = [" transformers>=4.1" ," torch>=1.8" , " accelerate>=0.26.0" , " peft>=0.2.0 " , ]
5955vllm = [" vllm>=0.4.2" ]
6056gptq = [" auto-gptq[triton]>=0.6.0" ]
6157gptqmodel = [" gptqmodel>=1.0.9" ]
62- ipex = [" optimum" ]
58+ ipex = [" optimum-intel " ]
6359ibm_watsonx_ai = [" ibm_watsonx_ai>=1.1.22" , " python-dotenv" ]
64- # mamba = ["mamba_ssm", "causal-conv1d==1.0.2", "torch"] # build error
65- neuronx = [" optimum[neuronx]>0 .0.1 " ]
60+ # mamba requires CUDA (nvcc) - cannot build on macOS/CPU-only systems
61+ # mamba = ["mamba_ssm", "causal-conv1d==1 .0.2", "torch "]
6662optimum = [" optimum[openvino]" ]
6763sparsify = [" sparsify" ]
6864sae_lens = [" sae_lens" ]
6965# Task specific dependencies
7066acpbench = [" lark>=1.1.9" , " tarski[clingo]==0.8.2" , " pddl==0.4.2" , " kstar-planner==1.4.2" ]
7167audiolm_qwen = [" librosa" , " soundfile" ]
72- dev = [" pytest" , " pytest-cov" , " pytest-xdist" , " pre-commit" , " requests" , " aiohttp" , " tenacity" , " tqdm" , " tiktoken" , " sentencepiece" ]
68+ dev = [" pytest" , " pytest-cov" , " pytest-xdist" , " pre-commit" , " requests" , " aiohttp" , " tenacity" , " tqdm" , " tiktoken" , " sentencepiece" , " ruff " ]
7369hf_transfer = [" hf_transfer" ]
7470ifeval = [" langdetect" , " immutabledict" , " nltk>=3.9.1" ]
7571japanese_leaderboard = [" emoji==2.14.0" , " neologdn==0.5.3" , " fugashi[unidic-lite]" , " rouge_score>=0.1.2" ]
@@ -92,12 +88,16 @@ tasks = [
9288 " lm_eval[japanese_leaderboard]" ,
9389 " lm_eval[longbench]" ,
9490 " lm_eval[libra]" ,
95- " lm_eval[mamba]" ,
9691 " lm_eval[math]" ,
9792 " lm_eval[multilingual]" ,
9893 " lm_eval[ruler]" ,
9994]
10095
96+ [dependency-groups ]
97+ dev = [
98+ " lm_eval[api]" , " lm_eval[dev]" , " lm_eval[hf]" ," sentencepiece"
99+ ]
100+
101101[tool .uv ]
102102conflicts = [
103103 [
@@ -122,18 +122,44 @@ plugins.md028.enabled = false # no-blanks-blockquote
122122plugins.md029.allow_extended_start_values = true # ol-prefix
123123plugins.md034.enabled = false # no-bare-urls
124124
125- [tool .ruff .lint ]
126- extend-select = [" I" , " W605" ]
127-
128- [tool .ruff .lint .isort ]
129- lines-after-imports = 2
130- known-first-party = [" lm_eval" ]
125+ [tool .ruff ]
126+ lint.extend-select = [
127+ " I" , # isort
128+ " UP" , # pyupgrade
129+ " E" , # pycodestyle errors
130+ " C419" , # unnecessary-comprehension-in-call
131+ " F" , # pyflakes
132+ " B" , # flake8-bugbear
133+ " SIM" , # flake8-simplify
134+ " RUF034" , # useless-if-else
135+ " W605" , # invalid-escape-sequence
136+ " FURB" , # refurb
137+ ]
138+ lint.fixable = [
139+ " I001" , # unsorted-imports
140+ " F401" , # unused-import
141+ " UP" , # pyupgrade fixes
142+ ]
143+ lint.ignore = [
144+ " E402" , # module-import-not-at-top-of-file
145+ " E731" , # lambda-assignment
146+ " E501" , # line-too-long
147+ " E111" , # indentation-with-invalid-multiple
148+ " E114" , # indentation-with-invalid-multiple-comment
149+ " E117" , # over-indented
150+ " E741" , # ambiguous-variable-name
151+ " E701" , # multiple-statements-on-one-line-colon
152+ ]
131153
132154[tool .ruff .lint .extend-per-file-ignores ]
133- "__init__.py" = [" F401" , " F402" , " F403" ]
134- "utils.py" = [" F401" ]
135-
136- [dependency-groups ]
137- dev = [
138- " lm_eval[api]" , " lm_eval[dev]" , " lm_eval[hf]" ," sentencepiece"
155+ "__init__.py" = [
156+ " F401" , # unused-import
157+ " F402" , # import-shadowed-by-loop-var
158+ " F403" , # undefined-local-with-import-star
159+ " F405" , # undefined-local-with-import-star-usage
139160]
161+
162+ [tool .ruff .lint .isort ]
163+ combine-as-imports = true
164+ known-first-party = [" lm_eval" ]
165+ lines-after-imports = 2
0 commit comments