1616
1717"""Recursive diff and patch for nested structures."""
1818
19+ import pickle
20+
1921import nested_diff .handlers
2022
2123__all__ = ['Differ' , 'Iterator' , 'Patcher' , 'diff' , 'patch' ]
@@ -101,7 +103,7 @@ class Differ():
101103 default_differ = DEFAULT_HANDLER .diff
102104
103105 def __init__ (self , A = True , N = True , O = True , R = True , U = True , # noqa: E501 E741 N803
104- trimR = False , handlers = None ):
106+ trimR = False , dumper = None , handlers = None ):
105107 """Initialize Differ.
106108
107109 Args:
@@ -111,6 +113,7 @@ def __init__(self, A=True, N=True, O=True, R=True, U=True, # noqa: E501 E741 N8
111113 R: Enable/disable removed items.
112114 U: Enable/disable unchanged items.
113115 trimR: When enabled will replace removed data by None.
116+ dumper: Optional objects serialiser.
114117 handlers: A list of type handlers.
115118
116119 """
@@ -121,6 +124,8 @@ def __init__(self, A=True, N=True, O=True, R=True, U=True, # noqa: E501 E741 N8
121124 self .op_u = U
122125 self .op_trim_r = trimR
123126
127+ self .dump = dumper or pickle .dumps
128+
124129 self ._differs = {}
125130
126131 for handler in TYPE_HANDLERS if handlers is None else handlers :
0 commit comments