Unstructured-IO / Unstructured-IO/unstructured-api
unstructured[all-docs] 0.22.19+ incompatible with pandas 3.x due to upper bound <3.0.0
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 951
- Forks
- 192
- Avg merge
- 7d 8h
- Merged PRs (30d)
- 2
Description
Describe the bug
Starting from version 0.22.19, the all-docs extra constrains pandas>=2.0.0, <3.0.0, which prevents installation alongside pandas>=3.0.0. In version 0.22.18, the constraint was pandas>=2.0.0, <4.0.0, which allowed pandas 3.x. This regression silently forces
the dependency resolver to downgrade to 0.22.18 when a project requires pandas 3.x.
To Reproduce
- Filetype: N/A
- Any additional API parameters: N/A
Create a pyproject.toml with both dependencies:
dependencies = [
"unstructured[all-docs] >=0.18.31, <1.0.0",
"pandas >=3.0.0, <4.0.0",
]
Then run:
uv lock --upgrade-package unstructured
The resolver tries 0.22.21, 0.22.20, 0.22.19 in order, hits a pandas conflict on each, and falls back to 0.22.18:
Selecting: unstructured==0.22.21 [compatible]
Recording unit propagation conflict of unstructured[all-docs] from incompatibility of (pandas, unstructured[all-docs])
Selecting: unstructured==0.22.20 [compatible]
Recording dependency conflict of unstructured[all-docs]==0.22.20 from incompatibility of (unstructured[all-docs], pandas)
Selecting: unstructured==0.22.18 [compatible]
Environment:
- Self hosting via unstructured-api
- unstructured 0.22.19 / 0.22.20 / 0.22.21 all affected
- Python 3.12, pandas 3.x
Additional context
The all-docs extra in 0.22.18 declared pandas>=2.0.0, <4.0.0. Versions 0.22.19+ tightened this to pandas>=2.0.0, <3.0.0 without a corresponding changelog note. pandas 3.0.0 has been available since June 2024. It would be helpful to either restore pandas 3.x
support or document why the upper bound was tightened and when support is expected to return.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the dependency declaration for the all-docs extra in pyproject.toml and compare the pandas bounds in versions 0.22.18 through 0.22.21. Run the provided uv lock --upgrade-package unstructured reproduction with pandas 3.x; done means the resolver can select a current unstructured version, or the tightened bound has a documented reason.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- pandas, python
- Domain
- build-system, data
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100