code: def next_partname(self, template):
          
          partnames = {part.partname for part in self.iter_parts()}
          for n in range(1, len(partnames) + 2):
              candidate_partname = template % n
              if candidate_partname not in partnames:
                  return PackURI(candidate_partname)
docs: Return a |PackURI| instance representing partname matching *template*.
  
          The returned part-name has the next available numeric suffix to distinguish it
          from other parts of its type. *template* 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: "/word/header%d.xml"