def _deep_deannotate(element, values=None):
 cloned = util.column_dict()
 def clone(elem):
  if (values or (elem not in cloned)):
   newelem = elem._deannotate(values=values, clone=True)
   newelem._copy_internals(clone=clone)
   if (not values):
    cloned[elem] = newelem
   return newelem
  else:
   return cloned[elem]
 if (element is not None):
  element = clone(element)
 return element

def _deep_deannotate ( element , values = None ) : cloned = util . column_dict ( ) def clone ( elem ) : if ( values or ( elem not in cloned ) ) : newelem = elem . _deannotate ( values = values , clone = True ) newelem . _copy_internals ( clone = clone ) if ( not values ) : cloned [ elem ] = newelem return newelem else : return cloned [ elem ] if ( element is not None ) : element = clone ( element ) return element
deep copy the given element .