nl-sql / pyproject.toml
liovina's picture
Deploy NL_SQL HEAD to HF Space
424ea19 verified
Raw
History Blame Contribute Delete
2.59 kB
[project]
name = "nl-sql"
version = "0.1.0"
description = "Portfolio demo: NL→SQL assistant with measurable accuracy, schema-RAG, safety guards"
readme = "README.md"
requires-python = ">=3.12,<3.14"
authors = [{ name = "Julia Edomskikh" }]
license = { text = "MIT" }
dependencies = [
"fastapi>=0.115",
"uvicorn[standard]>=0.32",
"pydantic>=2.9",
"pydantic-settings>=2.6",
"openai>=1.55",
"httpx>=0.27",
"python-dotenv>=1.0",
"sqlalchemy>=2.0",
"psycopg[binary]>=3.2",
"sqlglot>=25.0",
"requests>=2.32",
"chromadb>=0.5",
"gdown>=5.2",
"langgraph>=0.2",
"diskcache>=5.6",
"streamlit>=1.40",
"plotly>=5.24",
"pandas>=2.2",
]
[project.optional-dependencies]
dev = [
"pytest>=8.3",
"pytest-asyncio>=0.24",
"pytest-cov>=5.0",
"respx>=0.21",
"ruff>=0.7",
"mypy>=1.13",
"types-requests",
]
ui = [
"streamlit>=1.40",
"plotly>=5.24",
"pandas>=2.2",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/nl_sql"]
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-ra --strict-markers --strict-config"
asyncio_mode = "auto"
filterwarnings = [
"error",
# langgraph 0.6.x emits this on import via langchain_core.cache.base —
# upstream issue, not actionable from our code.
"default::langchain_core._api.deprecation.LangChainPendingDeprecationWarning",
]
[tool.ruff]
line-length = 100
target-version = "py313"
src = ["src", "tests", "app"]
[tool.ruff.lint]
select = [
"E", "W", # pycodestyle
"F", # pyflakes
"I", # isort
"N", # pep8-naming
"UP", # pyupgrade
"B", # bugbear
"SIM", # simplify
"RUF", # ruff-specific
"PT", # pytest
"RET", # return
"PIE", # misc
]
ignore = [
"E501", # line length handled by formatter
]
[tool.ruff.lint.per-file-ignores]
"tests/**" = ["S101"]
[tool.mypy]
python_version = "3.13"
strict = true
mypy_path = "src"
explicit_package_bases = true
disallow_untyped_decorators = false # FastAPI decorators are fine
[[tool.mypy.overrides]]
module = ["tests.*"]
disallow_untyped_defs = false
[[tool.mypy.overrides]]
module = ["sqlglot.*"]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = ["chromadb.*"]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = ["diskcache.*"]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = ["plotly.*", "streamlit", "pandas", "pandas.*"]
ignore_missing_imports = true