class_docstr: A dataset consisting of rows and columns. Columns refer to "vertical" slices
  of data that must all be of the same type. Rows refer to "horizontal" slices
  of data that may (and usually do) contain mixed types.
  
  The sequence of :class:`.Column` instances are retrieved via the
  :attr:`.Table.columns` property. They may be accessed by either numeric
  index or by unique column name.
  
  The sequence of :class:`.Row` instances are retrieved via the
  :attr:`.Table.rows` property. They may be accessed by either numeric index
  or, if specified, unique row names.
  
  :param rows:
      The data as a sequence of any sequences: tuples, lists, etc. If
      any row has fewer values than the number of columns, it will be filled
      out with nulls. No row may have more values than the number of columns.
  :param column_names:
      A sequence of string names for each column or `None`, in which case
      column names will be automatically assigned using :func:`.letter_name`.
  :param column_types:
      A sequence of instances of :class:`.DataType` or an instance of
      :class:`.TypeTester` or `None` in which case a generic TypeTester will
      be used. Alternatively, a dictionary with column names as keys and
      instances of :class:`.DataType` as values to specify some types.
  :param row_names:
      Specifies unique names for each row. This parameter is
      optional. If specified it may be 1) the name of a single column that
      contains a unique identifier for each row, 2) a key function that takes
      a :class:`.Row` and returns a unique identifier or 3) a sequence of
      unique identifiers of the same length as the sequence of rows. The
      uniqueness of resulting identifiers is not validated, so be certain
      the values you provide are truly unique.
  :param _is_fork:
      Used internally to skip certain validation steps when data
      is propagated from an existing table. When :code:`True`, rows are
      assumed to be :class:`.Row` instances, rather than raw data.
class_docstr_tok: ["A","dataset","consisting","of","rows","and","columns",".","Columns","refer","to","``","vertical","''","slices","of","data","that","must","all","be","of","the","same","type",".","Rows","refer","to","``","horizontal","''","slices","of","data","that","may","(","and","usually","do",")","contain","mixed","types",".","The","sequence","of",":","class",":","`",".Column","`","instances","are","retrieved","via","the",":","attr",":","`",".Table.columns","`","property",".","They","may","be","accessed","by","either","numeric","index","or","by","unique","column","name",".","The","sequence","of",":","class",":","`",".Row","`","instances","are","retrieved","via","the",":","attr",":","`",".Table.rows","`","property",".","They","may","be","accessed","by","either","numeric","index","or",",","if","specified",",","unique","row","names",".",":","param","rows",":","The","data","as","a","sequence","of","any","sequences",":","tuples",",","lists",",","etc",".","If","any","row","has","fewer","values","than","the","number","of","columns",",","it","will","be","filled","out","with","nulls",".","No","row","may","have","more","values","than","the","number","of","columns",".",":","param","column_names",":","A","sequence","of","string","names","for","each","column","or","`","None","`",",","in","which","case","column","names","will","be","automatically","assigned","using",":","func",":","`",".letter_name","`",".",":","param","column_types",":","A","sequence","of","instances","of",":","class",":","`",".DataType","`","or","an","instance","of",":","class",":","`",".TypeTester","`","or","`","None","`","in","which","case","a","generic","TypeTester","will","be","used",".","Alternatively",",","a","dictionary","with","column","names","as","keys","and","instances","of",":","class",":","`",".DataType","`","as","values","to","specify","some","types",".",":","param","row_names",":","Specifies","unique","names","for","each","row",".","This","parameter","is","optional",".","If","specified","it","may","be","1",")","the","name","of","a","single","column","that","contains","a","unique","identifier","for","each","row",",","2",")","a","key","function","that","takes","a",":","class",":","`",".Row","`","and","returns","a","unique","identifier","or","3",")","a","sequence","of","unique","identifiers","of","the","same","length","as","the","sequence","of","rows",".","The","uniqueness","of","resulting","identifiers","is","not","validated",",","so","be","certain","the","values","you","provide","are","truly","unique",".",":","param","_is_fork",":","Used","internally","to","skip","certain","validation","steps","when","data","is","propagated","from","an","existing","table",".","When",":","code",":","`","True","`",",","rows","are","assumed","to","be",":","class",":","`",".Row","`","instances",",","rather","than","raw","data","."]
docstr: A :class:`.MappedSequence` with column names for keys and
  :class:`.Column` instances for values.
docstr_tok: ["A",":","class",":","`",".MappedSequence","`","with","column","names","for","keys","and",":","class",":","`",".Column","`","instances","for","values","."]
code: def columns(self):
      """
      A :class:`.MappedSequence` with column names for keys and
      :class:`.Column` instances for values.
      """
      return self._columns
  
imports: import sys
  import warnings
  from io import StringIO
  from itertools import chain
  from agate import utils
  from agate.columns import Column
  from agate.data_types import DataType
  from agate.exceptions import CastError
  from agate.mapped_sequence import MappedSequence
  from agate.rows import Row
  from agate.type_tester import TypeTester
  from agate.table.aggregate import aggregate
  from agate.table.bar_chart import bar_chart
  from agate.table.bins import bins
  from agate.table.column_chart import column_chart
  from agate.table.compute import compute
  from agate.table.denormalize import denormalize
  from agate.table.distinct import distinct
  from agate.table.exclude import exclude
  from agate.table.find import find
  from agate.table.from_csv import from_csv
  from agate.table.from_fixed import from_fixed
  from agate.table.from_json import from_json
  from agate.table.from_object import from_object
  from agate.table.group_by import group_by
  from agate.table.homogenize import homogenize
  from agate.table.join import join
  from agate.table.limit import limit
  from agate.table.line_chart import line_chart
  from agate.table.merge import merge
  from agate.table.normalize import normalize
  from agate.table.order_by import order_by
  from agate.table.pivot import pivot
  from agate.table.print_bars import print_bars
  from agate.table.print_html import print_html
  from agate.table.print_structure import print_structure
  from agate.table.print_table import print_table
  from agate.table.rename import rename
  from agate.table.scatterplot import scatterplot
  from agate.table.select import select
  from agate.table.to_csv import to_csv
  from agate.table.to_json import to_json
  from agate.table.where import where
label_desc: Use image node_id 9 for calling the Table obj's underlying member method code with example usage: obj.columns() and returns: self