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