Commit Graph

72 Commits

Author SHA1 Message Date
Romuald Brunet ea970fb116
gh-61199: Remove superfluous global statements from `base64._b32{en,de}code()*` (GH-111785)
Minor cleanup after commit 4ce6faa6c9
2023-11-07 16:32:44 -06:00
Partha P. Mukherjee d828b35785
GH-102456: Fix docstring and getopt options for base64 (gh-102457) 2023-04-02 14:05:50 +09:00
Nick Drozd 024ac542d7
bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
Oleg Iarygin 7db1d2eaf3
gh-93096: Remove `python -m base64 -t` (gh-94230) 2022-07-02 15:53:43 +09:00
Ammar Askar 5baec4aea6
bpo-35970: Add help flag to base64 module (GH-28774)
This continues off rkuska's work from https://github.com/python/cpython/pull/11789 seeing as the patch wasn't updated to add tests.
2021-10-06 18:38:43 -07:00
Raymond Hettinger 9510e6f3c7
bpo-45155: Apply new byteorder default values for int.to/from_bytes (GH-28465) 2021-09-20 13:22:55 -05: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
Brandon Stansbury 9655434cca
bpo-39068: Fix race condition in base64 (GH-17627)
There was a race condition in base64 in lazy initialization of multiple globals.
2020-12-31 11:44:46 +02: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
Serhiy Storchaka b19c0d77e6
bpo-39055: Reject a trailing \n in base64.b64decode() with validate=True. (GH-17616) 2020-01-05 14:15:50 +02:00
Serhiy Storchaka ac0b3c2f4d
bpo-34164: Fix handling of incorrect padding in base64.b32decode(). (GH-8351)
Now base64.Error is always raised instead of UnboundLocalError or
OverflowError.
2018-07-24 12:52:51 +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
Serhiy Storchaka 5f1a5187f7 Use sequence repetition instead of bytes constructor with integer argument. 2016-09-11 14:41:02 +03:00
Serhiy Storchaka 6c783ac15d Issue #25913: Leading <~ is optional now in base64.a85decode() with adobe=True.
Patch by Swati Jaiswal.
2016-02-24 12:08:11 +02:00
Serhiy Storchaka 205e75bb62 Issue #25913: Leading <~ is optional now in base64.a85decode() with adobe=True.
Patch by Swati Jaiswal.
2016-02-24 12:05:50 +02:00
Martin Panter 150ea1a1df Issue #22088: Merge base64 docs from 3.5 2016-02-24 01:08:43 +00: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
Victor Stinner e84c976568 Issue #25357: Add an optional newline paramer to binascii.b2a_base64().
base64.b64encode() uses it to avoid a memory copy.
2015-10-11 11:01:02 +02:00
Serhiy Storchaka 9f8a8910a4 Escaped backslashes in docstrings. 2015-04-03 18:12:41 +03:00
Victor Stinner d6a91a7ab6 Issue #20879: Delay the initialization of encoding and decoding tables for
base32, ascii85 and base85 codecs in the base64 module, and delay the
initialization of the unquote_to_bytes() table of the urllib.parse module, to
not waste memory if these modules are not used.
2014-03-17 22:38:41 +01:00
Terry Jan Reedy 6c6596ec52 Closes issue #20728: Remove unused import added in rev 42366e293b7b and
noticed by Claudiu Popa.
2014-03-02 04:17:01 -05:00
Serhiy Storchaka a26b3f183d Issue #20363. Fixed BytesWarning triggerred by test suite.
Patch by Berker Peksag.
2014-02-06 22:52:23 +02: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
Serhiy Storchaka 2c3f2f19df Issue #17812: Fixed quadratic complexity of base64.b32encode(). 2013-05-19 11:41:15 +03:00
Serhiy Storchaka 5cc9d32ee9 Issue #18011: Silence an unrelated noise introduced in changeset 1b5ef05d6ced. 2013-05-28 15:42:34 +03:00
Serhiy Storchaka 77a3ad743f 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:30:38 +03:00
Serhiy Storchaka 87aa7dc211 Issue #17812: Fixed quadratic complexity of base64.b32encode().
Optimize base64.b32encode() and base64.b32decode() (speed up to 3x).
2013-05-19 11:49:32 +03:00
Guido van Rossum 95c1c48fd6 Speed up base64.urlsafe_{en,de}code(). 2012-06-22 15:16:09 -07: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
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
Antoine Pitrou b86680e299 Explicitly close some files (from issue #10093) 2010-10-14 21:15:17 +00:00
Ezio Melotti 84befb00bd Fix failure introduced in r83182. 2010-07-28 00:23:21 +00:00
Victor Stinner 479736b31c Issue #4769: Fix main() function of the base64 module, use sys.stdin.buffer and
sys.stdout.buffer (instead of sys.stdin and sys.stdout) to use the bytes API
2010-05-25 21:12:34 +00:00
Benjamin Peterson 90f5ba538b convert shebang lines: python -> python3 2010-03-11 22:53:45 +00:00
Alexandre Vassalotti 5629268e9d Make b64encode raises properly a TypeError when altchars is not bytes. 2009-06-29 01:13:41 +00:00
Georg Brandl 706824f19f More codestring -> codebytes. 2009-06-04 09:42:55 +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
Antoine Pitrou fd036451bf #2834: Change re module semantics, so that str and bytes mixing is forbidden,
and str (unicode) patterns get full unicode matching by default. The re.ASCII
flag is also introduced to ask for ASCII matching instead.
2008-08-19 17:56:33 +00:00
Alexandre Vassalotti 5209857f8e Removed implicit convertions of str object to bytes from base64.
This also exposed some bugs in urlib2 and email.base64mime, which I
tried my best to fix. However, someone will probably have to double
check.
2008-05-03 04:39:38 +00:00
Guido van Rossum 254348e201 Rename buffer -> bytearray. 2007-11-21 19:29:53 +00:00
Guido van Rossum 98297ee781 Merging the py3k-pep3137 branch back into the py3k branch.
No detailed change log; just check out the change log for the py3k-pep3137
branch.  The most obvious changes:

  - str8 renamed to bytes (PyString at the C level);
  - bytes renamed to buffer (PyBytes at the C level);
  - PyString and PyUnicode are no longer compatible.

I.e. we now have an immutable bytes type and a mutable bytes type.

The behavior of PyString was modified quite a bit, to make it more
bytes-like.  Some changes are still on the to-do list.
2007-11-06 21:34:58 +00:00
Guido van Rossum 083e20c8e1 Forgot one. This makes test_urllib2.py pass. 2007-08-29 02:30:49 +00:00
Guido van Rossum 54a40cb81f Force test_xmlrpc to pass. I'm not happy with how I did this, but I don't
see a better way; the 'Binary' class is poorly specified so it's unclear
what behavior is relied upon.
2007-08-27 22:27:41 +00:00
Guido van Rossum 98b349f8e6 Fix some tests I broke. (More to follow.) 2007-08-27 21:47:52 +00:00
Guido van Rossum 09549f4407 Changes in anticipation of stricter str vs. bytes enforcement. 2007-08-27 20:40:10 +00:00
Guido van Rossum 4581ae5fa2 Make test_base64 pass.
Change binascii.Error to derive from ValueError
and raise binascii.Error everywhere where values are bad
(why on earth did the old code use TypeError?!?).
2007-05-22 21:56:47 +00:00
Guido van Rossum cc2b016125 - PEP 3106: dict.iterkeys(), .iteritems(), .itervalues() are now gone;
and .keys(), .items(), .values() return dict views.

The dict views aren't fully functional yet; in particular, they can't
be compared to sets yet.  but they are useful as "iterator wells".

There are still 27 failing unit tests; I expect that many of these
have fairly trivial fixes, but there are so many, I could use help.
2007-02-11 06:12:03 +00:00