class_docstr: A buffer that represents a slice or view of a `BufferOwner`.
  
  Use the factory function `as_buffer` to create a Buffer instance.
  
  Note
  ----
  This buffer is untyped, so all indexing and sizes are in bytes.
  
  Parameters
  ----------
  owner
      The owning exposure buffer this refers to.
  offset
      The offset relative to the start memory of owner (in bytes).
  size
      The size of the buffer (in bytes). If None, use the size of owner.
class_docstr_tok: ["A","buffer","that","represents","a","slice","or","view","of","a","`","BufferOwner","`",".","Use","the","factory","function","`","as_buffer","`","to","create","a","Buffer","instance",".","Note","--","--","This","buffer","is","untyped",",","so","all","indexing","and","sizes","are","in","bytes",".","Parameters","--","--","--","--","--","owner","The","owning","exposure","buffer","this","refers","to",".","offset","The","offset","relative","to","the","start","memory","of","owner","(","in","bytes",")",".","size","The","size","of","the","buffer","(","in","bytes",")",".","If","None",",","use","the","size","of","owner","."]
code: def __init__(
      self,
      *,
      owner: BufferOwner,
      offset: int = 0,
      size: Optional[int] = None,
  ) -> None:
      size = owner.size if size is None else size
      if size < 0:
          raise ValueError("size cannot be negative")
      if offset < 0:
          raise ValueError("offset cannot be negative")
      if offset + size > owner.size:
          raise ValueError(
              "offset+size cannot be greater than the size of owner"
          )
      self._owner = owner
      self._offset = offset
      self._size = size
  
imports: from __future__ import annotations
  import math
  import pickle
  import weakref
  from types import SimpleNamespace
  from typing import Any, Dict, Literal, Mapping, Optional, Sequence, Tuple
  import numpy
  from typing_extensions import Self
  import rmm
  import cudf
  from cudf.core.abc import Serializable
  from cudf.utils.string import format_bytes
label_desc: Use image node_id 1 to create a new Buffer object from inherited base classes: Serializable with example: obj = Buffer()