Depend on unstructured[xlsx] so spreadsheet ingest has required deps.
CI / test (pull_request) Successful in 11s
Unit Tests / test (pull_request) Successful in 10s

Bare unstructured omits networkx/msoffcrypto/xlrd; xlsx partition then
crashes reindex. The [xlsx] extra is the supported install path.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-02 13:56:21 -05:00
co-authored by Cursor
parent 8ff3ad83d1
commit f0b8973334
2 changed files with 36 additions and 6 deletions
+3 -2
View File
@@ -31,7 +31,9 @@ dependencies = [
# Supported: langgraph>=1.2.5,<1.3 (matches langchain 1.3.x). # Supported: langgraph>=1.2.5,<1.3 (matches langchain 1.3.x).
"langgraph>=1.2.5,<1.3.0", "langgraph>=1.2.5,<1.3.0",
"chromadb==1.3.5", "chromadb==1.3.5",
"unstructured==0.18.21", # Fallback loader uses UnstructuredFileLoader; xlsx partition needs the
# [xlsx] extra (networkx, msoffcrypto-tool, xlrd, openpyxl, pandas).
"unstructured[xlsx]==0.18.21",
"pypdf==6.4.0", "pypdf==6.4.0",
"python-docx==1.2.0", "python-docx==1.2.0",
"docx2txt==0.8", "docx2txt==0.8",
@@ -47,7 +49,6 @@ dependencies = [
"python-dateutil==2.9.0.post0", "python-dateutil==2.9.0.post0",
"pytz==2025.2", "pytz==2025.2",
"stripe>=12.0.0,<14.0.0", "stripe>=12.0.0,<14.0.0",
"networkx>=3.0,<4",
] ]
[dependency-groups] [dependency-groups]
Generated
+33 -4
View File
@@ -651,7 +651,6 @@ dependencies = [
{ name = "langchain-text-splitters" }, { name = "langchain-text-splitters" },
{ name = "langgraph" }, { name = "langgraph" },
{ name = "matplotlib" }, { name = "matplotlib" },
{ name = "networkx" },
{ name = "numpy" }, { name = "numpy" },
{ name = "ollama" }, { name = "ollama" },
{ name = "openpyxl" }, { name = "openpyxl" },
@@ -664,7 +663,7 @@ dependencies = [
{ name = "pytz" }, { name = "pytz" },
{ name = "requests" }, { name = "requests" },
{ name = "stripe" }, { name = "stripe" },
{ name = "unstructured" }, { name = "unstructured", extra = ["xlsx"] },
{ name = "uvicorn" }, { name = "uvicorn" },
{ name = "whitenoise" }, { name = "whitenoise" },
] ]
@@ -700,7 +699,6 @@ requires-dist = [
{ name = "langchain-text-splitters", specifier = "==1.1.2" }, { name = "langchain-text-splitters", specifier = "==1.1.2" },
{ name = "langgraph", specifier = ">=1.2.5,<1.3.0" }, { name = "langgraph", specifier = ">=1.2.5,<1.3.0" },
{ name = "matplotlib", specifier = "==3.10.7" }, { name = "matplotlib", specifier = "==3.10.7" },
{ name = "networkx", specifier = ">=3.0,<4" },
{ name = "numpy", specifier = "==2.2.6" }, { name = "numpy", specifier = "==2.2.6" },
{ name = "ollama", specifier = "==0.6.1" }, { name = "ollama", specifier = "==0.6.1" },
{ name = "openpyxl", specifier = "==3.1.5" }, { name = "openpyxl", specifier = "==3.1.5" },
@@ -713,7 +711,7 @@ requires-dist = [
{ name = "pytz", specifier = "==2025.2" }, { name = "pytz", specifier = "==2025.2" },
{ name = "requests", specifier = ">=2.32,<3" }, { name = "requests", specifier = ">=2.32,<3" },
{ name = "stripe", specifier = ">=12.0.0,<14.0.0" }, { name = "stripe", specifier = ">=12.0.0,<14.0.0" },
{ name = "unstructured", specifier = "==0.18.21" }, { name = "unstructured", extras = ["xlsx"], specifier = "==0.18.21" },
{ name = "uvicorn", specifier = "==0.38.0" }, { name = "uvicorn", specifier = "==0.38.0" },
{ name = "whitenoise", specifier = "==6.9.0" }, { name = "whitenoise", specifier = "==6.9.0" },
] ]
@@ -2290,6 +2288,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/d2/8a/27e2e57055176e366a46b85d02d68e7a5bcfbdd8474c9706375d965f24d3/msgpack-1.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:0adcf06ffde0777c0e1a9b771a2b1c4226ba1bbf748c8efcc02fcdeca3299107", size = 71160, upload-time = "2026-06-18T16:13:51.498Z" }, { url = "https://files.pythonhosted.org/packages/d2/8a/27e2e57055176e366a46b85d02d68e7a5bcfbdd8474c9706375d965f24d3/msgpack-1.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:0adcf06ffde0777c0e1a9b771a2b1c4226ba1bbf748c8efcc02fcdeca3299107", size = 71160, upload-time = "2026-06-18T16:13:51.498Z" },
] ]
[[package]]
name = "msoffcrypto-tool"
version = "6.0.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "cryptography" },
{ name = "olefile" },
]
sdist = { url = "https://files.pythonhosted.org/packages/a6/34/6250bdddaeaae24098e45449ea362fb3555a65fba30cad0ad5630ea48d1a/msoffcrypto_tool-6.0.0.tar.gz", hash = "sha256:9a5ebc4c0096b42e5d7ebc2350afdc92dc511061e935ca188468094fdd032bbe", size = 40593, upload-time = "2026-01-12T08:59:56.73Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/3c/85/9e359fa9279e1d6861faaf9b6f037a3226374deb20a054c3937be6992013/msoffcrypto_tool-6.0.0-py3-none-any.whl", hash = "sha256:46c394ed5d9641e802fc79bf3fb0666a53748b23fa8c4aa634ae9d30d46fe397", size = 48791, upload-time = "2026-01-12T08:59:55.394Z" },
]
[[package]] [[package]]
name = "multidict" name = "multidict"
version = "6.7.1" version = "6.7.1"
@@ -4251,6 +4262,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/98/e8ddcfadd762f8f69d84e14498c28adefdd8e2008f443077495984405c45/unstructured-0.18.21-py3-none-any.whl", hash = "sha256:8611c06017199fd7f131f3fbf586a458fd83074fc6aadac23640f6450a00e377", size = 1783346, upload-time = "2025-11-24T14:57:36.863Z" }, { url = "https://files.pythonhosted.org/packages/c2/98/e8ddcfadd762f8f69d84e14498c28adefdd8e2008f443077495984405c45/unstructured-0.18.21-py3-none-any.whl", hash = "sha256:8611c06017199fd7f131f3fbf586a458fd83074fc6aadac23640f6450a00e377", size = 1783346, upload-time = "2025-11-24T14:57:36.863Z" },
] ]
[package.optional-dependencies]
xlsx = [
{ name = "msoffcrypto-tool" },
{ name = "networkx" },
{ name = "openpyxl" },
{ name = "pandas" },
{ name = "xlrd" },
]
[[package]] [[package]]
name = "unstructured-client" name = "unstructured-client"
version = "0.42.12" version = "0.42.12"
@@ -4609,6 +4629,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/6e/d2/6317eb6d4554855bbf12d61857774af34747bf88a42c19bf306de67e2fa3/wrapt-2.2.2-py3-none-any.whl", hash = "sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048", size = 61460, upload-time = "2026-06-20T23:49:42.966Z" }, { url = "https://files.pythonhosted.org/packages/6e/d2/6317eb6d4554855bbf12d61857774af34747bf88a42c19bf306de67e2fa3/wrapt-2.2.2-py3-none-any.whl", hash = "sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048", size = 61460, upload-time = "2026-06-20T23:49:42.966Z" },
] ]
[[package]]
name = "xlrd"
version = "2.0.2"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/07/5a/377161c2d3538d1990d7af382c79f3b2372e880b65de21b01b1a2b78691e/xlrd-2.0.2.tar.gz", hash = "sha256:08b5e25de58f21ce71dc7db3b3b8106c1fa776f3024c54e45b45b374e89234c9", size = 100167, upload-time = "2025-06-14T08:46:39.039Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/1a/62/c8d562e7766786ba6587d09c5a8ba9f718ed3fa8af7f4553e8f91c36f302/xlrd-2.0.2-py2.py3-none-any.whl", hash = "sha256:ea762c3d29f4cca48d82df517b6d89fbce4db3107f9d78713e48cd321d5c9aa9", size = 96555, upload-time = "2025-06-14T08:46:37.766Z" },
]
[[package]] [[package]]
name = "xxhash" name = "xxhash"
version = "3.8.1" version = "3.8.1"