code: def _next_ph_name(self, ph_type, id, orient):
          
          basename = self.ph_basename(ph_type)
  
          # prefix rootname with 'Vertical ' if orient is 'vert'
          if orient == ST_Direction.VERT:
              basename = 'Vertical %s' % basename
  
          # increment numpart as necessary to make name unique
          numpart = id - 1
          names = self._spTree.xpath('//p:cNvPr/@name')
          while True:
              name = '%s %d' % (basename, numpart)
              if name not in names:
                  break
              numpart += 1
  
          return name
docs: Next unique placeholder name for placeholder shape of type *ph_type*,
          with id number *id* and orientation *orient*. Usually will be standard
          placeholder root name suffixed with id-1, e.g.
          _next_ph_name(ST_PlaceholderType.TBL, 4, 'horz') ==>
          'Table Placeholder 3'. The number is incremented as necessary to make
          the name unique within the collection. If *orient* is ``'vert'``, the
          placeholder name is prefixed with ``'Vertical '``.