class_docstr: Grid is Plotly's Python representation of Plotly Grids.
  Plotly Grids are tabular data made up of columns. They can be
  uploaded, appended to, and can source the data for Plotly
  graphs.
  
  A plotly.grid_objs.Grid object is essentially a list.
  
  Usage example 1: Upload a set of columns as a grid to Plotly
  ```
  from plotly.grid_objs import Grid, Column
  import plotly.plotly as py
  column_1 = Column([1, 2, 3], 'time')
  column_2 = Column([4, 2, 5], 'voltage')
  grid = Grid([column_1, column_2])
  py.grid_ops.upload(grid, 'time vs voltage')
  ```
  
  Usage example 2: Make a graph based with data that is sourced
                   from a newly uploaded Plotly columns
  ```
  import plotly.plotly as py
  from plotly.grid_objs import Grid, Column
  from plotly.graph_objs import Scatter
  # Upload a grid
  column_1 = Column([1, 2, 3], 'time')
  column_2 = Column([4, 2, 5], 'voltage')
  grid = Grid([column_1, column_2])
  py.grid_ops.upload(grid, 'time vs voltage')
  
  # Build a Plotly graph object sourced from the
  # grid's columns
  trace = Scatter(xsrc=grid[0], ysrc=grid[1])
  py.plot([trace], filename='graph from grid')
  ```
class_docstr_tok: ["Grid","is","Plotly","'s","Python","representation","of","Plotly","Grids",".","Plotly","Grids","are","tabular","data","made","up","of","columns",".","They","can","be","uploaded",",","appended","to",",","and","can","source","the","data","for","Plotly","graphs",".","A","plotly.grid_objs.Grid","object","is","essentially","a","list",".","Usage","example","1",":","Upload","a","set","of","columns","as","a","grid","to","Plotly","``","`","from","plotly.grid_objs","import","Grid",",","Column","import","plotly.plotly","as","py","column_1","=","Column","(","[","1",",","2",",","3","]",",","'time","'",")","column_2","=","Column","(","[","4",",","2",",","5","]",",","'voltage","'",")","grid","=","Grid","(","[","column_1",",","column_2","]",")","py.grid_ops.upload","(","grid",",","'time","vs","voltage","'",")","``","`","Usage","example","2",":","Make","a","graph","based","with","data","that","is","sourced","from","a","newly","uploaded","Plotly","columns","``","`","import","plotly.plotly","as","py","from","plotly.grid_objs","import","Grid",",","Column","from","plotly.graph_objs","import","Scatter","#","Upload","a","grid","column_1","=","Column","(","[","1",",","2",",","3","]",",","'time","'",")","column_2","=","Column","(","[","4",",","2",",","5","]",",","'voltage","'",")","grid","=","Grid","(","[","column_1",",","column_2","]",")","py.grid_ops.upload","(","grid",",","'time","vs","voltage","'",")","#","Build","a","Plotly","graph","object","sourced","from","the","#","grid","'s","columns","trace","=","Scatter","(","xsrc=grid","[","0","]",",","ysrc=grid","[","1","]",")","py.plot","(","[","trace","]",",","filename='graph","from","grid","'",")","``","`"]
docstr: Raise an error if we're gonna add a duplicate column name
docstr_tok: ["Raise","an","error","if","we","'re","gon","na","add","a","duplicate","column","name"]
code: def _validate_insertion(self, column):
      """
      Raise an error if we're gonna add a duplicate column name
      """
      existing_column_names = [col.name for col in self._columns]
      if column.name in existing_column_names:
          err = exceptions.NON_UNIQUE_COLUMN_MESSAGE.format(column.name)
          raise exceptions.InputError(err)
  
imports: from __future__ import absolute_import
  import _plotly_utils.exceptions
  import json
  from _plotly_utils.optional_imports import get_module
  from chart_studio import utils, exceptions
label_desc: Use image node_id 8 for calling the Grid obj's underlying member method code with example usage: obj._validate_insertion(column) without return types