content: # Copyright (c) "Neo4j"
  # Neo4j Sweden AB [https://neo4j.com]
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     https://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  [tool.poetry]
  name = "neo4j-graphrag"
  version = "1.10.0"
  description = "Python package to allow easy integration to Neo4j's GraphRAG features"
  authors = ["Neo4j, Inc <team-gen-ai@neo4j.com>"]
  license = "Apache License, Version 2.0"
  readme = "README.md"
  homepage = "https://neo4j.com/"
  repository = "https://github.com/neo4j/neo4j-graphrag-python"
  
  [[tool.poetry.packages]]
  include = "neo4j_graphrag"
  from = "src"
  
  [tool.poetry.dependencies]
  python = ">=3.9.0,<3.14"
  neo4j = "^5.17.0"
  pydantic = "^2.6.3"
  fsspec = "^2024.9.0"
  pypdf = "^6.0.0"
  json-repair = "^0.44.1"
  pyyaml = "^6.0.2"
  types-pyyaml = "^6.0.12.20240917"
  # optional deps
  langchain-text-splitters = {version = "^0.3.0", optional = true }
  neo4j-viz = {version = "^0.4.2", optional = true }
  weaviate-client = {version = "^4.6.1", optional = true }
  pinecone-client = {version = "^4.1.0", optional = true }
  google-cloud-aiplatform = {version = "^1.66.0", optional = true }
  cohere = {version = "^5.9.0", optional = true}
  mistralai = {version = "^1.0.3", optional = true}
  qdrant-client = {version = "^1.11.3", optional = true}
  llama-index = {version = "^0.13.0", optional = true }
  openai = {version = "^1.51.1", optional = true }
  anthropic = {version = "^0.49.0", optional = true}
  sentence-transformers = {version = "^3.0.0", optional = true }
  ollama = {version = "^0.4.4", optional = true}
  spacy = {version = "3.8.7", optional = true}
  rapidfuzz = {version ="^3.12.2", optional = true}
  numpy = [
    { version = "^2.0.0", python = ">=3.9,<3.13" },
    { version = "^2.1.0", python = ">=3.13,<3.14" }
  ]
  scipy = [
    { version = "^1.13.0", python = ">=3.9,<3.13" },
    { version = "^1.15.0", python = ">=3.13,<3.14" }
  ]
  tenacity = "^9.1.2"
  
  [tool.poetry.group.dev.dependencies]
  urllib3 = "<2"
  ruff = "^0.3.0"
  mypy = "^1.10.0"
  pytest = "^8.0.2"
  coverage = "^7.4.3"
  pytest-asyncio = "^0.23.8"
  pre-commit = { version = "^3.6.2", python = "^3.9" }
  sphinx = { version = "^7.2.6", python = "^3.9" }
  langchain-openai = {version = "^0.2.2", optional = true }
  langchain-huggingface = {version = "^0.1.0", optional = true }
  enum-tools = {extras = ["sphinx"], version = "^0.12.0"}
  
  [tool.poetry.extras]
  weaviate = ["weaviate-client"]
  pinecone = ["pinecone-client"]
  google = ["google-cloud-aiplatform"]
  cohere = ["cohere"]
  anthropic = ["anthropic"]
  ollama = ["ollama"]
  openai = ["openai"]
  mistralai = ["mistralai"]
  qdrant = ["qdrant-client"]
  kg_creation_tools = ["neo4j-viz"]
  sentence-transformers = ["sentence-transformers"]
  experimental = ["langchain-text-splitters", "neo4j-viz", "llama-index"]
  examples = ["langchain-openai", "langchain-huggingface"]
  nlp = ["spacy"]
  fuzzy-matching = ["rapidfuzz"]
  
  [build-system]
  requires = ["poetry-core>=1.0.0"]
  build-backend = "poetry.core.masonry.api"
  
  [tool.pytest.ini_options]
  testpaths = ["tests"]
  filterwarnings = [
      "",
  ]
  
  [tool.coverage.paths]
  source = ["src"]
  
  [tool.mypy]
  strict = true
  ignore_missing_imports = true
  allow_subclassing_any = true
  disallow_untyped_calls = false
  exclude = ["docs"]
  
  [[tool.mypy.overrides]]
  module = [
      "weaviate.*",
      "sentence_transformers.*",
      "conftest",
  ]
  ignore_missing_imports = true
  