Browse Source

eth rlp: fix import for Python 3.10 (collections -> collections.abc)

The MMGen Project 3 years ago
parent
commit
65e75bc9b7

+ 2 - 2
mmgen/altcoins/eth/rlp/codec.py

@@ -70,7 +70,7 @@ def encode_raw(item):
             return item
         payload = item
         prefix_offset = 128  # string
-    elif not isinstance(item, str) and isinstance(item, collections.Sequence):
+    elif not isinstance(item, str) and isinstance(item, collections.abc.Sequence):
         payload = b''.join(encode_raw(x) for x in item)
         prefix_offset = 192  # list
     else:
@@ -267,7 +267,7 @@ def infer_sedes(obj):
         return big_endian_int
     elif BinaryClass.is_valid_type(obj):
         return binary
-    elif not isinstance(obj, str) and isinstance(obj, collections.Sequence):
+    elif not isinstance(obj, str) and isinstance(obj, collections.abc.Sequence):
         return List(map(infer_sedes, obj))
     elif isinstance(obj, bool):
         return boolean

+ 1 - 1
mmgen/altcoins/eth/rlp/sedes/lists.py

@@ -1,7 +1,7 @@
 """
 Module for sedes objects that use lists as serialization format.
 """
-from collections import Sequence
+from collections.abc import Sequence
 
 from ...pyethereum.utils import to_list,to_tuple
 

+ 1 - 1
mmgen/altcoins/eth/rlp/sedes/raw.py

@@ -3,7 +3,7 @@ A sedes that does nothing. Thus, everything that can be directly encoded by RLP
 is serializable. This sedes can be used as a placeholder when deserializing
 larger structures.
 """
-from collections import Sequence
+from collections.abc import Sequence
 
 from ..exceptions import SerializationError
 from ..atomic import Atomic

+ 1 - 1
mmgen/altcoins/eth/rlp/sedes/serializable.py

@@ -182,7 +182,7 @@ def Changeset(obj, changes):
     return cls(obj, changes)
 
 
-class BaseSerializable(collections.Sequence):
+class BaseSerializable(collections.abc.Sequence):
     def __init__(self, *args, **kwargs):
         if kwargs:
             field_values = merge_kwargs_to_args(args, kwargs, self._meta.field_names)