remerkleable package¶
Submodules¶
remerkleable.basic module¶
-
class
remerkleable.basic.bit(value: int)[source]¶ Bases:
remerkleable.basic.boolean
-
class
remerkleable.basic.boolean(value: int)[source]¶ Bases:
int,remerkleable.core.BasicView
-
class
remerkleable.basic.byte(value: int)[source]¶ Bases:
remerkleable.basic.uint8
-
class
remerkleable.basic.uint(value: int)[source]¶ Bases:
int,remerkleable.core.BasicView
-
class
remerkleable.basic.uint128(value: int)[source]¶ Bases:
remerkleable.basic.uint
-
class
remerkleable.basic.uint16(value: int)[source]¶ Bases:
remerkleable.basic.uint
-
class
remerkleable.basic.uint256(value: int)[source]¶ Bases:
remerkleable.basic.uint
-
class
remerkleable.basic.uint32(value: int)[source]¶ Bases:
remerkleable.basic.uint
-
class
remerkleable.basic.uint64(value: int)[source]¶ Bases:
remerkleable.basic.uint
remerkleable.bitfields module¶
-
class
remerkleable.bitfields.BitsView(backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶ Bases:
remerkleable.core.BackedView,collections.abc.Sequence- Return type
-
class
remerkleable.bitfields.Bitvector(*args, **kwargs)[source]¶ Bases:
remerkleable.bitfields.BitsView,remerkleable.core.FixedByteLengthViewHelper
remerkleable.byte_vector module¶
remerkleable.complex module¶
-
class
remerkleable.complex.ComplexView(backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶
-
class
remerkleable.complex.Container(*args, backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, append_nodes: Optional[List[remerkleable.tree.Node]] = None, **kwargs)[source]¶ Bases:
remerkleable.complex._ContainerBase- Return type
-
class
remerkleable.complex.FieldOffset(key, typ, offset)[source]¶ Bases:
tuple-
typ: Type[remerkleable.core.View]¶ Alias for field number 1
-
-
class
remerkleable.complex.List(*args, backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶
-
class
remerkleable.complex.MonoSubtreeView(backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶ Bases:
collections.abc.Sequence,remerkleable.complex.ComplexView- Return type
-
class
remerkleable.complex.Vector(*args, backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶
remerkleable.core module¶
-
class
remerkleable.core.BackedView(backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶ Bases:
remerkleable.core.View
-
class
remerkleable.core.BasicView(*args, **kwargs)[source]¶ Bases:
remerkleable.core.FixedByteLengthViewHelper,Protocol
-
class
remerkleable.core.FixedByteLengthViewHelper(*args, **kwargs)[source]¶ Bases:
remerkleable.core.View,Protocol
-
class
remerkleable.core.Path(anchor, path=None)[source]¶ Bases:
object-
anchor: Type[remerkleable.core.View]¶
- Return type
-
path: List[Tuple[Any, Type[remerkleable.core.View]]]¶
-
remerkleable.history module¶
-
remerkleable.history.get_target_history(history, target)[source]¶ Fetch an ordered, keyed, history of nodes at the given target. The sequential equal values are reduced into a single value, and keyed by the first occurrence. This is done efficiently by first comparing the top of the tree,
de-duplicating, and then recursively going deeper into the tree.
- Parameters
- Return type
- Returns
the target values, keyed by the keys of the top nodes the target values first occurred in.
remerkleable.subtree module¶
-
class
remerkleable.subtree.SubtreeView(backing: Optional[remerkleable.tree.Node] = None, hook: Optional[Callable[[HV], None]] = None, **kwargs)[source]¶ Bases:
remerkleable.core.BackedView
remerkleable.test_impl module¶
remerkleable.test_typing module¶
remerkleable.tree module¶
Bases:
RuntimeError
-
class
remerkleable.tree.PairNode(left, right)[source]¶ Bases:
remerkleable.tree.RebindableNode,remerkleable.tree.NodeAn optimized, with lazily-computed root, a node that references two child nodes.
-
left¶
-
right¶
-
-
class
remerkleable.tree.RebindableNode(*args, **kwargs)[source]¶ Bases:
remerkleable.tree.Node
-
class
remerkleable.tree.RootNode(root)[source]¶ Bases:
remerkleable.tree.NodeAn optimized root-holding node. To check if a Node functions as node without children, use node.is_leaf(), since there may be more classes implementing non-child node behavior.
-
remerkleable.tree.get_diff(a, b)[source]¶ Iterate over the changes of b, not common with a. Left-to-right order. Returns (a,b) tuples that can’t be diffed deeper.