code: def _wrap_results(result, dtype, fill_value=None):
      
  
      if is_datetime64_dtype(dtype) or is_datetime64tz_dtype(dtype):
          if fill_value is None:
              # GH#24293
              fill_value = iNaT
          if not isinstance(result, np.ndarray):
              tz = getattr(dtype, 'tz', None)
              assert not isna(fill_value), "Expected non-null fill_value"
              if result == fill_value:
                  result = np.nan
              result = tslibs.Timestamp(result, tz=tz)
          else:
              result = result.view(dtype)
      elif is_timedelta64_dtype(dtype):
          if not isinstance(result, np.ndarray):
              if result == fill_value:
                  result = np.nan
  
              # raise if we have a timedelta64[ns] which is too large
              if np.fabs(result) > _int64_max:
                  raise ValueError("overflow in timedelta operation")
  
              result = tslibs.Timedelta(result, unit='ns')
          else:
              result = result.astype('i8').view(dtype)
  
      return result
docs: wrap our results if needed