bytedance / bytedance/pdf-parser
fix: declare a dependency set that keeps the published CLI runnable
- Dominant language
- Python
- Stars
- 14
- Forks
- 9
- Avg merge
- 43m
- Merged PRs (30d)
- 1
Description
## Problem
A fresh installation of the published `hi-pdf-parser==0.0.5` can no longer start its CLI with the current dependency resolution. The package imports `click` directly, but only declares `typer>=0.12.5`; current Typer 0.27.1 no longer declares Click as a transitive dependency.
This affects current `main` at `c6478aae9ab50a13fc54c0599a0a459396c15b99` and the published release `0.0.5`.
## Reproduction
On Windows with uv 0.11.14 and CPython 3.11:
```console
uvx --from hi-pdf-parser==0.0.5 hi-pdf-parser --help
```
Current resolution installs Typer 0.27.1 and then fails before showing help:
```text
File ".../hi_pdf_parser/__main__.py", line 24, in
import click
ModuleNotFoundError: No module named 'click'
```
The published wheel metadata contains `typer>=0.12.5` but no direct Click requirement.
## Expected behavior
The README's base installation command (`pip install hi-pdf-parser`) should install a dependency set that can start `hi-pdf-parser` without requiring the optional server extra or an undeclared manual package.
## Impact
New users receive a runtime import failure from the package's primary console entry point even though installation succeeds.
## Why there is no PR in this report
The fix requires a dependency compatibility decision: declare Click directly, constrain Typer to a compatible range, or remove the direct Click dependency using supported Typer APIs. This report does not change `pyproject.toml` or `uv.lock` without maintainer approval of that dependency policy.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with pyproject.toml and uv.lock, then inspect the direct click import in hi_pdf_parser/__main__.py and reproduce the README base installation command with uvx. Compare the resolved metadata with the published wheel; done means the base install starts the CLI without the server extra, after the maintainer selects the supported dependency policy.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100