code: def find(self, sub, start=0, end=None):
          
          check_type(sub, str)
          check_type(start, int)
          check_type(end, int)
  
          if end is not None and start >= end:
              raise ValueError('End must be greater than start')
  
          return Series(weld_str_find(self._data.values, sub, start, end),
                        self._data.index,
                        weld_to_numpy_dtype(WeldLong()),
                        self._data.name)
docs: Test if elements contain substring.
  
          Parameters
          ----------
          sub : str
          start : int, optional
              Index to start searching from.
          end : int, optional
              Index to stop searching from.
  
          Returns
          -------
          Series