code: def next_partname(self, tmpl):
          
          partnames = [part.partname for part in self.iter_parts()]
          for n in range(1, len(partnames)+2):
              candidate_partname = tmpl % n
              if candidate_partname not in partnames:
                  return PackURI(candidate_partname)
          raise Exception('ProgrammingError: ran out of candidate_partnames')
docs: Return a |PackURI| instance representing the next available partname
          matching *tmpl*, which is a printf (%)-style template string
          containing a single replacement item, a '%d' to be used to insert the
          integer portion of the partname. Example: '/ppt/slides/slide%d.xml'