code: def concatenate(arrs, axis=0):
      r
      dest = 'dimensionless'
      for a in arrs:
          if hasattr(a, 'units'):
              dest = a.units
              break
  
      data = []
      for a in arrs:
          if hasattr(a, 'to'):
              a = a.to(dest).magnitude
          data.append(np.atleast_1d(a))
  
      # Use masked array concatenate to ensure masks are preserved, but convert to an
      # array if there are no masked values.
      data = np.ma.concatenate(data, axis=axis)
      if not np.any(data.mask):
          data = np.asarray(data)
  
      return units.Quantity(data, dest)
docs: r"""Concatenate multiple values into a new unitized object.
  
      This is essentially a unit-aware version of `numpy.concatenate`. All items
      must be able to be converted to the same units. If an item has no units, it will be given
      those of the rest of the collection, without conversion. The first units found in the
      arguments is used as the final output units.
  
      Parameters
      ----------
      arrs : Sequence of arrays
          The items to be joined together
  
      axis : integer, optional
          The array axis along which to join the arrays. Defaults to 0 (the first dimension)
  
      Returns
      -------
      `pint.Quantity`
          New container with the value passed in and units corresponding to the first item.