code: def _spiral(width, height):
          
  
          if width == 1:
              for y in range(height - 1, -1, -1):
                  yield 0, y
              return
          if height == 1:
              for x in range(width - 1, -1, -1):
                  yield x, 0
              return
  
          if width <= height:
              x0 = width // 2
              if width % 2:
                  for y in range(height - 1 - x0, x0 - 1, -1):
                      yield x0, y
              x0 -= 1
              y0 = x0
          else:
              y0 = height // 2
              if height % 2:
                  for x in range(width - 1 - y0, y0 - 1, -1):
                      yield x, y0
              y0 -= 1
              x0 = y0
  
          while x0 >= 0:
              x1 = width - x0 - 1
              y1 = height - y0 - 1
  
              for y in range(y0 + 1, y1):
                  yield x0, y
              for x in range(x0, x1):
                  yield x, y1
              for y in range(y1, y0, -1):
                  yield x1, y
              for x in range(x1, x0 - 1, -1):
                  yield x, y0
  
              x0 -= 1
              y0 -= 1
docs: Spiral generator.
  
          Parameters
          ----------
          width : `int`
              Spiral width.
          height : `int`
              Spiral height.
  
          Returns
          -------
          `generator` of (`int`, `int`)
              Points.