def add_rectangle(self,<EOL>north=None,<EOL>west=None,<EOL>south=None,<EOL>east=None,<EOL>**kwargs):
kwargs.setdefault('<STR_LIT>', {})<EOL>if north:<EOL><INDENT>kwargs['<STR_LIT>']['<STR_LIT>'] = north<EOL><DEDENT>if west:<EOL><INDENT>kwargs['<STR_LIT>']['<STR_LIT>'] = west<EOL><DEDENT>if south:<EOL><INDENT>kwargs['<STR_LIT>']['<STR_LIT>'] = south<EOL><DEDENT>if east:<EOL><INDENT>kwargs['<STR_LIT>']['<STR_LIT>'] = east<EOL><DEDENT>if set(<EOL>('<STR_LIT>', '<STR_LIT>', '<STR_LIT>', '<STR_LIT>')<EOL>) != set(kwargs['<STR_LIT>'].keys()):<EOL><INDENT>raise AttributeError('<STR_LIT>')<EOL><DEDENT>kwargs.setdefault('<STR_LIT>', '<STR_LIT>')<EOL>kwargs.setdefault('<STR_LIT>', <NUM_LIT>)<EOL>kwargs.setdefault('<STR_LIT>', <NUM_LIT:2>)<EOL>kwargs.setdefault('<STR_LIT>', '<STR_LIT>')<EOL>kwargs.setdefault('<STR_LIT>', <NUM_LIT>)<EOL>self.rectangles.append(kwargs)<EOL>
Adds a rectangle dict to the Map.rectangles attribute

        The Google Maps API describes a rectangle using the LatLngBounds
        object, which defines the bounds to be drawn. The bounds use the
        concept of 2 delimiting points, a northwest and a southeast points,
        were each coordinate is defined by each parameter.

        It accepts a rectangle dict representation as well.

        Args:
            north (float): The north latitude
            west (float): The west longitude
            south (float): The south latitude
            east (float): The east longitude

        .. _LatLngBoundsLiteral:
            https://developers.google.com/maps/documen
            tation/javascript/reference#LatLngBoundsLiteral

        .. _Rectangles:
            https://developers.google.com/maps/documen
            tation/javascript/shapes#rectangles