[project] name = "llm-gguf-tools" version = "0.1.0" description = "Tools to convert and quantise language models in GGUF format" readme = "README.md" license = { text = "Apache-2.0" } authors = [{ name = "Tom Foster", email = "tom@tomfos.tr" }] maintainers = [{ name = "Tom Foster", email = "tom@tomfos.tr" }] requires-python = ">=3.13" classifiers = [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ "gguf>=0", "llama-cpp-python>=0", "psutil>=7", "pydantic>=2", "safetensors>=0", "torch>=2", ] [project.urls] Homepage = "https://git.tomfos.tr/tom/llm-gguf-tools" "Bug Reports" = "https://git.tomfos.tr/tom/llm-gguf-tools/issues" "Source" = "https://git.tomfos.tr/tom/llm-gguf-tools" [dependency-groups] dev = ["mypy>=1", "pytest>=8", "ruff>=0", "types-psutil>=7", "uv>=0"] [tool.uv] package = true [[tool.uv.index]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" [tool.uv.sources] torch = { index = "pytorch-cpu" } [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project.scripts] quantise = "quantise:main" safetensors-to-gguf = "direct_safetensors_to_gguf:main" [tool.setuptools] packages = { find = {} } [tool.ruff] cache-dir = "/tmp/.ruff_cache" fix = true line-length = 100 preview = true show-fixes = false target-version = "py313" unsafe-fixes = true [tool.ruff.format] line-ending = "auto" skip-magic-trailing-comma = false [tool.ruff.lint] fixable = ["ALL"] ignore = [ "ANN401", # use of Any type "BLE001", # blind Exception usage "COM812", # missing trailing comma "CPY", # flake8-copyright "FBT", # boolean arguments "PLR0912", # too many branches "PLR0913", # too many arguments "PLR0915", # too many statements "PLR0917", # too many positional arguments "PLR2004", # magic numbers "PLR6301", # method could be static "RUF029", # async methods that don't await "S104", # binding to all interfaces "S110", # passed exceptions "S404", # use of subprocess "S603", # check subprocess input "S607", # subprocess with partial path "TRY301", # raise inside try block ] select = ["ALL"] unfixable = [ "F841", # local variable assigned but never used "RUF100", # unused noqa comments "T201", # don't strip print statement ] [tool.ruff.lint.isort] combine-as-imports = true required-imports = ["from __future__ import annotations"] [tool.ruff.lint.pydocstyle] convention = "google" [tool.mypy] exclude = ["work/"]