diff options
Diffstat (limited to 'src/buildstream/node.pyx')
-rw-r--r-- | src/buildstream/node.pyx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/buildstream/node.pyx b/src/buildstream/node.pyx index 8a66514e1..ea63151b9 100644 --- a/src/buildstream/node.pyx +++ b/src/buildstream/node.pyx @@ -289,6 +289,12 @@ cdef class ScalarNode(Node): self.value = value + def __reduce__(self): + return ( + ScalarNode.__new__, + (ScalarNode, self.file_index, self.line, self.column, self.value), + ) + ############################################################# # Public Methods # ############################################################# @@ -435,6 +441,12 @@ cdef class MappingNode(Node): def __cinit__(self, int file_index, int line, int column, dict value): self.value = value + def __reduce__(self): + return ( + MappingNode.__new__, + (MappingNode, self.file_index, self.line, self.column, self.value), + ) + def __contains__(self, what): return what in self.value @@ -1078,6 +1090,12 @@ cdef class SequenceNode(Node): def __cinit__(self, int file_index, int line, int column, list value): self.value = value + def __reduce__(self): + return ( + SequenceNode.__new__, + (SequenceNode, self.file_index, self.line, self.column, self.value), + ) + def __iter__(self): return iter(self.value) |