1
0
mirror of https://github.com/containers/ramalama.git synced 2026-02-05 06:46:39 +01:00
Files
ramalama/pyproject.toml
Oliver Walsh 0a9095df83 Enable pytest duration reporting
Signed-off-by: Oliver Walsh <owalsh@redhat.com>
2026-01-28 16:52:43 +00:00

264 lines
5.7 KiB
TOML

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
[project]
name = "ramalama"
dynamic = ["version"]
description = "RamaLama is a command line tool for working with AI LLM models."
readme = "README.md"
requires-python = ">=3.10"
keywords = [
"ramalama",
"llama",
"ai",
"llm",
"large-language-model",
"inference",
"containers",
"podman",
"docker",
"gpu",
"rag",
]
dependencies = [
"argcomplete",
"pyyaml",
"jsonschema",
"jinja2",
]
maintainers = [
{ name = "Dan Walsh", email = "dawalsh@redhat.com" },
{ name = "Mike Bonnet", email = "mikeb@redhat.com" },
]
classifiers = [
"License :: OSI Approved :: MIT License",
"Environment :: Console",
"Intended Audience :: Developers",
"Intended Audience :: Science/Research",
"Intended Audience :: System Administrators",
"Operating System :: MacOS :: MacOS X",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python",
"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 :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Utilities",
]
[project.license]
text = "MIT"
[project.optional-dependencies]
dev = [
# "pytest>=7.0",
"argcomplete~=3.0",
"bcrypt",
"black~=26.1",
"codespell~=2.0",
"flake8~=7.0",
"huggingface_hub~=1.3.1",
"hypothesis>=6.135.26",
"isort~=7.0",
"pytest~=9.0",
"wheel~=0.46.3",
"mypy",
"types-PyYAML",
"types-jsonschema",
"tox",
"requests"
]
cov = [
"ramalama[dev]",
"pytest-cov",
]
cov-detailed = [
"ramalama[cov]",
"pytest-func-cov",
"pytest-report",
"pytest-json",
"pytest-html",
]
[dependency-groups]
dev = [
"ramalama[cov-detailed]",
]
[project.urls]
Homepage = "https://github.com/containers/ramalama"
Repository = "https://github.com/containers/ramalama"
Issues = "https://github.com/containers/ramalama/issues"
Discussions = "https://github.com/containers/ramalama/discussions"
Discord = "https://discord.gg/MkCXuTRBUn"
Matrix = "https://matrix.to/#/#ramalama:fedoraproject.org"
[project.scripts]
ramalama = "ramalama.cli:main"
[tool.setuptools]
include-package-data = true
license-files = ["LICENSE"]
[tool.setuptools.package-data]
"ramalama" = ["py.typed"]
[tool.setuptools.dynamic]
version = {attr = "ramalama.version.version"}
[tool.black]
line-length = 120
skip-string-normalization = true
target-version = ["py310", "py311", "py312", "py313", "py314"]
extend-exclude = "(.history|build|dist|docs|hack)"
[tool.isort]
profile = "black"
line_length = 120
skip = [".venv", "venv", ".tox"]
[tool.codespell]
skip = ["build", "ramalama.egg-info", "logos", ".git", "venv", ".venv", ".tox", ".pixi"]
dictionary = ".codespelldict"
ignore-words-list = [
"assertin",
"cann",
"clos",
"creat",
"hastable",
"passt",
"ro",
"shouldnot",
]
check-hidden = true
[tool.ruff]
line-length = 120
target-version = "py312"
include = ["\\.pyi?$"]
exclude = [
"/\\.git",
"/\\.tox",
"/\\.venv",
"/\\.history",
"/build",
"/dist",
"/docs",
"/hack",
"/venv",
"/.pixi"
]
[tool.ruff.format]
preview = true
quote-style = "preserve"
[tool.coverage]
html.directory = "coverage/html"
xml.output = "coverage/coverage.xml"
json.output = "coverage/coverage.json"
lcov.output = "coverage/coverage.lcov"
[tool.pytest.ini_options]
testpaths = ["test"]
markers = ["e2e", "distro_integration"]
addopts = "-m 'not e2e' --color=yes --durations=10"
[tool.setuptools.packages.find]
include = ["ramalama", "ramalama.*"]
[tool.setuptools.data-files]
"share/ramalama" = ["shortnames/shortnames.conf", "docs/ramalama.conf"]
"share/ramalama/inference" = [
"inference-spec/schema/*.json",
"inference-spec/engines/*",
]
"share/man/man1" = ["docs/*.1"]
"share/man/man5" = ["docs/*.5"]
"share/man/man7" = ["docs/*.7"]
"share/bash-completion/completions" = ["completions/bash-completion/completions/*"]
"share/zsh/site-functions" = ["completions/zsh/site-functions/*"]
"share/fish/vendor_completions.d" = ["completions/fish/vendor_completions.d/*"]
[tool.check-wheel-contents]
# W002 fails on duplicate files, and completions for bash and zsh are identical
ignore = ["W002"]
[tool.tox]
[tool.tox.env_run_base]
package = "wheel"
extras = ["dev", "cov"]
pass_env = [
"GITHUB_ACTIONS",
"RAMALAMA_*",
]
commands = [
[
"pytest",
"-vvv",
"--tb=short",
"--basetemp={envtmpdir}",
{ replace = "posargs", extend = true },
],
]
[tool.tox.env.e2e]
deps = [
"mlx-lm ; sys_platform == 'darwin' and platform_machine == 'arm64'"
]
commands = [
[
"pytest",
"-m", "e2e",
"-vvv",
"--durations=10",
"--basetemp={envtmpdir}",
"--tb=short",
{ replace = "posargs", extend = true },
],
]
[tool.tox.env.coverage]
extras = ["dev", "cov", "cov-detailed"]
commands = [
[
"pytest",
"-vvv",
"--cov",
"--cov-report=xml",
"--cov-report=html",
"--cov-report=json",
"--cov-report=lcov",
"--cov-report=term",
"--tb=short",
"--basetemp={envtmpdir}",
{ replace = "posargs", extend = true },
],
]
[tool.pixi.workspace]
channels = ["conda-forge"]
platforms = ["linux-64"]
[tool.pixi.pypi-dependencies]
ramalama = { path = ".", editable = true }
[tool.pixi.environments]
default = { solve-group = "default", features = [] }
cov = { features = ["cov"], solve-group = "default" }
cov-detailed = { features = ["cov-detailed"], solve-group = "default" }
dev = { features = ["dev"], solve-group = "default" }
[tool.pixi.tasks]
[tool.pixi.dependencies]
tox = ">=4.30.2,<5"