code: def _str_pad(
      self,
      width: int,
      side: Literal["left", "right", "both"] = "left",
      fillchar: str = " ",
  ) -> Self:
      if side == "left":
          pa_pad = pc.utf8_lpad
      elif side == "right":
          pa_pad = pc.utf8_rpad
      elif side == "both":
          pa_pad = pc.utf8_center
      else:
          raise ValueError(
              f"Invalid side: {side}. Side must be one of 'left', 'right', 'both'"
          )
      return type(self)(
          pa_pad(self._pa_array, width=width, padding=fillchar)
      )
  
file_path: pandas/pandas/core/arrays/_arrow_string_mixins.py
imports: from __future__ import annotations
  from typing import TYPE_CHECKING, Literal
  import numpy
  from pandas.compat import pa_version_under10p1
label_desc: Use image node_id 2 for calling the ArrowStringArrayMixin obj's underlying member method code with example usage: obj._str_pad(width, side, fillchar) and returns: type