sichaolong's picture
Upload folder using huggingface_hub
e331e72 verified
[tool.poetry]
name = "graphrag"
# Maintainers: do not change the version here manually, use ./scripts/release.sh
version = "0.1.1"
description = ""
authors = [
"Alonso Guevara Fernández <[email protected]>",
"Andrés Morales Esquivel <[email protected]>",
"Chris Trevino <[email protected]>",
"David Tittsworth <[email protected]>",
"Dayenne de Souza <[email protected]>",
"Gaudy Blanco Meneses <[email protected]>",
"Ha Trinh <[email protected]>",
"Jonathan Larson <[email protected]>",
"Kate Lytvynets <[email protected]>",
"Mónica Carvajal",
"Nathan Evans <[email protected]>",
"Rodrigo Racanicci <[email protected]>",
"Sarah Smith <[email protected]>",
]
license = "MIT"
readme = "README.md"
packages = [{ include = "graphrag" }]
[tool.poetry-dynamic-versioning]
enable = true
style = "pep440"
vcs = "git"
bump = true
format-jinja = """
{%- if distance == 0 -%}
{{ serialize_pep440(base, stage, revision) }}
{%- else -%}
{{ serialize_pep440(base, stage, revision, dev=distance) }}
{%- endif -%}
"""
[tool.poetry.dependencies]
python = ">=3.10,<3.13"
environs = "^11.0.0"
datashaper = "^0.0.49"
# Vector Stores
azure-search-documents = "^11.4.0"
lancedb = "^0.10.0"
# Event Loops
uvloop = { version = "^0.19.0", markers = "platform_system != 'Windows'" }
nest-asyncio = { version = "^1.6.0", markers = "platform_system == 'Windows'" }
# Async IO
aiolimiter = "^1.1.0"
aiofiles = "^24.1.0"
# LLM
openai = "^1.35.7"
nltk = "3.8.1"
tiktoken = "^0.7.0"
# Data-Sci
numba = "0.60.0"
numpy = "^1.25.2"
graspologic = "^3.4.1"
networkx = "^3"
fastparquet = "^2024.2.0"
# 1.13.0 was a footgun
scipy = "1.12.0"
# Configuration
pyyaml = "^6.0.1"
pyaml-env = "^1.2.1"
python-dotenv = "^1.0.0"
# Network
tenacity = "^8.5.0"
swifter = "^1.4.0"
pydantic = "^2"
rich = "^13.6.0"
textual = "^0.72.0"
devtools = "^0.12.2"
typing-extensions = "^4.12.2"
#Azure
azure-storage-blob = "^12.19.0"
azure-identity = "^1.17.1"
[tool.poetry.group.dev.dependencies]
coverage = "^7.6.0"
ipykernel = "^6.29.4"
jupyter = "^1.0.0"
nbconvert = "^7.16.3"
poethepoet = "^0.26.0"
pyright = "^1.1.371"
pytest = "^8.2.0"
pytest-asyncio = "^0.23.4"
pytest-timeout = "^2.3.1"
ruff = "^0.5.2"
semversioner = "^2.0.3"
update-toml = "^0.2.1"
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning>=1.0.0,<2.0.0"]
build-backend = "poetry_dynamic_versioning.backend"
[tool.poe.tasks]
_sort_imports = "ruff check --select I --fix . --preview"
_format_code = "ruff format . --preview"
_ruff_check = 'ruff check . --preview'
_pyright = "pyright"
_convert_local_search_nb = 'jupyter nbconvert --output-dir=docsite/posts/query/notebooks/ --output="{notebook_name}_nb" --template=docsite/nbdocsite_template --to markdown examples_notebooks/local_search.ipynb'
_convert_global_search_nb = 'jupyter nbconvert --output-dir=docsite/posts/query/notebooks/ --output="{notebook_name}_nb" --template=docsite/nbdocsite_template --to markdown examples_notebooks/global_search.ipynb'
_semversioner_release = "semversioner release"
_semversioner_changelog = "semversioner changelog > CHANGELOG.md"
_semversioner_update_toml_version = "update-toml --path tool.poetry.version --value \"$(semversioner current-version)\" pyproject.toml"
coverage_report = 'coverage report --omit "**/tests/**" --show-missing'
check_format = 'ruff format . --check --preview'
fix = "ruff --preview check --fix ."
fix_unsafe = "ruff check --preview --fix --unsafe-fixes ."
_test_all = "coverage run -m pytest ./tests"
test_unit = "pytest ./tests/unit"
test_integration = "pytest ./tests/integration"
test_smoke = "pytest ./tests/smoke"
index = "python -m graphrag.index"
query = "python -m graphrag.query"
prompt_tune = "python -m graphrag.prompt_tune"
# Pass in a test pattern
test_only = "pytest -s -k"
[[tool.poe.tasks.release]]
sequence = [
'_semversioner_release',
'_semversioner_changelog',
'_semversioner_update_toml_version',
]
ignore_fail = 'return_non_zero'
[[tool.poe.tasks.convert_docsite_notebooks]]
sequence = ['_convert_local_search_nb', '_convert_global_search_nb']
ignore_fail = 'return_non_zero'
[[tool.poe.tasks.format]]
sequence = ['_sort_imports', '_format_code']
ignore_fail = 'return_non_zero'
[[tool.poe.tasks.check]]
sequence = ['check_format', '_ruff_check', '_pyright']
ignore_fail = 'return_non_zero'
[[tool.poe.tasks.test]]
sequence = ['_test_all', 'coverage_report']
ignore_fail = 'return_non_zero'
[tool.ruff]
target-version = "py310"
extend-include = ["*.ipynb"]
[tool.ruff.format]
docstring-code-format = true
docstring-code-line-length = 20
[tool.ruff.lint]
select = [
"E4",
"E7",
"E9",
"W291",
"YTT",
"T10",
"ICN",
"INP",
"Q",
"RSE",
"SLOT",
"INT",
"FLY",
"LOG",
"C90",
"T20",
"D",
"RET",
"PD",
"N",
"PIE",
"SIM",
"S",
"G",
"ERA",
"ASYNC",
"TID",
"UP",
"SLF",
"BLE",
"C4",
"I",
"F",
"A",
"ARG",
"PTH",
"RUF",
"B",
"TCH",
"DTZ",
"PYI",
"PT",
"EM",
"TRY",
"PERF",
"CPY",
# "FBT", # use named arguments for boolean flags
# "TD", # todos
# "FIX", # fixme
# "FURB" # preview rules
# ANN # Type annotations, re-enable when we get bandwidth
]
ignore = [
# Deprecated Rules
"ANN101",
"ANN102",
# Conflicts with interface argument checking
"ARG002",
"ANN204",
# TODO: Inspect these pandas rules for validity
"PD002", # prevents inplace=True
# TODO RE-Enable when we get bandwidth
"PERF203", # Needs restructuring of errors, we should bail-out on first error
"C901", # needs refactoring to remove cyclomatic complexity
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = ["S", "D", "ANN", "T201", "ASYNC", "ARG", "PTH", "TRY"]
"examples/*" = ["S", "D", "ANN", "T201", "PTH", "TRY", "PERF"]
"graphrag/index/config/*" = ["TCH"]
"*.ipynb" = ["T201"]
[tool.ruff.lint.flake8-builtins]
builtins-ignorelist = ["input", "id", "bytes"]
[tool.ruff.lint.pydocstyle]
convention = "numpy"
# https://github.com/microsoft/pyright/blob/9f81564a4685ff5c55edd3959f9b39030f590b2f/docs/configuration.md#sample-pyprojecttoml-file
[tool.pyright]
include = ["graphrag", "tests", "examples", "examples_notebooks"]
exclude = ["**/node_modules", "**/__pycache__"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
timeout = 600
# log_cli = true
# log_cli_level = "INFO"