Unstructured-IO / Unstructured-IO/unstructured

bug/Dependency resolution discrepancy for numba

Open Beginner friendly
#4,216 4 comments 7 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
HTML
Stars
15.5k
Forks
1.3k
Avg merge
4d 2h
Merged PRs (30d)
13

Description

Describe the bug
When installing unstructured==0.18.31, different package managers resolve the numba dependency to different versions:

pip: Resolves to numba==0.63.1 (compatible with Python 3.12)
uv: Resolves to numba==0.53.1 (requires Python <3.10, incompatible with Python 3.12)
The package declares unstructured as supporting Python 3.10, 3.11, and 3.12 (per classifiers and Requires-Python: >=3.10.0), but the unpinned numba dependency in the package metadata allows resolver tools to select incompatible versions.

To Reproduce
Run uv pip install unstructured==0.18.31 in a new/clean virtual environment.

      RuntimeError: Cannot install on Python version 3.12.12; only versions >=3.6,<3.10 are supported.

      hint: This usually indicates a problem with the package or the build environment.
  help: `llvmlite` (v0.36.0) was included because `unstructured` (v0.18.31) depends on `numba` (v0.53.1) which depends on `llvmlite`

Expected behavior
Installation should complete without error

Suggested fix
Pin numba to >=0.63.0 in constraints.txt

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

Reproduce the failure with uv pip install unstructured==0.18.31 in a clean Python 3.12 environment, then inspect constraints.txt and the package dependency metadata for the numba constraint. Done means uv resolves a Python 3.12-compatible numba version and the installation completes without the llvmlite compatibility error.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.