def _keep_alive(x, memo):
    """Keeps a reference to the object x in the memo.

    Because we remember objects by their id, we have
    to assure that possibly temporary objects are kept
    alive by referencing them.
    We store a reference at the id of the memo, which should
    normally not be used unless someone tries to deepcopy
    the memo itself...
    """
    try:
        memo[id(memo)].append(x)
    except __HOLE__:
        # aha, this is the first one :-)
        memo[id(memo)]=[x]
dataset/ETHPy150Open amrdraz/kodr/app/brython/www/src/Lib/copy.py/_keep_alive