16
16
17
17
"""Recursive diff and patch for nested structures."""
18
18
19
+ import pickle
20
+
19
21
import nested_diff .handlers
20
22
21
23
__all__ = ['Differ' , 'Iterator' , 'Patcher' , 'diff' , 'patch' ]
@@ -101,7 +103,7 @@ class Differ():
101
103
default_differ = DEFAULT_HANDLER .diff
102
104
103
105
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 ):
105
107
"""Initialize Differ.
106
108
107
109
Args:
@@ -111,6 +113,7 @@ def __init__(self, A=True, N=True, O=True, R=True, U=True, # noqa: E501 E741 N8
111
113
R: Enable/disable removed items.
112
114
U: Enable/disable unchanged items.
113
115
trimR: When enabled will replace removed data by None.
116
+ dumper: Optional objects serialiser.
114
117
handlers: A list of type handlers.
115
118
116
119
"""
@@ -121,6 +124,8 @@ def __init__(self, A=True, N=True, O=True, R=True, U=True, # noqa: E501 E741 N8
121
124
self .op_u = U
122
125
self .op_trim_r = trimR
123
126
127
+ self .dump = dumper or pickle .dumps
128
+
124
129
self ._differs = {}
125
130
126
131
for handler in TYPE_HANDLERS if handlers is None else handlers :
0 commit comments