No project description provided
Project description
This project is designed to develop a class, base64io.Base64IO, that implements a streaming interface for Base64 encoding.
Python has supported native Base64 encoding since version 2.4. However, there is no streaming interface for Base64 encoding, and none is available from the community.
The legacy base64.encode and base64.decode interface lets you shuffle data between two streams, but it assumes that you have two complete streams. We wanted a standard stream that applies Base64 encoding and decoding.
base64io.Base64IO provides an io streaming interface with context manager support that transparently Base64-encodes data read from it. You can use it to transform large files without caching the entire context in memory, or to transform an existing stream.
For the latest full documentation, see Read the Docs.
Find us on GitHub.
Getting Started
base64io.Base64IO has no dependencies other than the standard library and should work with any version of Python greater than 2.6. We test it on CPython 2.6, 2.7, 3.3, 3.4, 3.5, 3.6, and 3.7.
Installation
$ pip install base64io
Use
base64io.Base64IO wraps the input stream and transparently encodes or decodes data written to or read from the input stream.
write() encodes data before writing it to the wrapped stream
read() decodes data after reading it from the wrapped stream
Because the position of the base64io.Base64IO stream and the wrapped stream will almost always be different, base64io.Base64IO does not support:
seek()
tell()
Also, base64io.Base64IO does not support:
fileno()
truncate()
Encode data
from base64io import Base64IO
with open("source_file", "rb") as source, open("encoded_file", "wb") as target:
with Base64IO(target) as encoded_target:
for line in source:
encoded_target.write(line)
Decode data
from base64io import Base64IO
with open("encoded_file", "rb") as encoded_source, open("target_file", "wb") as target:
with Base64IO(encoded_source) as source:
for line in source:
target.write(line)
License
This library is licensed under the Apache 2.0 License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file base64io-1.0.3.tar.gz
.
File metadata
- Download URL: base64io-1.0.3.tar.gz
- Upload date:
- Size: 16.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24f2d0fe765c35339e1b2d33aa95f9137b1b765b594164fad1016c15827a7073 |
|
MD5 | 96e8d5f62b7b237de3259d8b7c808886 |
|
BLAKE2b-256 | a55e5bf8377df11c190df3db242129739c532f396be185d63eb4222a1dbf62ce |
File details
Details for the file base64io-1.0.3-py2.py3-none-any.whl
.
File metadata
- Download URL: base64io-1.0.3-py2.py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9a6c9f470e34f8debaad26134bcf3f0bcbf677dac73e32295cfb2915d30815b |
|
MD5 | d7269162ab03be13fb212e17c90e2878 |
|
BLAKE2b-256 | c79c401865bd07802b916c327342ed609f9ac0aa8c6c48bea1a32b7eabc17229 |