multiformats / py-multibase

Multibase implementation in Python
MIT License
22 stars 9 forks source link

Remove custom __init__ from Base16StringConverter #15

Closed cardoso-neto closed 3 years ago

cardoso-neto commented 3 years ago

It was messing up the hierarchy, because it didn't have a super().__init__() call. Instead of adding that call, I just passed its digits attribute as an argument to the default inherited constructor from BaseConverter which is exactly what all the other Base*StringConverter classes are doing.

cardoso-neto commented 3 years ago

Before:

>>> from multibase import ENCODINGS
>>> print(ENCODINGS)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/gaius/miniconda/envs/test/lib/python3.8/collections/__init__.py", line 421, in __repr__
    return self.__class__.__name__ + repr_fmt % self
  File "/home/gaius/miniconda/envs/test/lib/python3.8/site-packages/baseconv.py", line 100, in __repr__
    data = (self.__class__.__name__, self.digits, self.sign)
AttributeError: 'Base16StringConverter' object has no attribute 'sign'

Ater:

>>> from multibase import ENCODINGS
>>> from pprint import pprint
>>> pprint(ENCODINGS)
[Encoding(encoding='identity', code=b'\x00', converter=<multibase.converters.IdentityConverter object at 0x7fbe35bf5970>),
 Encoding(encoding='base2', code=b'0', converter=BaseStringConverter('01', sign='-')),
 Encoding(encoding='base8', code=b'7', converter=BaseStringConverter('01234567', sign='-')),
 Encoding(encoding='base10', code=b'9', converter=BaseStringConverter('0123456789', sign='-')),
 Encoding(encoding='base16', code=b'f', converter=Base16StringConverter('0123456789abcdef', sign='-')),
 Encoding(encoding='base32hex', code=b'v', converter=<multibase.converters.Base32StringConverter object at 0x7fbe35bf5b50>),
 Encoding(encoding='base32', code=b'b', converter=<multibase.converters.Base32StringConverter object at 0x7fbe35bf5bb0>),
 Encoding(encoding='base32z', code=b'h', converter=BaseStringConverter('ybndrfg8ejkmcpqxot1uwisza345h769', sign='-')),
 Encoding(encoding='base58flickr', code=b'Z', converter=BaseStringConverter('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ', sign='-')),
 Encoding(encoding='base58btc', code=b'z', converter=BaseStringConverter('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz', sign='-')),
 Encoding(encoding='base64', code=b'm', converter=<multibase.converters.Base64StringConverter object at 0x7fbe35bf5d30>),
 Encoding(encoding='base64url', code=b'u', converter=<multibase.converters.Base64StringConverter object at 0x7fbe35bf5d90>)]