Unstructured-IO / Unstructured-IO/unstructured-api

unstructured[all-docs] 0.22.19+ incompatible with pandas 3.x due to upper bound <3.0.0

Open Beginner friendly
#568 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.