docs: def handle_nextPageTemplate(self, pt):
          '''
          if pt has also templates for even and odd page convert it to list
          '''
          has_left_template = self._has_template_for_name(pt + '_left')
          has_right_template = self._has_template_for_name(pt + '_right')
  
          if has_left_template and has_right_template:
              pt = [pt + '_left', pt + '_right']
  
          '''On endPage change to the page template with name or index pt'''
          if isinstance(pt, str):
              if hasattr(self, '_nextPageTemplateCycle'):
                  del self._nextPageTemplateCycle
              for t in self.pageTemplates:
                  if t.id == pt:
                      self._nextPageTemplateIndex = self.pageTemplates.index(t)
                      return
              raise ValueError("can't find template('%s')" % pt)
          elif isinstance(pt, int):
              if hasattr(self, '_nextPageTemplateCycle'):
                  del self._nextPageTemplateCycle
              self._nextPageTemplateIndex = pt
          elif isinstance(pt, (list, tuple)):
              #used for alternating left/right pages
              #collect the refs to the template objects, complain if any are bad
              c = PTCycle()
              for ptn in pt:
              #special case name used to short circuit the iteration
                  if ptn == '*':
                      c._restart = len(c)
                      continue
                  for t in self.pageTemplates:
                      if t.id == ptn.strip():
                          c.append(t)
                          break
              if not c:
                  raise ValueError("No valid page templates in cycle")
              elif c._restart > len(c):
                  raise ValueError("Invalid cycle restart position")
  
              #ensure we start on the first one$
              self._nextPageTemplateCycle = c.cyclicIterator()
          else:
              raise TypeError("Argument pt should be string or integer or list")