From 253cc3b9e4c859c7826a857abaa53829a2621dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20MANSUY?= Date: Thu, 4 Dec 2025 19:20:01 +0800 Subject: [PATCH] fix: sync pyproject.toml from upstream --- pyproject.toml | 93 +++++++++++++++++++++++++------------------------- 1 file changed, 46 insertions(+), 47 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 733b4cfe..761a3309 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,13 +23,13 @@ classifiers = [ dependencies = [ "aiohttp", "configparser", - "dotenv", - "future", + "google-api-core>=2.0.0,<3.0.0", + "google-genai>=1.0.0,<2.0.0", "json_repair", "nano-vectordb", "networkx", - "numpy", - "pandas>=2.0.0,<2.3.0", + "numpy>=1.24.0,<2.0.0", + "pandas>=2.0.0,<2.4.0", "pipmaster", "pydantic", "pypinyin", @@ -41,18 +41,24 @@ dependencies = [ ] [project.optional-dependencies] +# Test framework dependencies (for CI/CD and testing) +pytest = [ + "pytest>=8.4.2", + "pytest-asyncio>=1.2.0", + "pre-commit", + "ruff", +] + api = [ # Core dependencies "aiohttp", "configparser", - "dotenv", - "future", "json_repair", "nano-vectordb", "networkx", - "numpy", - "openai>=1.0.0,<2.0.0", - "pandas>=2.0.0,<2.3.0", + "numpy>=1.24.0,<2.0.0", + "openai>=2.0.0,<3.0.0", + "pandas>=2.0.0,<2.4.0", "pipmaster", "pydantic", "pypinyin", @@ -61,6 +67,8 @@ api = [ "tenacity", "tiktoken", "xlsxwriter>=3.1.0", + "google-api-core>=2.0.0,<3.0.0", + "google-genai>=1.0.0,<2.0.0", # API-specific dependencies "aiofiles", "ascii_colors", @@ -68,9 +76,9 @@ api = [ "distro", "fastapi", "httpcore", - "httpx", + "httpx>=0.28.1", "jiter", - "passlib[bcrypt]", + "bcrypt>=4.0.0", "psutil", "PyJWT>=2.8.0,<3.0.0", "python-jose[cryptography]", @@ -88,81 +96,64 @@ api = [ # Advanced document processing engine (optional) docling = [ - "docling>=2.0.0,<3.0.0", + # On macOS, pytorch and frameworks use Objective-C are not fork-safe, + # and not compatible to gunicorn multi-worker mode + "docling>=2.0.0,<3.0.0; sys_platform != 'darwin'", ] # Offline deployment dependencies (layered design for flexibility) -<<<<<<< HEAD -<<<<<<< HEAD -offline-docs = [ - # Document processing dependencies - "docling>=1.0.0,<3.0.0", - "pypdf2>=3.0.0", - "python-docx>=0.8.11,<2.0.0", - "python-pptx>=0.6.21,<2.0.0", - "openpyxl>=3.0.0,<4.0.0", -] - -======= ->>>>>>> 4b31942e (refactor: move document deps to api group, remove dynamic imports) -======= ->>>>>>> 69a0b74c (refactor: move document deps to api group, remove dynamic imports) offline-storage = [ # Storage backend dependencies - "redis>=5.0.0,<7.0.0", + "redis>=5.0.0,<8.0.0", "neo4j>=5.0.0,<7.0.0", "pymilvus>=2.6.2,<3.0.0", "pymongo>=4.0.0,<5.0.0", "asyncpg>=0.29.0,<1.0.0", - "qdrant-client>=1.7.0,<2.0.0", + "qdrant-client>=1.11.0,<2.0.0", ] offline-llm = [ # LLM provider dependencies - "openai>=1.0.0,<2.0.0", + "openai>=2.0.0,<3.0.0", "anthropic>=0.18.0,<1.0.0", "ollama>=0.1.0,<1.0.0", "zhipuai>=2.0.0,<3.0.0", "aioboto3>=12.0.0,<16.0.0", "voyageai>=0.2.0,<1.0.0", "llama-index>=0.9.0,<1.0.0", + "google-api-core>=2.0.0,<3.0.0", + "google-genai>=1.0.0,<2.0.0", ] offline = [ # Complete offline package (includes api for document processing, plus storage and LLM) "lightrag-hku[api,offline-storage,offline-llm]", -<<<<<<< HEAD -======= +] + +test = [ + "lightrag-hku[api]", + "pytest>=8.4.2", + "pytest-asyncio>=1.2.0", + "pre-commit", + "ruff", ] evaluation = [ - # RAG evaluation dependencies (RAGAS framework) + "lightrag-hku[api]", "ragas>=0.3.7", "datasets>=4.3.0", - "httpx>=0.28.1", - "pytest>=8.4.2", - "pytest-asyncio>=1.2.0", ] observability = [ # LLM observability and tracing dependencies "langfuse>=3.8.1", ->>>>>>> 69a0b74c (refactor: move document deps to api group, remove dynamic imports) -] - -evaluation = [ - # RAG evaluation dependencies (RAGAS framework) - "ragas>=0.3.7", - "datasets>=4.3.0", - "httpx>=0.28.1", - "pytest>=8.4.2", - "pytest-asyncio>=1.2.0", ] [project.scripts] lightrag-server = "lightrag.api.lightrag_server:main" lightrag-gunicorn = "lightrag.api.run_with_gunicorn:main" lightrag-download-cache = "lightrag.tools.download_cache:main" +lightrag-clean-llmqc = "lightrag.tools.clean_llm_query_cache:main" [project.urls] Homepage = "https://github.com/HKUDS/LightRAG" @@ -181,7 +172,15 @@ include-package-data = true version = {attr = "lightrag.__version__"} [tool.setuptools.package-data] -lightrag = ["api/webui/**/*"] +lightrag = ["api/webui/**/*", "api/static/**/*"] + +[tool.pytest.ini_options] +asyncio_mode = "auto" +asyncio_default_fixture_loop_scope = "function" +testpaths = ["tests"] +python_files = ["test_*.py"] +python_classes = ["Test*"] +python_functions = ["test_*"] [tool.ruff] target-version = "py310"