class_docstr: A representation of a column as a boolean mask.
  
  This augments the column with information that it is valid as a
  boolean mask for columns with a given number of rows
  
  Parameters
  ----------
  column
      The data to turn into a column to then verify
  nrows
      the number of rows to verify against
  
  Returns
  -------
  BooleanMask
      New object wrapping the column bearing witness to its
      suitability as a boolean mask for columns with matching
      row count.
  
  Raises
  ------
  TypeError
      If the column is of unsuitable dtype
  IndexError
      If the mask has the wrong number of rows
code: def __init__(self, column: Any, nrows: int):
      self.column = cudf.core.column.as_column(column)
      if self.column.dtype.kind != "b":
          raise TypeError("Boolean mask must have bool dtype")
      if len(column) != nrows:
          raise IndexError(
              f"Column with {len(column)} rows not suitable "
              f"as a boolean mask for {nrows} rows"
          )
  
file_path: cudf/python/cudf/cudf/core/copy_types.py
imports: from dataclasses import dataclass
  from typing import TYPE_CHECKING, Any, cast
  from typing_extensions import Self
  import cudf
  import cudf._lib
  from cudf._lib.types import size_type_dtype
label_desc: Use image node_id 1 to create a new BooleanMask object  with example: obj = BooleanMask(column, nrows)