code: def animate(canvas, fn, delay=1./24, *args, **kwargs):
      
  
      # python2 unicode curses fix
      if not IS_PY3:
          import locale
          locale.setlocale(locale.LC_ALL, "")
  
      def animation(stdscr):
  
          for frame in fn(*args, **kwargs):
              for x,y in frame:
                  canvas.set(x,y)
  
              f = canvas.frame()
              stdscr.addstr(0, 0, '{0}\n'.format(f))
              stdscr.refresh()
              if delay:
                  sleep(delay)
              canvas.clear()
  
      curses.wrapper(animation)
docs: Animation automation function
  
      :param canvas: :class:`Canvas` object
      :param fn: Callable. Frame coord generator
      :param delay: Float. Delay between frames.
      :param *args, **kwargs: optional fn parameters