Commit graph

55 commits

Author SHA1 Message Date
Hugo van Kemenade
15b216f30d Python 3.15.0a6 2026-02-11 14:23:15 +02:00
kangtastic
45d4a34720
gh-101178: Add Ascii85, Base85, and Z85 support to binascii (GH-102753)
Add Ascii85, Base85, and Z85 encoders and decoders to binascii,
replacing the existing pure Python implementations in base64.

This makes the codecs two orders of magnitude faster and consume
two orders of magnitude less memory.

Note that attempting to decode Ascii85 or Base85 data of length 1 mod 5
(after accounting for Ascii85 quirks) now produces an error, as no
encoder would emit such data. This should be the only significant
externally visible difference compared to the old implementation.

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2026-02-06 16:43:16 +02:00
Serhiy Storchaka
4644fed819
gh-144001: Support ignoring the invalid pad character in Base64 decoding (GH-144306) 2026-02-05 21:14:49 +02:00
Serhiy Storchaka
c3b61ef73d
gh-144001: Simplify Base64 decoding with altchars and ignorechars specified (GH-144324)
Treat "+" and "/" like other characters not in the alternative Base64
alphabet when both altchars and ignorechars are specified.
E.g. discard them if they are not in altchars but are in ignorechars,
and set error if they are not in altchars and not in ignorechars.
Only emit warnings if ignorechars is not specified.
2026-02-02 13:38:32 +02:00
Serhiy Storchaka
7febbe6b60
gh-144001: Support ignorechars in binascii.a2b_base64() and base64.b64decode() (GH-144024) 2026-01-26 20:11:40 +02:00
Serhiy Storchaka
25a10b60b0
gh-144027: Fix documentation for ignorechars in base64.a85decode() (GH-144028)
It does not support an ASCII string.

Also add more tests.
2026-01-23 20:55:48 +02:00
Serhiy Storchaka
9060b4abbe
gh-125346: Deprecate accepting standard Base64 alphabet when alternative alphabet is used (GH-141128)
Emit a warning in base64.urlsafe_b64decode() and base64.b64decode() when
the "+" or "/" characters occur in the Base64 data with alternative
alphabet if they are not the part of the alternative alphabet.

