code: def from_arrow(cls, data: pa.Array):
      dtype = Decimal32Dtype.from_arrow(data.type)
      mask_buf = data.buffers()[0]
      mask = (
          mask_buf
          if mask_buf is None
          else pa_mask_buffer_to_mask(mask_buf, len(data))
      )
      data_128 = cp.array(
          np.frombuffer(data.buffers()[1]).view("int32")
      )
      data_32 = data_128[::4].copy()
      return cls(
          data=as_buffer(data_32.view("uint8")),
          size=len(data),
          dtype=dtype,
          offset=data.offset,
          mask=mask,
      )
  
imports: from __future__ import annotations
  import warnings
  from decimal import Decimal
  from typing import Any, Optional, Sequence, Union, cast
  import cupy
  import numpy
  import pyarrow
  from typing_extensions import Self
  import cudf
  from cudf import _lib
  from cudf._lib.strings.convert.convert_fixed_point import from_decimal
  from cudf._typing import ColumnBinaryOperand, Dtype
  from cudf.api.types import is_integer_dtype, is_scalar
  from cudf.core.buffer import as_buffer
  from cudf.core.column import ColumnBase
  from cudf.core.dtypes import Decimal32Dtype, Decimal64Dtype, Decimal128Dtype, DecimalDtype
  from cudf.core.mixins import BinaryOperand
  from cudf.utils.utils import pa_mask_buffer_to_mask
  from .numerical_base import NumericalBaseColumn
label_desc: Use image node_id 1 for calling the Decimal32Column obj's underlying member method code with example usage: obj.from_arrow(cls, data) and returns: cls