[project] name = "llm-abstraction" version = "0.1.0" description = "Provider-agnostic LLM abstraction layer" readme = "README.md" requires-python = ">=3.11" license = {text = "MIT"} authors = [ {name = "Affaan Mustafa", email = "affaan@example.com"} ] keywords = ["llm", "openai", "anthropic", "ollama", "ai"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] dependencies = [ "anthropic>=0.25.0", "openai>=1.30.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "pytest-cov>=4.1", "ruff>=0.4", "mypy>=1.10", "ruff>=0.4", ] test = [ "pytest>=8.0", "pytest-asyncio>=0.23", "pytest-cov>=4.1", "pytest-mock>=3.12", ] [project.urls] Homepage = "https://github.com/affaan-m/everything-claude-code" Repository = "https://github.com/affaan-m/everything-claude-code" [project.scripts] llm-select = "llm.cli.selector:main" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/llm"] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" filterwarnings = ["ignore::DeprecationWarning"] [tool.coverage.run] source = ["src/llm"] branch = true [tool.coverage.report] exclude_lines = [ "pragma: no cover", "if TYPE_CHECKING:", "raise NotImplementedError", ] [tool.ruff] src-path = ["src"] target-version = "py311" [tool.ruff.lint] select = ["E", "F", "I", "N", "W", "UP"] ignore = ["E501"] [tool.mypy] python_version = "3.11" src_paths = ["src"] warn_return_any = true warn_unused_ignores = true