-
-
Notifications
You must be signed in to change notification settings - Fork 436
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
base: master
Are you sure you want to change the base?
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.
Sorry, I actually meant "so that the source 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. |
No description provided.