code: def __dataframe__(
      self, nan_as_null: bool = False, allow_copy: bool = True
  ) -> _CuDFDataFrame:
      """
      The public method to attach to cudf.DataFrame.
  
      ``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.
  
      ``allow_copy`` is a keyword that defines whether or not the library is
      allowed to make a copy of the data. For example, copying data would be
      necessary if a library supports strided buffers, given that this protocol
      specifies contiguous buffers.
      """
      return _CuDFDataFrame(
          self, nan_as_null=nan_as_null, 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 for calling a global function with example usage: __dataframe__(nan_as_null, allow_copy) and returns: _CuDFDataFrame