gh-144001: Support ignorechars in binascii.a2b_base64() and base64.b64decode()#144024
Conversation
|
This is a draft because I am going to apply the error handling changes in a separate issue first. We can also apply some optimizations -- cache the ignored chars and returning on fast path after ignored characters. |
Sorry, something went wrong.
1b0bb87 to
192d535
Compare
January 19, 2026 11:19
|
Well, the issue with error handling was just that the error message could be more specific in some cases. It is not a bug. It can be included in this PR. |
Sorry, something went wrong.
192d535 to
4f3847e
Compare
January 19, 2026 11:23
|
No worries, that was the point I was just free on Sunday, so I push out a PR in case you haven't started on it. BTW your PR looks good, I am no maintainer but you just have to run |
Sorry, something went wrong.
vstinner
left a comment
There was a problem hiding this comment.
LGTM.
I'm fine with changing validate default to True if ignorechars is specified. The change produces more precise error messages. It also adds a lot of tests which is always a good thing :-)
Sorry, something went wrong.
7febbe6
into
python:main
Jan 26, 2026
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
|
Taking a quick look: The docs in this PR changed the default for validate and strict_mode from False to True. But versionchanged does not mention that change and there was no deprecation period. Did this behavior change? The docs need fixing at a minimum but if the behavior changed we also need a deprecation cycle. What I understand @vstinner above to be saying is to change the default only in the case of the new parameter being supplied? |
Sorry, something went wrong.
|
that may just be a simple doc fix. the declaration lines need to not state a value for the parameters who's default behavior varies based on context: The text below describes a dynamic behavior on both, but people will absolutely misread the function signature and not read the text if we do not indicate it in the signature. |
Sorry, something went wrong.
|
Sorry, I do not understand. How is it different from what is in the documentation now? |
Sorry, something went wrong.
|
Deprecation period is needed if we want to change the existing behavior into error. But |
Sorry, something went wrong.
The default remains |
Sorry, something went wrong.
I like that. It's quick to read. |
Sorry, something went wrong.
📚 Documentation preview 📚: https://cpython-previews--144024.org.readthedocs.build/