Skip to content

[FW][FIX] tools: fix PdfFileReader overwrite#188181

Closed
fw-bot wants to merge 2 commits intoodoo:saas-17.2from
odoo-dev:saas-17.2-17.0-fix-pdf-compatibility-shims-moc-994v-fw
Closed

[FW][FIX] tools: fix PdfFileReader overwrite#188181
fw-bot wants to merge 2 commits intoodoo:saas-17.2from
odoo-dev:saas-17.2-17.0-fix-pdf-compatibility-shims-moc-994v-fw

Conversation

@fw-bot
Copy link
Contributor

@fw-bot fw-bot commented Nov 22, 2024

In #183165 the override of the PdfReader constructor was forcing the strict parameter to True1 in the pdf shim for PyPDF2 1.x.

So, when a PdfReader is instanciated with strict set to False, with that PyPDF version installed, the strict parameter is not taken into account. In that case, it impossible to upload some PDF documents that were allowed before the shims.

With this commit, the override of the constructor is removed in the 1.x shim and the PdfReader override is only made once at the upper level. The strict parameter is defaulting to True but not enforced as it was the default behavior in PyPDF2 1.x. It should be changed later to follow the behavior of PyPDF2 >= 2.x.

Also, any other parameter of the constructor are discarded as they are useless in PyPDF 1.x and not compatible at all with PyPDF >= 2.x. On the other hand, the new password parameter of 2.x is not backward compatible.

Forward-Port-Of: #187900

d-fence and others added 2 commits November 22, 2024 08:22
In odoo#183165 the override of the PdfReader constructor was forcing the
`strict` parameter to True [1] in the pdf shim for PyPDF2 1.x.

So, when a PdfReader is instanciated with strict set to False, with that
PyPDF version installed, the strict parameter is not taken into account.
In that case, it impossible to upload some PDF documents that were
allowed before the shims.

With this commit, the override of the constructor is removed in the 1.x
shim and the PdfReader override is only made once at the upper level.
The `strict` parameter is defaulting to True but not enforced as it was
the default behavior in PyPDF2 1.x. It should be changed later to follow
the behavior of PyPDF2 >= 2.x.

Also, any other parameter of the constructor are discarded as they are
useless in PyPDF 1.x and not compatible at all with PyPDF >= 2.x. On the
other hand, the new `password` parameter of 2.x is not backward compatible.

[1](odoo/odoo@f03a12c/odoo/tools/pdf/_pypdf2_1.py#L19)

X-original-commit: fd67b56
@robodoo
Copy link
Contributor

robodoo commented Nov 22, 2024

Pull request status dashboard

@fw-bot
Copy link
Contributor Author

fw-bot commented Nov 22, 2024

This PR targets saas-17.2 and is part of the forward-port chain. Further PRs will be created up to master.

More info at https://github.com/odoo/odoo/wiki/Mergebot#forward-port

@robodoo robodoo added the forwardport This PR was created by @fw-bot label Nov 22, 2024
@C3POdoo C3POdoo added the RD research & development, internal work label Nov 22, 2024
@fw-bot
Copy link
Contributor Author

fw-bot commented Nov 22, 2024

@d-fence @xmo-odoo the next pull request (#188195) is in conflict. You can merge the chain up to here by saying

@robodoo r+

More info at https://github.com/odoo/odoo/wiki/Mergebot#forward-port

@d-fence
Copy link
Contributor

d-fence commented Nov 22, 2024

@robodoo r+

robodoo added a commit that referenced this pull request Nov 22, 2024
In #183165 the override of the PdfReader constructor was forcing the `strict` parameter to True[1][1] in the pdf shim for PyPDF2 1.x.

So, when a PdfReader is instanciated with strict set to False, with that PyPDF version installed, the strict parameter is not taken into account. In that case, it impossible to upload some PDF documents that were allowed before the shims.

With this commit, the override of the constructor is removed in the 1.x shim and the PdfReader override is only made once at the upper level. The `strict` parameter is defaulting to True but not enforced as it was the default behavior in PyPDF2 1.x. It should be changed later to follow the behavior of PyPDF2 >= 2.x.

Also, any other parameter of the constructor are discarded as they are useless in PyPDF 1.x and not compatible at all with PyPDF >= 2.x. On the other hand, the new `password` parameter of 2.x is not backward compatible.

[1]: f03a12c/odoo/tools/pdf/_pypdf2_1.py#L19

closes #188181

Forward-port-of: #187900
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
Co-authored-by: Christophe Monniez <moc@odoo.com>
Co-authored-by: xmo-odoo <xmo@odoo.com>
@robodoo robodoo closed this Nov 22, 2024
@d-fence d-fence deleted the saas-17.2-17.0-fix-pdf-compatibility-shims-moc-994v-fw branch November 27, 2024 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

forwardport This PR was created by @fw-bot RD research & development, internal work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants