diff options
author | Hartmut Goebel <h.goebel@crazy-compilers.com> | 2019-01-19 19:50:56 +0100 |
---|---|---|
committer | Hartmut Goebel <h.goebel@crazy-compilers.com> | 2019-01-19 19:50:56 +0100 |
commit | 41724f12889455473a83fba459a709791005d5c2 (patch) | |
tree | c67ca16e22153e6a06af33d01bdb60fb7e2ee2d9 | |
parent | a49b94651ca45beef0cf14ec0505c5c482e21bc8 (diff) |
Simplify initiation of `_Key` and subclasses.
Also take the chance and break some long lines.
-rw-r--r-- | gnunet/__init__.py | 16 | ||||
-rw-r--r-- | gnunet/crypto.py | 3 |
2 files changed, 10 insertions, 9 deletions
diff --git a/gnunet/__init__.py b/gnunet/__init__.py index dc4e701..c4c5648 100644 --- a/gnunet/__init__.py +++ b/gnunet/__init__.py @@ -6,8 +6,8 @@ class GNUNetDaemonError(Exception): class _Key: - def __init__(self, arg, subtype, bits): - if isinstance(arg, subtype): + def __init__(self, arg): + if isinstance(arg, type(self)): self._data = arg._data elif isinstance(arg, str): self._data = strings.string_to_data(arg) @@ -15,18 +15,20 @@ class _Key: try: self._data = bytearray(arg) except: - raise TypeError("'arg' must be a " + type(subtype).__name__ + ", a string or an array of bytes. Not a '" + type(arg).__name__ + "'.") + raise TypeError("'arg' must be a %s, a string or an array " + "of bytes. Not a '%s'." % + (type(self).__name__, type(arg).__name__),) - if len(self._data) * 8 != bits: - raise ValueError("'arg' must be a " + bits + " bit hash. Got " + len(self._data) + " bits.") + if len(self._data) * 8 != self.__bits__: + raise ValueError("'arg' must be a %s bit hash. Got %s bits." + % (self.__bits__, len(self._data) * 8)) def __str__(self): return strings.data_to_string(self._data) class HashCode(_Key): - def __init__(self, arg): - _Key.__init__(self, arg, HashCode, 512) + __bits__ = 512 def __repr__(self): return "gnunet.HashCode('" + str(self) + "')" diff --git a/gnunet/crypto.py b/gnunet/crypto.py index 461b0cc..253f46e 100644 --- a/gnunet/crypto.py +++ b/gnunet/crypto.py @@ -3,8 +3,7 @@ import gnunet.strings as strings class EcdsaPublicKey(_Key): - def __init__(self, arg): - _Key.__init__(self, arg, EcdsaPublicKey, 256) + __bits__ = 256 def __repr__(self): return "gnunet.crypto.EcdsaPublicKey('" + str(self) + "')" |