120 lines
3.6 KiB
TOML
120 lines
3.6 KiB
TOML
# 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.
|
|
|
|
[project]
|
|
name = "neo4j-graphrag"
|
|
version = "1.16.0"
|
|
description = "Python package to allow easy integration to Neo4j's GraphRAG features"
|
|
authors = [
|
|
{name = "Neo4j, Inc", email = "team-gen-ai@neo4j.com"}
|
|
]
|
|
license = {text = "Apache License, Version 2.0"}
|
|
readme = "README.md"
|
|
requires-python = ">=3.10.0,<3.15"
|
|
dependencies = [
|
|
"neo4j>=5.17.0,<7.0.0",
|
|
"pydantic>=2.6.3,<3.0.0",
|
|
"fsspec>=2024.9.0",
|
|
"pypdf>=6.0.0,<7.0.0",
|
|
"json-repair>=0.44.1,<1.0.0",
|
|
"pyyaml>=6.0.2,<7.0.0",
|
|
"types-pyyaml>=6.0.12.20240917,<7.0.0",
|
|
"numpy>=2.0.0,<3.0.0; python_version >= '3.9' and python_version < '3.13'",
|
|
"numpy>=2.1.0,<3.0.0; python_version >= '3.13' and python_version < '3.15'",
|
|
"scipy>=1.13.0,<2.0.0; python_version >= '3.9' and python_version < '3.13'",
|
|
"scipy>=1.15.0,<2.0.0; python_version >= '3.13' and python_version < '3.15'",
|
|
"tenacity>=9.1.2,<10.0.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://neo4j.com/"
|
|
Repository = "https://github.com/neo4j/neo4j-graphrag-python"
|
|
|
|
[project.optional-dependencies]
|
|
weaviate = ["weaviate-client>=4.6.1,<5.0.0"]
|
|
pinecone = ["pinecone-client>=4.1.0,<5.0.0"]
|
|
google = ["google-cloud-aiplatform>=1.66.0,<2.0.0"]
|
|
cohere = ["cohere>=5.9.0,<6.0.0"]
|
|
anthropic = ["anthropic>=0.49.0,<0.50.0"]
|
|
bedrock = ["boto3>=1.35.0,<2.0.0"]
|
|
ollama = ["ollama>=0.4.4,<0.5.0"]
|
|
openai = ["openai>=1.51.1,<2.0.0"]
|
|
mistralai = ["mistralai>=1.0.3,<2.0.0"]
|
|
qdrant = ["qdrant-client>=1.11.3,<2.0.0"]
|
|
kg_creation_tools = ["neo4j-viz>=0.4.2,<0.5.0"]
|
|
sentence-transformers = ["sentence-transformers>=3.0.0,<4.0.0"]
|
|
experimental = [
|
|
"langchain-text-splitters>=0.3.0,<2.0.0",
|
|
"neo4j-viz>=0.4.2,<0.5.0",
|
|
"llama-index>=0.13.0,<0.14.0",
|
|
"pyarrow>=20.0.0", # ParquetWriter, Neo4jGraphParquetFormatter
|
|
]
|
|
examples = [
|
|
"langchain-openai>=0.2.2,<2.0.0",
|
|
"langchain-huggingface>=0.1.0,<2.0.0",
|
|
]
|
|
# NOTE: spaCy currently has a Python 3.14 import-time failure via its pydantic v1 path
|
|
# (see https://github.com/explosion/spaCy/issues/13895). Until upstream resolves this,
|
|
# only advertise/install the `nlp` extra on Python <3.14.
|
|
nlp = ["spacy==3.8.7; python_version < '3.14'"]
|
|
fuzzy-matching = ["rapidfuzz>=3.12.2,<4.0.0"]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"urllib3<2",
|
|
"ruff>=0.3.0,<0.4.0",
|
|
"mypy>=1.10.0,<2.0.0",
|
|
"pytest>=8.0.2,<9.0.0",
|
|
"coverage>=7.4.3,<8.0.0",
|
|
"pytest-asyncio>=0.23.8,<0.24.0",
|
|
"pre-commit>=3.6.2,<4.0.0; python_version >= '3.9'",
|
|
"sphinx>=7.2.6,<8.0.0; python_version >= '3.9'",
|
|
"enum-tools[sphinx]>=0.12.0,<0.13.0",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/neo4j_graphrag"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
filterwarnings = [
|
|
"",
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["src"]
|
|
|
|
[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
|