A package to deal with encoding.
Project description
Encoding Tools
This module aims to provide a wrapper to deal with encoding in Python.
Features
Encode str to bytes
from encoding_tools import TheSoCalledGreatEncoder
encoder = TheSoCalledGreatEncoder()
encoder.load_str('hellò')
encoder.encode('latin-1')
encoded_string = encoder.encoded_data
Yes, this is a much complicated than a simple 'hellò'.encode('latin-1')
, but it deals with encoding errors.
By default, it will fallback to ASCII if an error is encountered.
from encoding_tools import TheSoCalledGreatEncoder
encoder = TheSoCalledGreatEncoder()
encoder.load_str('cœur') # œ is not supported by latin-1
encoder.encode('latin-1')
encoded_string = encoder.encoded_data # equals to b'coeur'
If you want to force ASCII conversion, you can do it by specifying force_ascii=True
when
calling .encode()
.
Decode bytes to str
from encoding_tools import TheSoCalledGreatEncoder, GuessEncodingFailedException
encoder = TheSoCalledGreatEncoder()
encoder.load_bytes(b'hell\xf2')
try:
encoder.decode()
except GuessEncodingFailedException as e:
# Deal with it
raise ValueError('Wrong input...') from e
decoded_string = encoder.decoded_data # equals to 'hellò'
encoding = encoder.encoding # equals to 'ISO-8859-1'
The decoder will guess encoding for you using the great Chardet library. You can as well provide the encoding
if you know when you load the data: .load_bytes(b'hell\xf2', encoding='latin-1')
To change data encoding, proceed this way:
from encoding_tools import TheSoCalledGreatEncoder, GuessEncodingFailedException
encoder = TheSoCalledGreatEncoder()
encoder.load_bytes(b'hell\xf2') # latin-1
try:
encoder.decode()
except GuessEncodingFailedException as e:
# Deal with it
raise ValueError('Wrong input...') from e
encoder.encode('utf-8')
encoded_string = encoder.encoded_data # equals to b'hell\xc3\xb2'
encoding = encoder.encoding # equals to 'utf-8'
Roadmap
- Deals with decoding errors
- Support more encoding (test suite)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
encoding_tools-0.0.3.tar.gz
(3.2 kB
view hashes)
Built Distribution
Close
Hashes for encoding_tools-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a54385750b1610d71ab16e706905bcd3abb334537da16586b748ac3326cd4f6 |
|
MD5 | b6143558d393cbe2be2963654aeaae7b |
|
BLAKE2b-256 | b712c0a77cd173766f90dd21f3267c145480074a59e8f43614334b1f98dda709 |