content: [build-system]
  build-backend = "hatchling.build"
  requires = ["hatchling"]
  
  [project]
  authors = [
    {name = "Vizro Team"}
  ]
  classifiers = [
    "Programming Language :: Python",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12"
  ]
  dependencies = [
    "pandas",
    "tabulate",
    "openai>=1.0.0",
    "langchain>=0.3.0",
    "langgraph>=0.1.2",
    "python-dotenv>=1.0.0",  # TODO decide env var management to see if we need this
    "vizro>=0.1.32",
    "pydantic>=2.7.0",
    "langchain_openai",  # Base dependency, ie minimum model working
    "black",
    "autoflake"
  ]
  description = "Vizro-AI is a tool for generating data visualizations"
  dynamic = ["version"]
  license-files = {paths = ["LICENSE.txt"]}
  name = "vizro_ai"
  readme = "README.md"
  requires-python = ">=3.9"
  
  [project.optional-dependencies]
  anthropic = ["langchain-anthropic"]  # TODO: decide if we want to use this
  mistral = ["langchain-mistralai>=0.1.13"]  # TODO: decide if we want to use this
  
  [tool.coverage.paths]
  vizro = ["src/vizro_ai"]  # omit tests for clarity, although this can be useful to see what test lines DID NOT run
  
  [tool.coverage.report]
  exclude_lines = [
    "no cov",
    "if __name__ == .__main__.:",
    "if TYPE_CHECKING:"
  ]
  fail_under = 45
  show_missing = true
  skip_covered = true
  
  [tool.coverage.run]
  branch = true
  parallel = true
  source_pkgs = ["vizro_ai"]
  
  [tool.pytest.ini_options]
  filterwarnings = [
    "error",
    # Ignore until pandas 3 is released:
    "ignore:(?s).*Pyarrow will become a required dependency of pandas:DeprecationWarning",
    # Ignore deprecation warning until this is solved: https://github.com/plotly/dash/issues/2590:
    "ignore:HTTPResponse.getheader():DeprecationWarning",
    # Happens during dash_duo teardown in vizro_ai_ui tests. Not affecting functionality:
    "ignore:Exception in thread",
    "ignore:CapturedCallable function is excluded from the schema",
    # Ignore `Layout` FutureWarning until vizro 0.2.0 released:
    "ignore:The `Layout` model has been renamed `Grid`:FutureWarning",
    "ignore:The `Layout` model has been renamed",
    # Ignore langgraph.warnings.LangGraphDeprecatedSinceV10: Importing Send from langgraph.constants is deprecated.
    # Please use 'from langgraph.types import Send' instead. Deprecated in LangGraph V1.0 to be removed in V2.0.
    "ignore:Importing Send from langgraph.constants is deprecated"
  ]
  pythonpath = ["../tools/tests"]
  
  [tool.ruff]
  extend = "../pyproject.toml"
  src = ["src"]
  
  [tool.ruff.lint.extend-per-file-ignores]
  # Ignore print, line length, and import violations in Colab notebooks
  "examples/chart_by_vizro_ai.ipynb" = ["T201", "E501"]
  "examples/dashboard_by_vizro_ai.ipynb" = ["T201", "E402", "E501"]
  "examples/goodreads_tutorial/goodreads.ipynb" = ["T201", "E402", "E501", "W291", "F811"]
  