Skip to main content

Encoding Tools

pipeline status coverage report PyPI - Python Version

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)

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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

encoding_tools-0.0.3-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file encoding_tools-0.0.3.tar.gz.

File metadata

  • Download URL: encoding_tools-0.0.3.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for encoding_tools-0.0.3.tar.gz
Algorithm Hash digest
SHA256 0d2fd169266044dca39310a753f0c9dd8c82ff6c38102e1e5cbf7c96a135aac4
MD5 f32207cb7c49f2feea8489006f0eaaeb
BLAKE2b-256 46111846b95662b0723016d99db9da18fdd302313ecb71695b856d62a5cf8807

See more details on using hashes here.

File details

Details for the file encoding_tools-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: encoding_tools-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.7.0

File hashes

Hashes for encoding_tools-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7a54385750b1610d71ab16e706905bcd3abb334537da16586b748ac3326cd4f6
MD5 b6143558d393cbe2be2963654aeaae7b
BLAKE2b-256 b712c0a77cd173766f90dd21f3267c145480074a59e8f43614334b1f98dda709

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 files

0.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page