code: def from_composition_and_pd(comp, pd, working_ion_symbol="Li"):
          
          working_ion = Element(working_ion_symbol)
          entry = None
          working_ion_entry = None
          for e in pd.stable_entries:
              if e.composition.reduced_formula == comp.reduced_formula:
                  entry = e
              elif e.is_element and \
                      e.composition.reduced_formula == working_ion_symbol:
                  working_ion_entry = e
  
          if not entry:
              raise ValueError("Not stable compound found at composition {}."
                               .format(comp))
  
          profile = pd.get_element_profile(working_ion, comp)
          # Need to reverse because voltage goes form most charged to most
          # discharged.
          profile.reverse()
          if len(profile) < 2:
              return None
          working_ion_entry = working_ion_entry
          working_ion = working_ion_entry.composition.elements[0].symbol
          normalization_els = {}
          for el, amt in comp.items():
              if el != Element(working_ion):
                  normalization_els[el] = amt
          vpairs = [ConversionVoltagePair.from_steps(profile[i], profile[i + 1],
                                                     normalization_els)
                    for i in range(len(profile) - 1)]
          return ConversionElectrode(vpairs, working_ion_entry, comp)
docs: Convenience constructor to make a ConversionElectrode from a
          composition and a phase diagram.
  
          Args:
              comp:
                  Starting composition for ConversionElectrode, e.g.,
                  Composition("FeF3")
              pd:
                  A PhaseDiagram of the relevant system (e.g., Li-Fe-F)
              working_ion_symbol:
                  Element symbol of working ion. Defaults to Li.