Home | History | Annotate | Download | only in Lib

Lines Matching refs:memo

145 def deepcopy(x, memo=None, _nil=[]):

151 if memo is None:
152 memo = {}
155 y = memo.get(d, _nil)
163 y = copier(x, memo)
170 y = _deepcopy_atomic(x, memo)
174 y = copier(memo)
190 y = _reconstruct(x, rv, 1, memo)
192 memo[d] = y
193 _keep_alive(x, memo) # Make sure x lives at least as long as d
198 def _deepcopy_atomic(x, memo):
226 def _deepcopy_list(x, memo):
228 memo[id(x)] = y
230 y.append(deepcopy(a, memo))
234 def _deepcopy_tuple(x, memo):
237 y.append(deepcopy(a, memo))
240 return memo[d]
249 memo[d] = y
253 def _deepcopy_dict(x, memo):
255 memo[id(x)] = y
257 y[deepcopy(key, memo)] = deepcopy(value, memo)
263 def _deepcopy_method(x, memo): # Copy instance methods
264 return type(x)(x.im_func, deepcopy(x.im_self, memo), x.im_class)
267 def _keep_alive(x, memo):
268 """Keeps a reference to the object x in the memo.
273 We store a reference at the id of the memo, which should
275 the memo itself...
278 memo[id(memo)].append(x)
281 memo[id(memo)]=[x]
283 def _deepcopy_inst(x, memo):
285 return x.__deepcopy__(memo)
288 args = deepcopy(args, memo)
293 memo[id(x)] = y
298 state = deepcopy(state, memo)
306 def _reconstruct(x, info, deep, memo=None):
310 if memo is None:
311 memo = {}
328 args = deepcopy(args, memo)
330 memo[id(x)] = y
334 state = deepcopy(state, memo)
351 item = deepcopy(item, memo)
356 key = deepcopy(key, memo)
357 value = deepcopy(value, memo)
394 def __deepcopy__(self, memo=None):
395 new = self.__class__(deepcopy(self.arg, memo))