multibase package

Submodules

multibase.converters module

class multibase.converters.Base16StringConverter(digits)[source]

Bases: BaseStringConverter

decode(data)[source]
encode(bytes)[source]
class multibase.converters.Base256EmojiConverter[source]

Bases: object

Base256 emoji encoding using 256 unique emoji characters.

This implementation uses the exact same hardcoded emoji alphabet as js-multiformats and go-multibase reference implementations to ensure full compatibility. The alphabet is curated from Unicode emoji frequency data, excluding modifier-based emojis (such as flags) that are bigger than one single code point.

decode(bytes_) bytes[source]

Decode emoji string to bytes.

Decodes character-by-character, matching the behavior of js-multiformats and go-multibase reference implementations. Each emoji in the alphabet is a single Unicode code point, so we can safely iterate character by character.

Parameters:

bytes (bytes or str) – UTF-8 encoded emoji string

Returns:

Decoded bytes

Return type:

bytes

Raises:

ValueError – if an invalid emoji character is encountered

encode(bytes_) bytes[source]

Encode bytes to emoji string.

Parameters:

bytes (bytes or str) – Bytes to encode

Returns:

UTF-8 encoded emoji string

Return type:

bytes

class multibase.converters.Base32StringConverter(digits, pad=False)[source]

Bases: BaseByteStringConverter

decode(bytes)[source]
encode(bytes)[source]
class multibase.converters.Base64StringConverter(digits, pad=False)[source]

Bases: BaseByteStringConverter

decode(bytes)[source]
encode(bytes)[source]
class multibase.converters.BaseByteStringConverter(digits, pad=False)[source]

Bases: object

DECODING_BITS = 1
ENCODE_GROUP_BYTES = 1
ENCODING_BITS = 1
decode(bytes)[source]
encode(bytes)[source]
class multibase.converters.BaseStringConverter(digits, sign='-')[source]

Bases: BaseConverter

bytes_to_int(bytes)[source]
decode(bytes)[source]
encode(bytes)[source]
class multibase.converters.IdentityConverter[source]

Bases: object

decode(x)[source]
encode(x)[source]

multibase.exceptions module

Custom exceptions for multibase encoding/decoding errors.

exception multibase.exceptions.DecodingError[source]

Bases: MultibaseError

Raised when decoding fails.

exception multibase.exceptions.InvalidMultibaseStringError[source]

Bases: MultibaseError

Raised when a multibase string is invalid or cannot be decoded.

exception multibase.exceptions.MultibaseError[source]

Bases: ValueError

Base exception for all multibase errors.

exception multibase.exceptions.UnsupportedEncodingError[source]

Bases: MultibaseError

Raised when an encoding is not supported.

multibase.multibase module

class multibase.multibase.ComposedDecoder(decoders)[source]

Bases: object

A decoder that tries multiple decoders in sequence.

decode(data, return_encoding=False)[source]

Try to decode with each decoder in sequence.

Parameters:
  • data (str or bytes) – multibase encoded data

  • return_encoding (bool) – if True, return tuple (encoding, decoded_data)

Returns:

decoded data, or tuple (encoding, decoded_data) if return_encoding=True

Return type:

bytes or tuple

Raises:

DecodingError – if all decoders fail

class multibase.multibase.Decoder[source]

Bases: object

Reusable decoder for multibase data.

decode(data, return_encoding=False)[source]

Decode multibase encoded data.

Parameters:
  • data (str or bytes) – multibase encoded data

  • return_encoding (bool) – if True, return tuple (encoding, decoded_data)

Returns:

decoded data, or tuple (encoding, decoded_data) if return_encoding=True

Return type:

bytes or tuple

Raises:
or_(other_decoder)[source]

Compose this decoder with another, trying this one first.

This allows trying multiple decoders in sequence.

Parameters:

other_decoder (Decoder) – another decoder to try if this one fails

Returns:

a composed decoder

Return type:

ComposedDecoder

class multibase.multibase.Encoder(encoding)[source]

Bases: object

Reusable encoder for a specific encoding.

encode(data)[source]

Encode data using this encoder’s encoding.

Parameters:

data (str or bytes) – data to encode

Returns:

multibase encoded data

Return type:

bytes

class multibase.multibase.Encoding(encoding, code, converter)

Bases: tuple

code

Alias for field number 1

converter

Alias for field number 2

encoding

Alias for field number 0

multibase.multibase.decode(data, return_encoding=False)[source]

Decode the multibase decoded data

Parameters:
  • data (str or bytes) – multibase encoded data

  • return_encoding (bool) – if True, return tuple (encoding, decoded_data)

Returns:

decoded data, or tuple (encoding, decoded_data) if return_encoding=True

Return type:

bytes or tuple

Raises:
multibase.multibase.encode(encoding, data)[source]

Encodes the given data using the encoding that is specified

Parameters:
  • encoding (str) – encoding to use, should be one of the supported encoding

  • data (str or bytes) – data to encode

Returns:

multibase encoded data

Return type:

bytes

Raises:

UnsupportedEncodingError – if the encoding is not supported

multibase.multibase.get_codec(data)[source]

Returns the codec used to encode the given data

Parameters:

data (str or bytes) – multibase encoded data

Returns:

the multibase.Encoding object for the data’s codec

Raises:

InvalidMultibaseStringError – if the codec is not supported

multibase.multibase.get_encoding_info(encoding)[source]

Get information about a specific encoding.

Parameters:

encoding (str) – encoding name

Returns:

Encoding namedtuple with encoding, code, and converter

Return type:

Encoding

Raises:

UnsupportedEncodingError – if encoding is not supported

multibase.multibase.is_encoded(data)[source]

Checks if the given data is encoded or not

Parameters:

data (str or bytes) – multibase encoded data

Returns:

if the data is encoded or not

Return type:

bool

multibase.multibase.is_encoding_supported(encoding)[source]

Check if an encoding is supported.

Parameters:

encoding (str) – encoding name to check

Returns:

True if encoding is supported, False otherwise

Return type:

bool

multibase.multibase.list_encodings()[source]

List all supported encodings.

Returns:

list of encoding names

Return type:

list

Module contents

Top-level package for py-multibase.