Lines Matching refs:memo
128 def deepcopy(x, memo=None, _nil=[]): argument
134 if memo is None:
135 memo = {}
138 y = memo.get(d, _nil)
146 y = copier(x, memo)
149 y = _deepcopy_atomic(x, memo)
153 y = copier(memo)
172 y = _reconstruct(x, memo, *rv)
176 memo[d] = y
177 _keep_alive(x, memo) # Make sure x lives at least as long as d
182 def _deepcopy_atomic(x, memo): argument
201 def _deepcopy_list(x, memo, deepcopy=deepcopy): argument
203 memo[id(x)] = y
206 append(deepcopy(a, memo))
210 def _deepcopy_tuple(x, memo, deepcopy=deepcopy): argument
211 y = [deepcopy(a, memo) for a in x]
215 return memo[id(x)]
227 def _deepcopy_dict(x, memo, deepcopy=deepcopy): argument
229 memo[id(x)] = y
231 y[deepcopy(key, memo)] = deepcopy(value, memo)
237 def _deepcopy_method(x, memo): # Copy instance methods argument
238 return type(x)(x.__func__, deepcopy(x.__self__, memo))
243 def _keep_alive(x, memo): argument
254 memo[id(memo)].append(x)
257 memo[id(memo)]=[x]
259 def _reconstruct(x, memo, func, args, argument
262 deep = memo is not None
264 args = (deepcopy(arg, memo) for arg in args)
267 memo[id(x)] = y
271 state = deepcopy(state, memo)
288 item = deepcopy(item, memo)
296 key = deepcopy(key, memo)
297 value = deepcopy(value, memo)