class_docstr: An exposure tracked buffer.
  
  Parameters
  ----------
  owner
      The owning exposure tracked buffer this refers to.
  offset
      The offset relative to the start memory of owner (in bytes).
  size
      The size of the slice (in bytes)
class_docstr_tok: ["An","exposure","tracked","buffer",".","Parameters","--","--","--","--","--","owner","The","owning","exposure","tracked","buffer","this","refers","to",".","offset","The","offset","relative","to","the","start","memory","of","owner","(","in","bytes",")",".","size","The","size","of","the","slice","(","in","bytes",")"]
docstr: Return a copy of Buffer.
  
  What actually happens when `deep == False` depends on the
  "copy_on_write" option. When copy-on-write is enabled, a shallow copy
  becomes a deep copy if the buffer has been exposed. This is because we
  have no control over knowing if the data is being modified when the
  buffer has been exposed to third-party.
  
  Parameters
  ----------
  deep : bool, default True
      The semantics when copy-on-write is disabled:
          - If deep=True, returns a deep copy of the underlying data.
          - If deep=False, returns a shallow copy of the Buffer pointing
            to the same underlying data.
      The semantics when copy-on-write is enabled:
          - From the users perspective, always a deep copy of the
            underlying data. However, the data isn't actually copied
            until someone writers to the returned buffer.
  
  Returns
  -------
  ExposureTrackedBuffer
      A slice pointing to either a new or the existing owner
      depending on the expose status of the owner and the
      copy-on-write option (see above).
docstr_tok: ["Return","a","copy","of","Buffer",".","What","actually","happens","when","`","deep","==","False","`","depends","on","the","''","copy_on_write","''","option",".","When","copy-on-write","is","enabled",",","a","shallow","copy","becomes","a","deep","copy","if","the","buffer","has","been","exposed",".","This","is","because","we","have","no","control","over","knowing","if","the","data","is","being","modified","when","the","buffer","has","been","exposed","to","third-party",".","Parameters","--","--","--","--","--","deep",":","bool",",","default","True","The","semantics","when","copy-on-write","is","disabled",":","-","If","deep=True",",","returns","a","deep","copy","of","the","underlying","data",".","-","If","deep=False",",","returns","a","shallow","copy","of","the","Buffer","pointing","to","the","same","underlying","data",".","The","semantics","when","copy-on-write","is","enabled",":","-","From","the","users","perspective",",","always","a","deep","copy","of","the","underlying","data",".","However",",","the","data","is","n't","actually","copied","until","someone","writers","to","the","returned","buffer",".","Returns","--","--","--","-","ExposureTrackedBuffer","A","slice","pointing","to","either","a","new","or","the","existing","owner","depending","on","the","expose","status","of","the","owner","and","the","copy-on-write","option","(","see","above",")","."]
code: def copy(self, deep: bool = True) -> Self:
      """Return a copy of Buffer.
  
      What actually happens when `deep == False` depends on the
      "copy_on_write" option. When copy-on-write is enabled, a shallow copy
      becomes a deep copy if the buffer has been exposed. This is because we
      have no control over knowing if the data is being modified when the
      buffer has been exposed to third-party.
  
      Parameters
      ----------
      deep : bool, default True
          The semantics when copy-on-write is disabled:
              - If deep=True, returns a deep copy of the underlying data.
              - If deep=False, returns a shallow copy of the Buffer pointing
                to the same underlying data.
          The semantics when copy-on-write is enabled:
              - From the users perspective, always a deep copy of the
                underlying data. However, the data isn't actually copied
                until someone writers to the returned buffer.
  
      Returns
      -------
      ExposureTrackedBuffer
          A slice pointing to either a new or the existing owner
          depending on the expose status of the owner and the
          copy-on-write option (see above).
      """
      if cudf.get_option("copy_on_write"):
          return super().copy(deep=deep or self.exposed)
      return super().copy(deep=deep)
  
file_path: cudf/python/cudf/cudf/core/buffer/exposure_tracked_buffer.py
imports: from __future__ import annotations
  from typing import Literal, Mapping, Optional
  from typing_extensions import Self
  import cudf
  from cudf.core.buffer.buffer import Buffer, BufferOwner
label_desc: Use image node_id 4 for calling the ExposureTrackedBuffer obj's underlying member method code with example usage: obj.copy(deep) and returns: super, super