docs: def ion_or_solid_comp_object(formula):
      """
      Returns either an ion object or composition object given
      a formula.
  
      Args:
          formula: String formula. Eg. of ion: NaOH(aq), Na[+];
              Eg. of solid: Fe2O3(s), Fe(s), Na2O
  
      Returns:
          Composition/Ion object
      """
      m = re.search(r"\[([^\[\]]+)\]|\(aq\)", formula)
      if m:
          comp_obj = Ion.from_formula(formula)
      elif re.search(r"\(s\)", formula):
          comp_obj = Composition(formula[:-3])
      else:
          comp_obj = Composition(formula)
      return comp_obj