pyproject.toml (109 lines of code) (raw):

[project] name = "databao" description = "databao: NL queries for data" dynamic = ["version"] # Based on the git tag requires-python = ">=3.10, <3.15" readme = "README.md" license = "Apache-2.0 AND LicenseRef-Additional-Terms" license-files = ["LICENSE.md"] authors = [] classifiers = [ "Programming Language :: Python :: 3", "Operating System :: OS Independent", ] dependencies = [ "pandas>=2.2.2", "pydantic>=2.8.0,<3", "langgraph>=0.6.8", "langchain>=1.1.3", "langchain-openai>=1.1.3", "langchain-anthropic>=1.3.0", "langchain-ollama>=1.0.0", "duckdb>=1.3.0", "jinja2>=3.1.6", "tabulate>=0.9.0", "psycopg2-binary>=2.9.10", "matplotlib>=3.10.0", "edaplot-vl~=0.1.4", "diskcache>=5.6.3", "sqlalchemy>=2.0.45", ] [project.urls] Homepage = "https://databao.app/" Source = "https://github.com/JetBrains/databao" [project.optional-dependencies] examples = [ "notebook>=7.4.7", "python-dotenv>=1.1.1", ] [build-system] requires = ["hatchling", "uv-dynamic-versioning"] build-backend = "hatchling.build" [tool.hatch.version] source = "uv-dynamic-versioning" [tool.uv-dynamic-versioning] # Use `git tag -a v0.0.0 -m "v0.0.0"` to create a tag. vcs = "git" style = "pep440" fallback-version = "0.0.0" # https://github.com/ninoseki/uv-dynamic-versioning/blob/main/docs/tips.md bump = true [tool.hatch.build.targets.sdist] include = ["/databao"] [tool.hatch.build.targets.wheel] include = ["/databao"] [dependency-groups] dev = [ "mypy>=1.18.2", "pandas-stubs>=2.3.2.250926", "pre-commit>=4.3.0", "pytest>=7.4.0", "ruff>=0.13.2", "types-pyyaml>=6.0.12.20250915", "typing-extensions>=4.15.0", "vega-datasets>=0.9.0", ] [tool.mypy] strict = true show_error_codes = true check_untyped_defs = true disallow_untyped_defs = true warn_redundant_casts = true warn_unused_configs = true warn_unused_ignores = true allow_redefinition_new = true local_partial_types = true files = ["databao", "tests", "examples"] plugins = ["pydantic.mypy", "sqlalchemy.ext.mypy.plugin"] [tool.ruff] line-length = 120 extend-exclude = ["*.ipynb"] [tool.ruff.lint] select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-simplify "SIM", # isort "I", # ruff-specific "RUF", # Prefer absolute imports over relative ones "TID252", ] [tool.ruff.lint.flake8-tidy-imports] # Disallow all relative imports. ban-relative-imports = "all" [tool.uv] # https://github.com/ninoseki/uv-dynamic-versioning/blob/main/docs/tips.md#build-caching-and-editable-installs cache-keys = [{ file = "pyproject.toml" }, { git = { commit = true, tags = true }}] [tool.pytest.ini_options] addopts = ["--strict-markers"] markers = [ "apikey: marks tests that require an API key", ]