def add_view(self, *args, **kwargs):
        """
        Add a new view

        Parameters
        ----------
        uid: string
            The uid of new view
        width: int
            The width of this of view on a 12 unit grid
        height: int
            The height of the this view. The height is proportional
            to the height of all the views present.
        x: int
            The position of this view on the grid
        y: int
            The position of this view on the grid
        initialXDoamin: [int, int]
            The initial x range of the view
        initialYDomain: [int, int]
            The initial y range of the view
        """
        new_view = View(*args, **kwargs)

        for view in self.views:
            if view.uid == new_view.uid:
                raise ValueError("View with this uid already exists")

        self.views += [new_view]
        return new_view
Add a new view

        Parameters
        ----------
        uid: string
            The uid of new view
        width: int
            The width of this of view on a 12 unit grid
        height: int
            The height of the this view. The height is proportional
            to the height of all the views present.
        x: int
            The position of this view on the grid
        y: int
            The position of this view on the grid
        initialXDoamin: [int, int]
            The initial x range of the view
        initialYDomain: [int, int]
            The initial y range of the view