class_docstr: Base class of all Geoms
class_docstr_tok: ["Base","class","of","all","Geoms"]
docstr: Deep copy without copying the self.data dataframe
  
  geoms should not override this method.
docstr_tok: ["Deep","copy","without","copying","the","self.data","dataframe","geoms","should","not","override","this","method","."]
code: def __deepcopy__(self, memo: dict[Any, Any]) -> geom:
      """
      Deep copy without copying the self.data dataframe
  
      geoms should not override this method.
      """
      cls = self.__class__
      result = cls.__new__(cls)
      memo[id(self)] = result
      old = self.__dict__
      new = result.__dict__
  
      # don't make a deepcopy of data, or environment
      shallow = {"data", "_kwargs", "environment"}
      for key, item in old.items():
          if key in shallow:
              new[key] = item
              memo[id(new[key])] = new[key]
          else:
              new[key] = deepcopy(item, memo)
  
      return result
  
imports: from __future__ import annotations
  import typing
  from abc import ABC
  from copy import deepcopy
  from itertools import chain, repeat
  from .._utils import copy_keys, data_mapping_as_kwargs, is_list_like, remove_missing
  from .._utils.registry import Register, Registry
  from ..exceptions import PlotnineError
  from ..layer import layer
  from ..mapping.aes import is_valid_aesthetic, rename_aesthetics
  from ..mapping.evaluation import evaluate
  from ..positions.position import position
  from ..stats.stat import stat
label_desc: Use image node_id 4 for calling the geom obj's underlying member method code with example usage: obj.__deepcopy__(memo) and returns: result