code: def _get_valences(self):
          
          try:
              bv = BVAnalyzer()
              self._structure = bv.get_oxi_state_decorated_structure(
                  self._structure)
              valences = bv.get_valences(self._structure)
          except:
              try:
                  bv = BVAnalyzer(symm_tol=0.0)
                  self._structure = bv.get_oxi_state_decorated_structure(
                      self._structure)
                  valences = bv.get_valences(self._structure)
              except:
                  valences = []
                  for site in self._structure.sites:
                      if len(site.specie.common_oxidation_states) > 0:
                          valences.append(site.specie.common_oxidation_states[0])
                      # Handle noble gas species
                      # which have no entries in common_oxidation_states.
                      else:
                          valences.append(0)
                  if sum(valences):
                      valences = [0] * self._structure.num_sites
                  else:
                      self._structure.add_oxidation_state_by_site(valences)
                  # raise
  
          # el = [site.specie.symbol for site in self._structure.sites]
          # el = [site.species_string for site in self._structure.sites]
          # el = [site.specie for site in self._structure.sites]
          # valence_dict = dict(zip(el, valences))
          # print valence_dict
          return valences
docs: Computes ionic valences of elements for all sites in the structure.