class_docstr: A column object, with only the methods and properties required by the
  interchange protocol defined.
  
  A column can contain one or more chunks. Each chunk can contain up to three
  buffers - a data buffer, a mask buffer (depending on null representation),
  and an offsets buffer (if variable-size binary; e.g., variable-length
  strings).
  
  Note: this Column object can only be produced by ``__dataframe__``, so
        doesn't need its own version or ``__column__`` protocol.
class_docstr_tok: ["A","column","object",",","with","only","the","methods","and","properties","required","by","the","interchange","protocol","defined",".","A","column","can","contain","one","or","more","chunks",".","Each","chunk","can","contain","up","to","three","buffers","-","a","data","buffer",",","a","mask","buffer","(","depending","on","null","representation",")",",","and","an","offsets","buffer","(","if","variable-size","binary",";","e.g.",",","variable-length","strings",")",".","Note",":","this","Column","object","can","only","be","produced","by","``","__dataframe__","``",",","so","does","n't","need","its","own","version","or","``","__column__","``","protocol","."]
docstr: Return the missing value (or "null") representation the column dtype
  uses, as a tuple ``(kind, value)``.
  
  Kind:
  
      - 0 : non-nullable
      - 1 : NaN/NaT
      - 2 : sentinel value
      - 3 : bit mask
      - 4 : byte mask
  
  Value : if kind is "sentinel value", the actual value.
  If kind is a bit mask or a byte mask, the value (0 or 1)
  indicating a missing value.
  None otherwise.
code: def describe_null(self) -> Tuple[int, Any]:
      """
      Return the missing value (or "null") representation the column dtype
      uses, as a tuple ``(kind, value)``.
  
      Kind:
  
          - 0 : non-nullable
          - 1 : NaN/NaT
          - 2 : sentinel value
          - 3 : bit mask
          - 4 : byte mask
  
      Value : if kind is "sentinel value", the actual value.
      If kind is a bit mask or a byte mask, the value (0 or 1)
      indicating a missing value.
      None otherwise.
      """
      kind = self.dtype[0]
      if self.null_count == 0:
          # there is no validity mask so it is non-nullable
          return _MaskKind.NON_NULLABLE, None
  
      elif kind in _SUPPORTED_KINDS:
          # currently, we return a bit mask
          return _MaskKind.BITMASK, 0
  
      else:
          raise NotImplementedError(
              f"Data type {self.dtype} not yet supported"
          )
  
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 7 for calling the _CuDFColumn obj's underlying member method code with example usage: obj.describe_null() and returns: _MaskKind,  None, _MaskKind,  int