[build-system] requires = ["hatchling"] build-backend = "hatchling.build" [project] name = "querypilot" version = "0.1.1" description = "Eval-driven SQL reliability for AI agents." readme = "README.md" requires-python = ">=3.11" license = { text = "MIT" } authors = [{ name = "Nicholas Klos", email = "nklos@inceptaanalytics.ai" }] keywords = [ "sql", "ai-agents", "llm", "safety", "validation", "evals", "mcp", "langchain", "openai", "anthropic", ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Database", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed", ] dependencies = [ "psycopg[binary]>=3.0", "pydantic>=2.0", "pyyaml>=6.0", "sqlalchemy>=2.0", "sqlglot>=25.20", ] [project.optional-dependencies] dev = [ "duckdb>=1.1", "duckdb-engine>=0.13", "fastapi>=0.115", "httpx>=0.27", "langchain-core>=0.3", "mcp>=1.0", "pygwire>=0.2,<0.3", "pymysql>=1.1", "pytest>=8.0", "pyyaml>=6.0", ] server = [ "fastapi>=0.115", "uvicorn>=0.30", ] mcp = [ "mcp>=1.0", ] # Postgres wire-protocol codec for `querypilot proxy` (pure Python, no dependencies). proxy = [ "pygwire>=0.2,<0.3", ] openai = [ "openai>=1.0", ] anthropic = [ "anthropic>=0.40", ] llm = [ "openai>=1.0", "anthropic>=0.40", ] eval = [ "pyyaml>=6.0", ] langchain = [ "langchain-core>=0.3", ] llamaindex = [ "llama-index-core>=0.12", ] openai-agents = [ "openai-agents>=0.1", ] claude-agent = [ "claude-agent-sdk>=0.1", ] runtime = [ "fastapi>=0.115", "uvicorn>=0.30", "mcp>=1.0", ] # Database drivers. SQLite and Postgres (psycopg) work out of the box. duckdb = [ "duckdb>=1.1", "duckdb-engine>=0.13", ] mysql = [ "pymysql>=1.1", ] mssql = [ "pyodbc>=5.0", ] snowflake = [ "snowflake-sqlalchemy>=1.6", ] bigquery = [ "sqlalchemy-bigquery>=1.11", ] redshift = [ "sqlalchemy-redshift>=0.8", "psycopg2-binary>=2.9", ] trino = [ "trino[sqlalchemy]>=0.330", ] oracle = [ "oracledb>=2.0", ] databricks = [ "databricks-sqlalchemy>=2.0", ] [project.urls] Homepage = "https://github.com/nickklos10/QueryPilot" Repository = "https://github.com/nickklos10/QueryPilot" Issues = "https://github.com/nickklos10/QueryPilot/issues" Documentation = "https://github.com/nickklos10/QueryPilot#readme" Changelog = "https://github.com/nickklos10/QueryPilot/blob/main/CHANGELOG.md" [project.scripts] querypilot = "querypilot.cli:main" [tool.hatch.build.targets.wheel] packages = ["src/querypilot"] [tool.pytest.ini_options] pythonpath = ["src"] testpaths = ["tests"]