[project] name = "llmfit" dynamic = ["version", "license-expression"] license-files = ["LICENSE"] description = "Hundreds of models & providers. One command to find what runs on your hardware." authors = [ { name = "Alex Jones", email = "alexsimonjones@gmail.com" } ] readme = "../README.md" requires-python = ">=3.8" keywords = ["llm", "cli", "machine-learning", "model-management"] classifiers = [ "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] [project.urls] Homepage = "https://github.com/AlexsJones/llmfit" "Bug Tracker" = "https://github.com/AlexsJones/llmfit/issues" [build-system] requires = ["hatchling", "packaging", "tomli"] build-backend = "hatchling.build" [tool.hatch.metadata.hooks.custom] path = "hatch_build.py" [tool.hatch.build.hooks.custom] path = "hatch_build.py" [dependency-groups] dev = [ "hatchling", "ipython>=8.12.3", "pytest>=8", "ruff>=0.15.8", "tomli", "ty>=0.0.27", ] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "rust_integration: marks tests that exercise the compiled Rust binary (run when Rust code changes)", ] [tool.ruff] line-length = 120 [tool.ruff.lint] select = ["ALL"] ignore = [ "E501", # Handled by ruff format (line-too-long) "D100", # Missing docstring in public module "D104", # Missing docstring in public package "D203", # Conflicts with D211 "D212", # Conflicts with D213 (code uses second-line summary style) "S603", # Gave too many false positives with safe uses of subprocess.run "COM812", # This rule is redundant when using the formatter, which enforces trailing commas "TD002", # Don't need author info on todo items "TD003", # Don't need issues links on todo items ] [tool.ruff.lint.per-file-ignores] "hatch_build.py" = [ "INP001", # Standalone build script, not a package module "T201", # Calls to print() are intentional in our build hooks "TRY003", # Inline exception messages are fine in a build utility "EM101", # In-line exception messages fine in a build utility "EM102", # Same as EM101, but with f-strings ] "tests/*" = [ "S101", # Assert statements are allowed in tests "INP001", # No __init__.py needed in tests/ "PLR2004", # Magic values are fine in tests ] [tool.ruff.lint.pydocstyle] convention = "numpy" [tool.ty.environment] python-version = "3.8"