code: def square(left, top, length, filled=False, thickness=1):
      
      if thickness != 1:
          raise NotImplementedError('The pybresenham module is under development and the filled, thickness, and endcap parameters are not implemented. You can contribute at https://github.com/asweigart/pybresenham')
  
      return rectangle(left, top, length, length, filled, thickness)
docs: Returns a generator that produces (x, y) tuples for a square.
      This function is an alias for the rectangle() function, with `length` passed for both the
      `width` and `height` parameters.
  
      The `left` and `top` arguments are the x and y coordinates for the topleft corner of the square.
  
      If `filled` is `True`, the interior points are also returned.
  
      NOTE: The `thickness` argument is not yet implemented.
  
      >>> list(square(0, 0, 5))
      [(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4), (3, 4), (2, 4), (1, 4), (0, 4), (0, 3), (0, 2), (0, 1)]
      >>> drawPoints(square(0, 0, 5))
      OOOOO
      O,,,O
      O,,,O
      O,,,O
      OOOOO
      >>> drawPoints(square(0, 0, 5, filled=True))
      OOOOO
      OOOOO
      OOOOO
      OOOOO
      OOOOO