-
-
Notifications
You must be signed in to change notification settings - Fork 476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add pypdfium2 rendering backend #384
Conversation
9afdc64
to
feb8c3a
Compare
23b0427
to
c6d086d
Compare
setup.py
Outdated
"pypdfium2>=4,<5", | ||
"pillow", | ||
"ghostscript>=0.7", # deprecate? | ||
"pdftopng>=0.2.3", # deprecate? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI, I was not able to get pdftopng installed locally with Python 3.11
|
@KOLANICH Uh, you seem to share some unorthodox opinions on packaging (first lebedov/python-pdfbox#10 (comment), now this).
I don't currently have a mind of changing the APIs used in this case, but won't promise anything. If the camelot projects wants unsafe bounds in the hope that it will continue to work without interaction, then be it. But I don't encourage this and am not responsible for any breakage that might arise. |
It will cause version conflicts and maybe even downgrades.
Let's deal with it when the changes in API will actually break the package. By making this package compatible to both APIs of course. But intentionally breaking package (by specifying
camelot is not maintained by you, so it is not up to you to fix its bugs |
Hmm yes, these aspects need to be considered. Conflict handling is a problem indeed. Apart from that, one can still use virtual envs to tackle hard conflicts. I think you may be right, in this particular case it could be better to remove the upper bounds, as camelot still has fallback logic here (however, the fallbacks aren't very reliable, since they depend on additional system programs). I'll await a maintainer's opinion before changing it, anyway.
To be more precise: "so the code remains working by default". |
CI currently fails at |
I may be able to check. Supposedly it won't be a complicated rebase, as the changes from this PR are relatively small. Side-note: Checkout of this repository took unusually long for me, even with |
I merged in master and fixed the conflicts. |
Fails with `PermissionError: [WinError 32] The process cannot access the file because it is being used by another process` That seems to be an issue with camelot rsp. its test suite, not pypdfium2.
In case the `try/except` captures something other than a classical ModuleNotFoundError, we want to know what happened (e.g. library load error)
@foarsitter Who is in charge of reviewing/merging PRs here? I'm not keen on having to do another rebase, frankly... |
@mara004 the project has no lead. Can you write some brief documentation about why pdfium is the go-to backend? |
I meant, who has commit access and would be able to merge this PR?
Where should I add that? Is a code comment in How about something like this: Notes on possible alternatives:1 Footnotes
|
Thanks for helping me placing this PR in a broader perspective. A comment would be sufficient. I will open an issue to discuss the three backends camelot currently offers and maybe we should drop poppler in favor of pdfium. |
@mara004 Thanks for this very interesting pr. As @foarsitter pointed out, this project has no lead. And this repo has been unmaintained #343 for some while now. Do you want to open the PR against that repo so that we can merge your improvement? |
Thanks for the update @bosd. I'd be happy with this change landing in So, if the maintainers of wget https://patch-diff.githubusercontent.com/raw/camelot-dev/camelot/pull/384.diff
git apply 384.diff and then fix merge conflicts, if any. |
Given that camelot is unmaintained, I'll close this PR here, but you may still use the patch of course. |
No description provided.