It is a DeprecationWarning in the strict mode (will be error) and
a FutureWarning in non-strict mode (will be ignored).
2026-01-21 09:41:58 +02:00
Hugo van Kemenade
d51cc01c19 Python 3.15.0a5 2026-01-14 16:41:32 +02:00
Serhiy Storchaka
a471a32f4b
gh-143214: Add the wrapcol parameter in binascii.b2a_base64() and base64.b64encode() (GH-143216) 2026-01-14 14:44:53 +02:00
Hauke D
8d46f961c3
gh-143103: Added pad parameter to base64.z85encode() (GH-143106)
This makes it analogous to a85encode() and b85encode() and allows the
user to more easily meet the Z85 specification, which requires input
lengths to be a multiple of 4.
2025-12-25 13:34:44 +02:00
Alek Binion
66aaad6103
gh-134201: Expand explanation of Base85 encodings in base64 docs (#134288)
Explain history of de-facto standard and how to pick between the two Base-85 encoding functions in the base-64 module.

---------

Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
2025-05-19 18:59:06 -05:00
Petr Viktorin
ffa24aab10
Clarify base64.a85encode docs: *wrapcols* doesn't count the newline (GH-119409) 2024-05-24 00:11:45 +02:00
Ned Batchelder
bcb435ee8f
docs: module page titles should not start with a link to themselves (#117099) 2024-05-08 20:34:40 +01:00
Matan Perelman
c40b5b97fd
bpo-31116: Add Z85 variant to base64 (GH-30598)
Z85  specification: https://rfc.zeromq.org/spec/32/
2024-02-25 19:17:54 +02:00
Виталий Дмитриев
f6ca71a422
Fix duplicated words in the docs (GH-102629)
With grep utility found some duplicated words

Automerge-Triggered-By: GH:AlexWaygood
2023-03-12 11:03:59 -07:00
Sam Ezeh
05dfc539c2
gh-90717: Update the documentation for the altchars paremeter in base64 library (GH-94187) 2022-11-29 16:21:01 +00:00
Adam Turner
0efe3a1636
gh-86986: Drop compatibility support for Sphinx 2 (GH-93737)
* Revert "bpo-42843: Keep Sphinx 1.8 and Sphinx 2 compatibility (GH-24282)"

This reverts commit 5c1f15b4b1

* Revert "bpo-42579: Make workaround for various versions of Sphinx more robust (GH-23662)"

This reverts commit b63a620014.
2022-06-21 17:04:46 +02:00
Christian Clauss
241bda785a
[doc] Fix typos found using codespell (GH-28744)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-10-05 23:48:44 +02:00
Idan Moral
fa6304a522
bpo-44690: Adopt binacii.a2b_base64's strict mode in base64.b64decode (GH-27272)
* Use binascii.a2b_base64 to validate b64decode input.
   This change leads to exception messages changes (mostly).
* Added more information to docstring of b64decode
* Added a reference to binascii.a2b_base64 in the docs
2021-08-23 16:44:28 -07:00
andrei kulakov
e43b9bbc31
bpo-36700: [doc] Update base64 RFC references to RFC 4648 (GH-27700)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2021-08-13 12:58:55 +02:00
Julien Palard
5c1f15b4b1
bpo-42843: Keep Sphinx 1.8 and Sphinx 2 compatibility (GH-24282) 2021-01-25 15:46:06 +01:00
Andre Delfino
dcc997cd28
[doc] Fix erroneous backslashes in signatures and names (GH-23658)
The issue being resolved is shown in the 3.10 docs (if you select docs for older versions you won't see a visual glitch).

The newer sphinx version that produces the 3.10 docs doesn't treat the backslash to escape things in some situations it previously did.
2020-12-16 17:37:28 -08:00
Filipe Laíns
4ce6faa6c9
bpo-16995: add support for base32 extended hex (base32hex) (GH-20441)
cc @pganssle

Automerge-Triggered-By: @pganssle
2020-08-10 07:48:20 -07:00
Victor Stinner
210c19e3c5
bpo-39351: Remove base64.encodestring() (GH-18022)
Remove base64.encodestring() and base64.decodestring(), aliases
deprecated since Python 3.1: use base64.encodebytes() and
base64.decodebytes() instead.
2020-01-16 10:24:16 +01:00
Zackery Spytz
88c38a4049 bpo-27846: Delete incorrect note in base64 docs (GH-5666)
This note incorrectly stated that "Base64 has an expansion factor of 6
to 4" (it is actually 4 to 3). It was decided to remove the note.
2018-02-14 03:08:54 +03:00
Matthias Bussonnier
c643a967dd Add Python version since deprecation in base64 methods. (#33)
Allow developers to not have to either test on N Python versions or
looked through multiple versions of the docs to know whether they can
easily update.
2017-03-02 17:21:26 +03:00
Terry Jan Reedy
fa089b9b0b Issue #22558: Add remaining doc links to source code for Python-coded modules.
Reformat header above separator line (added if missing) to a common format.
Patch by Yoni Lavi.
2016-06-11 15:02:54 -04:00
Serhiy Storchaka
e5ea1abf91 Issue #27036: Fixed formatting references to "bytes-like object" in plural. 2016-05-18 13:54:54 +03:00
Martin Panter
ee3074e1f4 Issue #22088: Clarify base-64 alphabets and which characters are discarded
* There are only two base-64 alphabets defined by the RFCs, not three
* Due to the internal translation, plus (+) and slash (/) are never discarded
* standard_ and urlsafe_b64decode() discard characters as well

Also update the doc strings to clarify data types, based on revision
92760d2edc9e, correct the exception raised by b16decode(), and correct the
parameter name for the base-85 functions.
2016-02-23 22:30:50 +00:00
R David Murray
a198645fa0 #1753718: clarify RFC compliance and bytes/string argument types.
Patch includes contributions by Isobel Hooper, incorporating suggestions from
Paul Winkler.  Reviewed by Martin Panter.

In addition to accepting the corrections for the RFC compliance wording, I
went through and corrected all the argument and return types, and made the
pattern of how the arguments and return types are documented consistent.
So, this patch also addresses #20782, though I had forgotten about that issue
and its patch.
2015-12-23 21:17:17 -05:00
Serhiy Storchaka
bf7b9ede1a Issue #25706: Fixed markup in the documentation. 2015-11-23 16:43:05 +02:00
Serhiy Storchaka
56a6d855e2 Removed duplicated words in in comments and docs. 2014-12-01 18:28:43 +02:00
Larry Hastings
3732ed2414 Merge in all documentation changes since branching 3.4.0rc1. 2014-03-15 21:13:56 -07:00
R David Murray
fdc58fd897 Merge: Fix verb tense in base64 docs, and the phrasing of a news entry. 2014-01-08 18:14:20 -05:00
R David Murray
78ee3289e9 Fix verb tense in base64 docs, and the phrasing of a news entry. 2014-01-08 18:09:29 -05:00
Antoine Pitrou
6dd0d461a4 Issue #17618: Add Base85 and Ascii85 encoding/decoding to the base64 module. 2013-11-17 23:52:25 +01:00
Nick Coghlan
fdf239a855 Close #17839: support bytes-like objects in base64 module
This mostly affected the encodebytes and decodebytes function
(which are used by base64_codec)

Also added a test to ensure all bytes-bytes codecs can handle
memoryview input and tests for handling of multidimensional
and non-bytes format input in the modern base64 API.
2013-10-03 00:43:22 +10:00
Serhiy Storchaka
ea2b490f3d Issue #18011: base64.b32decode() now raises a binascii.Error if there are
non-alphabet characters present in the input string to conform a docstring.
Updated the module documentation.
2013-05-28 15:27:29 +03:00
R David Murray
cd7128a549 Merge #15636: add versionadded for decodebytes 2012-08-17 20:55:54 -04:00
R David Murray
75fd22519f #15636: add versionadded for decodebytes 2012-08-17 20:55:21 -04:00
Antoine Pitrou
ea6b4d5f70 Issue #13641: Decoding functions in the base64 module now accept ASCII-only unicode strings.
Patch by Catalin Iacob.
2012-02-20 19:30:23 +01:00
Éric Araujo
941afedd74 Avoid using the default reST role. Makes Doc/tools/rstlint.py happy. 2011-09-01 02:47:34 +02:00
R. David Murray
6495136e40 #1466065: add validate option to base64.b64decode
Patch by Neil Tallim.  This provides a mechanism for module
users to achieve RFC 3548 compliance in the cases where ignoring
non-base64-alphabet input characters is *not* mandated by the RFC that
references RFC 3548.
2010-11-11 20:09:20 +00:00
R. David Murray
7cefc30d34 Tighten up 'byte string' wording in base64 docs. 2010-10-17 23:12:16 +00:00
Georg Brandl
134c35b191 #9730: fix example. 2010-10-17 11:36:28 +00:00
Antoine Pitrou
11cb961b38 Add cross-references to the glossary entry for file objects. 2010-09-15 11:11:28 +00:00
Georg Brandl
62e4231a27 #7797: be explicit about bytes-oriented interface of base64 functions. 2010-08-02 20:39:35 +00:00
Georg Brandl
b54d801280 #3613: add base64.encodebytes and decodebytes as the new spelling of encodestring and decodestring; deprecate the latter. 2009-06-04 09:11:51 +00:00
Georg Brandl
71515ca191 Remove surplus empty lines and convert more files to new optional arg style. 2009-05-17 12:29:12 +00:00
Georg Brandl
b868a66ccb First batch of signature documentation changes; using default argument syntax where applicable. 2009-04-02 02:56:10 +00:00