summaryrefslogtreecommitdiff
path: root/src/buildstream/node.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildstream/node.pyx')
-rw-r--r--src/buildstream/node.pyx18
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)