blob: 559f3b3857f60cb52646cb69663f47e6933ef3ea [file] [edit]
[build-system]
requires = ["setuptools>=80", "setuptools-scm>=8"]
build-backend = "setuptools.build_meta"
[project]
name = "llvm-lnt"
dynamic = ["version"]
description = "LLVM Nightly Test Infrastructure"
readme = "README.md"
license = "LicenseRef-Apache-2.0-with-LLVM-exception"
license-files = ["LICENSE.TXT"]
authors = [
{ name = "Daniel Dunbar", email = "daniel@zuster.org" },
]
maintainers = []
keywords = ["web", "testing", "performance", "development", "llvm"]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"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",
"Topic :: Software Development :: Quality Assurance",
"Topic :: Software Development :: Testing",
]
requires-python = ">=3.10"
dependencies = [
"aniso8601>=1.2.0",
"certifi",
"click>=8.1.0",
"Flask-RESTful>=0.3.10",
"Flask-WTF>=1.2.0",
"Flask>=3.1.0",
"Jinja2>=3.1.0",
"MarkupSafe>=3.0.0",
"PyYAML>=6.0.0",
"requests",
"SQLAlchemy==1.3.24",
"typing",
"Werkzeug>=3.1.0",
"WTForms>=3.2.0",
]
[project.urls]
Homepage = "https://llvm.org"
Documentation = "https://llvm.org/docs/lnt"
Repository = "https://github.com/llvm/llvm-lnt"
"Bug Reports" = "https://github.com/llvm/llvm-lnt/issues"
[project.scripts]
lnt = "lnt.lnttool:main"
[project.optional-dependencies]
server = [
"gunicorn",
"psycopg2>=2.9.0",
]
dev = [
"build",
"filecheck",
"Flake8-pyproject",
"flake8",
"gunicorn",
"lit",
"psycopg2>=2.9.0",
"tox",
"twine",
]
[tool.setuptools]
ext-modules = [
{name = "lnt.testing.profile.cPerf", sources = ["lnt/testing/profile/cPerf.cpp"]}
]
[tool.setuptools.packages]
find = {namespaces = false}
[tool.setuptools.package-data]
"lnt.server.ui" = [
"static/*.ico",
"static/*.js",
"static/*.css",
"static/*.svg",
"static/bootstrap/css/*.css",
"static/bootstrap/js/*.js",
"static/bootstrap/img/*.png",
"static/flot/*.min.js",
"static/plotly/*.min.js",
"static/d3/*.min.js",
"static/jquery/**/*.min.js",
"templates/*.html",
"templates/reporting/*.html",
"templates/reporting/*.txt",
]
"lnt.server.db" = [
"migrations/*.py"
]
[tool.setuptools_scm]
# This section is needed with older versions of Python, although it can be empty.
[tool.flake8]
ignore = ["E712", "E402", "E711", "E266", "W605", "E126", "E226", "W504"]
max-line-length = 120
count = true
[tool.mypy]
plugins = ["sqlmypy"]
[tool.tox]
env_list = ["py3", "mypy", "flake8", "docs"]
[tool.tox.env.py3]
description = "Run the unit tests"
allowlist_externals = ["rm", "lit"]
deps = [".[dev]"]
commands = [
["rm", "-rf", "test_run_tmp"],
["lit", "-sv", "--show-unsupported", "tests"],
]
[tool.tox.env.flake8]
description = "Run linter on the codebase"
deps = [".[dev]"]
commands = [["flake8", "--statistics", "--exclude=./lnt/external/", "./lnt/", "./tests/", "./deployment/"]]
skip_install = true
[tool.tox.env.mypy]
description = "Typecheck the codebase"
# TODO: Make it possible to install [.dev] dependencies instead
deps = [
"mypy",
"sqlalchemy-stubs",
"types-certifi",
"types-PyYAML",
]
commands = [["mypy", "--ignore-missing-imports", "lnt"]]
skip_install = true
[tool.tox.env.docs]
description = "Build the documentation"
deps = [
"sphinx==7",
"sphinx_bootstrap_theme",
]
allowlist_externals = ["make"]
commands = [["make", "-C", "{toxinidir}/docs/", "html"]]
skip_install = true