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.2.tar.gz
(3.2 kB
view hashes)
Built Distribution
Close
Hashes for encoding_tools-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51eeddb3e28844bcc8d99781faffb6986fab6c9b57284b07c37b7286469b35da |
|
MD5 | 3aa31c93f821f75828c8a839bc5b941e |
|
BLAKE2b-256 | a934fc57185aeb9446b9ff54e37e81f0751c7282b9e9e86eca45d0634c3a9ced |