[build-system]
requires = ["maturin>=1.6,<2.0"]
build-backend = "maturin"
[project]
name = "evalica"
version = "0.4.1"
license = "Apache-2.0"
description = "Evalica, your favourite evaluation toolkit."
keywords = [
"Bradley-Terry",
"Elo",
"PageRank",
"eigenvector",
"evaluation",
"leaderboard",
"pairwise comparisons",
"ranking",
"rating",
"statistics",
]
requires-python = ">=3.8,<4.0"
dependencies = ["numpy>=1.16.0", "pandas", "scipy"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Rust",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Scientific/Engineering :: Information Analysis",
"Topic :: Scientific/Engineering :: Mathematics",
"Topic :: Software Development :: Libraries",
"Typing :: Typed",
]
[project.optional-dependencies]
dev = [
"abi3audit",
"hypothesis[numpy]",
"ipywidgets",
"mypy",
"nbqa",
"notebook",
"pandas-stubs",
"plotly",
"pytest",
"pytest-codspeed",
"pytest-cov",
"ruff",
"twine",
"ty",
]
docs = [
"mkdocs",
"mkdocs-material",
"mkdocs-jupyter",
"mkdocstrings-python",
"plotly",
]
gradio = [
"gradio",
"huggingface-hub >=0.33.5,<1.0 ; python_version < '3.10'",
"plotly",
]
[project.readme]
file = "README.md"
content-type = "text/markdown"
[project.scripts]
evalica = "evalica.__main__:main"
[project.urls]
Homepage = "https://github.com/dustalov/evalica"
Changelog = "https://github.com/dustalov/evalica/releases"
Issues = "https://github.com/dustalov/evalica/issues"
Documentation = "https://evalica.readthedocs.io/"
Download = "https://pypi.org/project/evalica/#files"
Repository = "https://github.com/dustalov/evalica"
[tool.coverage.run]
source = ["python/evalica"]
omit = ["python/evalica/__main__.py", "python/evalica/gradio/*.py"]
[tool.coverage.report]
exclude_also = [
"if TYPE_CHECKING:",
"pytest.skip",
]
fail_under = 100
[tool.maturin]
features = ["python"]
python-source = "python"
module-name = "evalica._brzo"
[tool.mypy]
ignore_missing_imports = true
strict = true
exclude = [
"coling2025",
]
[tool.pytest.ini_options]
filterwarnings = [
"error::RuntimeWarning",
"ignore:The Rust extension could not be imported",
]
[tool.ruff]
line-length = 120
target-version = "py38"
exclude = [
"coling2025",
]
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"D203",
"D212",
"D406",
"D407",
"ERA001",
"FIX002",
"PLR0913",
"PYI021",
"S101",
"TD002",
"TD003",
]
[tool.ruff.lint.per-file-ignores]
"scripts/*.py" = [
"EM102",
"RET504",
"T201",
"TRY003",
]
"!__init__.py" = [
"D",
]
"*.ipynb" = [
"B018",
"RUF001",
]
"test_*.py" = [
"PLR2004",
]