[tool.poetry] name = "llm-chat" version = "1.1.0" description = "A general CLI interface for large language models." authors = ["Paul Harrison "] readme = "README.md" packages = [{include = "llm_chat", from = "src"}] [tool.poetry.dependencies] python = ">=3.11,<3.12" openai = "^1.7" pydantic = "^2.1.1" pydantic-settings = "^2.0.2" typer = {extras = ["all"], version = "^0.9.0"} prompt-toolkit = "^3.0.39" [tool.poetry.group.test.dependencies] pytest = "^7.4.0" black = "^23.7.0" isort = "^5.12.0" ruff = "^0.0.284" mypy = "^1.5.0" pydocstyle = "^6.3.0" types-attrs = "^19.1.0" [tool.poetry.scripts] llm = "llm_chat.cli:app" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.black] line-length = 88 target-version = ['py311'] include = '\.pyi?$' [tool.isort] multi_line_output = 3 profile = "black" src_paths = ["src", "tests"] [tool.mypy] python_version = "3.11" disallow_untyped_calls = false pretty = true show_error_codes = true strict = true warn_unreachable = true [tool.pydocstyle] ignore = "D100,D104,D107,D203,D213,D406,D407,D413" [tool.pytest.ini_options] addopts = ["--verbose"] pythonpath = ["src"] testpaths = ["tests"] [tool.ruff] exclude = [ ".git", ".ruff_cache", ".vscode", ] fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"] line-length = 88 select = ["E", "F"] target-version = "py311" [tool.ruff.mccabe] max-complexity = 10