class_docstr: A data frame class, with only the methods required by the interchange
  protocol defined.
  
  Instances of this (private) class are returned from
  ``cudf.DataFrame.__dataframe__`` as objects with the methods and
  attributes defined on this class.
class_docstr_tok: ["A","data","frame","class",",","with","only","the","methods","required","by","the","interchange","protocol","defined",".","Instances","of","this","(","private",")","class","are","returned","from","``","cudf.DataFrame.__dataframe__","``","as","objects","with","the","methods","and","attributes","defined","on","this","class","."]
docstr: Constructor - an instance of this (private) class is returned from
  `cudf.DataFrame.__dataframe__`.
code: def __init__(
      self,
      df: "cudf.core.dataframe.DataFrame",
      nan_as_null: bool = True,
      allow_copy: bool = True,
  ) -> None:
      """
      Constructor - an instance of this (private) class is returned from
      `cudf.DataFrame.__dataframe__`.
      """
      self._df = df
      # ``nan_as_null`` is a keyword intended for the consumer to tell the
      # producer to overwrite null values in the data with
      # ``NaN`` (or ``NaT``).
      # This currently has no effect; once support for nullable extension
      # dtypes is added, this value should be propagated to columns.
      self._nan_as_null = nan_as_null
      self._allow_copy = allow_copy
  
imports: import enum
  from collections import abc
  from typing import Any, Dict, Iterable, Mapping, Optional, Sequence, Tuple, cast
  import cupy
  import numpy
  from numba.cuda import as_cuda_array
  import rmm
  import cudf
  from cudf.core.buffer import Buffer, as_buffer
  from cudf.core.column import as_column, build_categorical_column, build_column
label_desc: Use image node_id 1 to create a new _CuDFDataFrame object  with example: obj = _CuDFDataFrame(df, nan_as_null, allow_copy)